Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 23.10.2020
Сообщений: 10

Перевод с Pascal на Phyton

06.11.2020, 21:29. Показов 2844. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Квадратная матрица, симметричная главной диагонали, задана верхним треугольником в виде одномерного массива. Восстановите исходную матрицу и напечатайте её по строкам.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
writeln('Элементы верхней треугольной матрицы:');
for i:=1 to (n*(n+1))div 2 do//определим количество элементов в верхней треугольной       //n+n-1+n-2...+1
 begin
  b[i]:=random(50);//заполним массив случайными числами
  write(b[i]:4);
 end;
writeln;
writeln;
writeln('Исходная матрица:');
k:=0;//индекс элемента в массиве
for i:=1 to n do//кол. строк
for j:=i to n do//кол. столбцов
 begin
  k:=k+1;//увеличиваем индекс
  a[i,j]:=b[k];//пишем это элемент вверх
  a[j,i]:=b[k];//и симметрично вниз
 end;
for i:=1 to n do//выводим матрицу
 begin
  for j:=1 to n do
  write(a[i,j]:4);
  writeln;
 end;
Переведите, пожалуйста, или решите другим способом (но без функций end, map и т.д).
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.11.2020, 21:29
Ответы с готовыми решениями:

Перевод программы с Turbo Pascal на Pascal ABC.NET
написала программу в паскаль турбо на рабочем компьютере. перенесла в паскаль авсNet так как дома стоит эта версия /перестала работать что...

Перевод программы с turbo pascal на Pascal ABC
Есть программа, которая строит треугольник Серпинского методом хаоса, но она конфликтует с графикой ABC. Важен именно этот метод. ...

Перевод с Turbo Pascal в ABC Pascal
помогите пожалуйста с переводом, никак не могу разобраться( program Mayatnik; uses graphABC, crt; var driver,...

15
710 / 356 / 104
Регистрация: 09.02.2018
Сообщений: 805
07.11.2020, 08:23
CarrBeat, в сети навалом онлайн переводчиков из одного языка программирования в другой, неужели ни один не понравился?

Вот что выдает переводчик Юнишарп:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import typing
import math
import random
 
class Utils:
 
    @staticmethod
    def newArray(*args):
        if len(args) == 2:
            size, value = args
            return [value] * size
        else:
            size = args[0]
            array = [None] * size
            for i in range(size):
                array[i] = Utils.newArray(*args[1:])
            return array
    
class Solution:
    
    I = None
    
    J = None
    
    K = None
    
    N = None
    
    A = None
    
    B = None
    
    def __run(self) -> None:
        Solution.N = int(input("Введите размерность матрицы: "))
        print("Элементы верхней треугольной матрицы:", flush=True)
        Solution.I = 1
        while Solution.I <= (math.floor(((Solution.N * ((Solution.N + 1)))) / 2)): 
            Solution.B[Solution.I] = random.randint(0, 50)
            print("{:4}".format(Solution.B[Solution.I]), end="", flush=True)
            Solution.I += 1
        print("")
        print("")
        print("Исходная матрица:", flush=True)
        Solution.K = 0
        Solution.I = 1
        while Solution.I <= Solution.N: 
            Solution.J = Solution.I
            while Solution.J <= Solution.N:
                Solution.K = (Solution.K + 1)
                Solution.A[Solution.I][Solution.J] = Solution.B[Solution.K]
                Solution.A[Solution.J][Solution.I] = Solution.B[Solution.K]
                Solution.J += 1
            Solution.I += 1
        Solution.I = 1
        while Solution.I <= Solution.N: 
            Solution.J = 1
            while Solution.J <= Solution.N:
                print("{:4}".format(Solution.A[Solution.I][Solution.J]), end="", flush=True)
                Solution.J += 1
            print("")
            Solution.I += 1
    
    @staticmethod
    def main(*args : typing.List[str]) -> None:
        my_app = Solution()
        my_app.__run()
    
    # static constructor for class Solution
    @staticmethod
    def _static_ctor():
        Solution.A = Utils.newArray(100, 100, 0)
        Solution.B = Utils.newArray(10000, 0)
 
Solution._static_ctor()
Solution.main()
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
07.11.2020, 13:42
numpy можно использовать?
0
0 / 0 / 0
Регистрация: 23.10.2020
Сообщений: 10
07.11.2020, 16:35  [ТС]
Рыжий Лис, нет, нельзя.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
07.11.2020, 16:45
Я паскаль не знаю, но вижу, что не хватает кода для определения переменных.
0
710 / 356 / 104
Регистрация: 09.02.2018
Сообщений: 805
07.11.2020, 18:05
Рыжий Лис, можно взять перевод (он рабочий) и доработать. Тоже экономия времени будет (как и использование numpy).
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
07.11.2020, 18:45
CarrBeat,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from random import randint as rn
k = int(input())
b = [rn(10,50) for i in range(1,1+k)]
print(*b)
n = (round((1 + 8*k) ** 0.5) - 1) // 2
res = [[] for i in range(n)]
m = 0
for i in range(n) :
    for j in range(i,n) :
        res[i].append(b[m])
        if i - j :
            res[j].append(b[m])
        m += 1
    print(*res[i])
1
710 / 356 / 104
Регистрация: 09.02.2018
Сообщений: 805
07.11.2020, 18:58
Gdez, можно чуть короче сделать:

Python
1
2
3
4
5
6
7
from random import randint
n = int(input('Введите размер исходной матрицы: '))
c = lambda x: (x * (x + 1)) // 2
b = [str(randint(1, 50)).rjust(4) for i in range(c(n))]
print('\nЭлементы верхней треугольной матрицы:\n' + ''.join(b))
a = [[b[i + j * n - c(j)] if i > j else b[i * n + j - c(i)] for j in range(n)] for i in range(n)]
print('\nИсходная матрица:\n' + '\n'.join(''.join(r) for r in a))
Краткость записи - это единственное, в чем мы ещё можем конкурировать с компьютером. Не пытайся меня убедить, что ты написал программу быстрее, чем переводчик (переводчик сгенерировал программу за одну секунду).
1
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
07.11.2020, 19:03
КулХацкеръ, - нет конечно
0
0 / 0 / 0
Регистрация: 23.10.2020
Сообщений: 10
07.11.2020, 19:26  [ТС]
КулХацкеръ, а без lambda; \n можно сделать?
0
710 / 356 / 104
Регистрация: 09.02.2018
Сообщений: 805
07.11.2020, 19:29
CarrBeat, конечно:

Python
1
2
3
4
5
6
7
8
from random import randint
n = int(input('Введите размер исходной матрицы: '))
def c(x):
    return (x * (x + 1)) // 2
b = [str(randint(1, 50)).rjust(4) for i in range(c(n))]
print('\nЭлементы верхней треугольной матрицы:\n' + ''.join(b))
a = [[b[i + j * n - c(j)] if i > j else b[i * n + j - c(i)] for j in range(n)] for i in range(n)]
print('\nИсходная матрица:\n' + '\n'.join(''.join(r) for r in a))
0
0 / 0 / 0
Регистрация: 23.10.2020
Сообщений: 10
07.11.2020, 19:40  [ТС]
КулХацкеръ, а вообще без функций и без '\n'?
0
710 / 356 / 104
Регистрация: 09.02.2018
Сообщений: 805
07.11.2020, 19:49
"без функций" - это без def? Или функции randint, join, rjust тоже надо выкинуть?
0
0 / 0 / 0
Регистрация: 23.10.2020
Сообщений: 10
07.11.2020, 19:56  [ТС]
КулХацкеръ, без r.just; return; def и без "\n".
0
710 / 356 / 104
Регистрация: 09.02.2018
Сообщений: 805
07.11.2020, 20:11
Лучший ответ Сообщение было отмечено CarrBeat как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
from random import randint
n = int(input('Введите размер исходной матрицы: '))
b = ['{:4}'.format(randint(1, 50)) for i in range((n * (n + 1)) // 2)]
print()
print('Элементы верхней треугольной матрицы:')
print(''.join(b))
a = [[b[i + j * n - (j * (j + 1)) // 2] if i > j else b[i * n + j - (i * (i + 1)) // 2] for j in range(n)] for i in range(n)]
print()
print('Исходная матрица:')
for r in a:
    print(''.join(r))
1
0 / 0 / 0
Регистрация: 23.10.2020
Сообщений: 10
07.11.2020, 20:28  [ТС]
КулХацкеръ, большое спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.11.2020, 20:28
Помогаю со студенческими работами здесь

Перевод с Pascal на C++
Доброго времени суток. Вот написал программку на Паскале, кто поможет перевести его на С++ Буду очень благодарен. program truba_stat;...

Перевод из c++ на pascal
Помогите перевести с c++ на Паскаль. #include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; int main() ...

Перевод из Pascal в СИ
Прошу помочь в переводе программы из Pascal в СИ: var a,b,x,y,h,r,c,d,e,s,s1 : real; i,n : longint; bool : boolean; ...

Перевод с PASCAL на С++
Помогите пожалуйста. План работы цеха. В цехе имеется N станков и столько же рабочих. Мастер знает эффективность работы каждого рабочего...

Перевод из pascal
var s:string; n,i,k,mx:byte; begin writeln('Введите предложение'); readln(s); n:=length(s); k:=0; mx:=0; for i:=1 to n...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru