Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 49

Перевести с Turbo-Pascal на Pascal.ABC.NET

26.05.2020, 13:49. Показов 675. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Pascal
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
program analize_methods; uses dos;
const amax=10000;
type ar=array [1..amax] of integer; ar3=array [1..3] of ar;
var a:ar3;b:^ar3;
time:array [1..2,1..3] of real; hour,min,sec,sec100:word; r,r1,r2:real;
ns,i,k:integer; f:text;
 
{Стандартная процедура для обмена значениями} procedure obmen(var a,b:integer);
var r:integer; begin
r:=a;a:=b;b:=r end;
{Метод сортировки обменами (алгоритм "пузырька")} procedure sort_obmen(var m:ar);
var i,j:integer; begin
for i:=2 to amax do
for j:=amax downto i do
if m[j-1] > m[j] then obmen(m[j-1],m[j]) end;
{Метод "быстрой" сортировки (алгоритм Хоора)} procedure hoor(var m:ar);
procedure sort(l,r:integer); var i,j,x:integer;
begin
i:=l;j:=r;x:=m[(l+r) div 2]; while i <= j do
begin
while m[i] < x do i:=i+1; while m[j] > x do j:=j-1; if i <= j then
begin obmen(m[i],m[j]);i:=i+1;j:=j-1; end;
end;
if l < j then sort(l,j); if i < r then sort(i,r);
end; begin
sort(1,amax); end;
{Главная программа} begin
randomize; assign(f,'pasc.txt');rewrite(f);
writeln(f,'Сравнение двух методов сортировки в Турбо-Паскале'); writeln(f);  new(b);
{Заполнение идеальными данными} for i:=1 to amax do a[1,i]:=i;
{Заполнение случайными данными}
for i:=1 to amax do a[2,i]:=random(amax);
 
{Заполнение худшими данными} for i:=1 to amax do a[3,i]:=amax+1-i;
{Начинаем сортировку}
for ns:=1 to 2 do begin {два алгоритма} if ns=1 then begin
writeln('Метод сортировки обменами'); writeln(f,'Метод сортировки обменами'); end
else begin
writeln('Метод быстрой сортировки'); writeln(f,'Метод быстрой сортировки'); end;
writeln;writeln(f);
{Передаем во второй массив} for k:=1 to 3 do b^[k]:=a[k];
{Сортировка}
for i:=1 to 3 do begin case i of
1: begin writeln('Идеальное расположение'); writeln(f,'Идеальное расположение') end;
2: begin writeln('Случайное расположение'); writeln(f,'Случайное расположение') end;
3: begin writeln('Обратное расположение'); writeln(f,'Обратное расположение') end;
end;
writeln('До сортировки:');writeln(f,'До сортировки:');
for k:=1 to 10 do begin write(b^[i,k],' ');write(f,b^[i,k],' ') end; writeln;writeln(f);
gettime(hour,min,sec,sec100); r1:=sec100/100+sec+min*60+hour*3600;
if ns=1 then sort_obmen(b^[i]) else hoor(b^[i]); gettime(hour,min,sec,sec100); r2:=sec100/100+sec+min*60+hour*3600; time[ns,i]:=r2-r1;
writeln('После сортировки:');writeln(f,'После сортировки:'); for k:=1 to 10 do begin write(b^[i,k],' ');write(f,b^[i,k],' ') end; writeln;writeln(f);
writeln('Время: ',time[ns,i]:0:2);writeln;
writeln(f,'Время: ',time[ns,i]:0:2);writeln(f); end;{i}
writeln;writeln(f); end;{ns}
writeln('Подведение итогов (время в секундах)'); writeln(f,'Подведение итогов (время в секундах)'); writeln('|  |');
 
writeln('| Алгоритм | Идеальный | Случайный | Наихудший |'); writeln('|  |');
writeln(f,'|    |');
writeln(f,'| Алгоритм | Идеальный | Случайный | Наихудший |'); writeln(f,'|  |');
for ns:=1 to 2 do begin
if ns=1 then begin write('| Обмен  ');write(f,'| Обмен    ') end else begin write('| Хоор ');write(f,'| Хоор  ') end;
for i:=1 to 3 do begin write('|',time[ns,i]:11:2);write(f,'|',time[ns,i]:11:2) end; writeln('|');writeln(f,'|')
end;
writeln('|  |');
writeln(f,'|    |'); close(f);
dispose(b) end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.05.2020, 13:49
Ответы с готовыми решениями:

Нужно перевести программу с Turbo Pascal в Pascal ABC.NET
Вот есть программный код , но он для турбо паскаля, помогите перевести его в АБС.NET Program graphics; uses graph; var...

Нужно перевести код из Turbo Pascal в Pascal ABC.NET
Доброго времени суток. На форуме находил похожие темы, но к сожалению так и не смог разобраться. Помогите пожалуйста перевести код из Turbo...

Перевести код Pascal turbo в abc.net
Помогите перевести код Pascal turbo в abc.net, сам не могу так как не обладаю нужными знаниями. uses graph; var x,y: integer; ...

4
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
26.05.2020, 15:37
Цитата Сообщение от Ekaterina_A Посмотреть сообщение
Перевести с Turbo-Pascal на Pascal.ABC.NET
если не заморачиваться с тем, что у Pascal ABC.NET совершенно другая структура и методы, чисто формально можно код запустить так:
Pascal
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
program analize_methods; 
 
const amax=10000; 
 
type 
  ar=array [1..amax] of integer; 
  ar3=array [1..3] of ar;
var 
  a:ar3;b3:ar3;
  time:array [1..2,1..3] of System.TimeSpan; 
  r,r1,r2:DateTime;
  ns,i,k:integer; f:text;
 
{Стандартная процедура для обмена значениями} 
procedure obmen(var a,b:integer);var r:integer; begin r:=a;a:=b;b:=r end;
 
{Метод сортировки обменами (алгоритм "пузырька")} 
procedure sort_obmen(var m:ar);
var i,j:integer; begin
for i:=2 to amax do
for j:=amax downto i do
if m[j-1] > m[j] then obmen(m[j-1],m[j]) end;
 
{Метод "быстрой" сортировки (алгоритм Хоора)} 
procedure hoor(var m:ar);
procedure sort(l,r:integer); var i,j,x:integer;
begin
i:=l;j:=r;x:=m[(l+r) div 2]; while i <= j do
begin
while m[i] < x do i:=i+1; while m[j] > x do j:=j-1; if i <= j then
begin obmen(m[i],m[j]);i:=i+1;j:=j-1; end;
end;
if l < j then sort(l,j); if i < r then sort(i,r);
end; 
begin
  sort(1,amax); 
end;
 
 
{Главная программа} 
begin
randomize; 
assign(f,'pasc.txt');
rewrite(f);
writeln(f,'Сравнение двух методов сортировки в Турбо-Паскале'); writeln(f);
 
{Заполнение идеальными данными} for i:=1 to amax do a[1,i]:=i;
{Заполнение случайными данными}
for i:=1 to amax do a[2,i]:=random(amax);
 
{Заполнение худшими данными} for i:=1 to amax do a[3,i]:=amax+1-i;
{Начинаем сортировку}
for ns:=1 to 2 do begin {два алгоритма} if ns=1 then begin
writeln('Метод сортировки обменами'); writeln(f,'Метод сортировки обменами'); end
else begin
writeln('Метод быстрой сортировки'); writeln(f,'Метод быстрой сортировки'); end;
writeln;writeln(f);
{Передаем во второй массив} for k:=1 to 3 do b3[k]:=a[k];
{Сортировка}
for i:=1 to 3 do begin case i of
1: begin writeln('Идеальное расположение'); writeln(f,'Идеальное расположение') end;
2: begin writeln('Случайное расположение'); writeln(f,'Случайное расположение') end;
3: begin writeln('Обратное расположение'); writeln(f,'Обратное расположение') end;
end;
writeln('До сортировки:');writeln(f,'До сортировки:');
for k:=1 to 10 do begin write(b3[i,k],' ');write(f,b3[i,k],' ') end;
writeln;writeln(f);
r1 := DateTime.Now;
if ns=1
  then sort_obmen(b3[i])
  else hoor(b3[i]);
 
r2 := DateTime.Now;
time[ns,i]:=r2.Subtract(r1);
writeln('После сортировки:');
writeln(f,'После сортировки:');
for k:=1 to 10 do begin
  write(b3[i,k],' ');write(f,b3[i,k],' ') end;
writeln;writeln(f);
writeln('Время: ',time[ns,i].TotalMilliseconds/1000:0:3);writeln;
writeln(f,'Время: ',time[ns,i].TotalMilliseconds/1000:0:3);writeln(f); end;{i}
writeln;writeln(f); end;{ns}
writeln('Подведение итогов (время в секундах)'); writeln(f,'Подведение итогов (время в секундах)'); writeln('|  |');
 
writeln('| Алгоритм | Идеальный | Случайный | Наихудший |'); writeln('|  |');
writeln(f,'|    |');
writeln(f,'| Алгоритм | Идеальный | Случайный | Наихудший |'); writeln(f,'|  |');
for ns:=1 to 2 do begin
if ns=1 then begin write('| Обмен  ');write(f,'| Обмен    ') end else begin write('| Хоор ');write(f,'| Хоор  ') end;
for i:=1 to 3 do begin write('|',time[ns,i].TotalMilliseconds/1000:0:3);write(f,'|',time[ns,i].TotalMilliseconds/1000:0:3) end; writeln('|');writeln(f,'|')
end;
writeln('|  |');
writeln(f,'|    |'); close(f);
end.
но, боюсь, что такую "прямую кальку" с Turbo Pascal у тебя не примут!
1
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
26.05.2020, 16:01
Если задание было написать не_читаемый код который "работает - не трогай", то вполне сойдёт.
Но чтоб писать код именно на PABC.Net - надо видеть изначальное задание, по которому писался первый код. И при чём задание целиком и во всех подробностях!
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
26.05.2020, 16:08
Цитата Сообщение от Sun Serega Посмотреть сообщение
Но чтоб писать код именно на PABC.Net - надо видеть изначальное задание, по которому писался первый код.
там всё просто.
берём массив на 10000 элементов, заполняем его от 1 до 10000 (в сортированном порядке), сортируем обменами, замеряем время на сортировку. Потом заполняем случайными числами, сортируем обменами, замеряем время.
Потом заполняем в обратном порядке от 10000 до 1. сортируем обменами, замеряем время на сортировку.

потом эти же действия проделываем для сортировки {Метод "быстрой" сортировки (алгоритм Хоора)}
выводим результаты в текстовый файл и на экран (дублирование):
Code
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
Сравнение двух методов сортировки в Турбо-Паскале
 
Метод сортировки обменами
 
Идеальное расположение
До сортировки:
1 2 3 4 5 6 7 8 9 10 
После сортировки:
1 2 3 4 5 6 7 8 9 10 
Время: 0.234
 
Случайное расположение
До сортировки:
9840 7227 7896 1090 6210 1882 9749 9049 190 8978 
После сортировки:
0 0 0 1 1 2 3 3 7 8 
Время: 0.546
 
Обратное расположение
До сортировки:
10000 9999 9998 9997 9996 9995 9994 9993 9992 9991 
После сортировки:
1 2 3 4 5 6 7 8 9 10 
Время: 0.624
 
 
Метод быстрой сортировки
 
Идеальное расположение
До сортировки:
1 2 3 4 5 6 7 8 9 10 
После сортировки:
1 2 3 4 5 6 7 8 9 10 
Время: 0.000
 
Случайное расположение
До сортировки:
9840 7227 7896 1090 6210 1882 9749 9049 190 8978 
После сортировки:
0 0 0 1 1 2 3 3 7 8 
Время: 0.016
 
Обратное расположение
До сортировки:
10000 9999 9998 9997 9996 9995 9994 9993 9992 9991 
После сортировки:
1 2 3 4 5 6 7 8 9 10 
Время: 0.000
 
 
Подведение итогов (время в секундах)
|    |
| Алгоритм | Идеальный | Случайный | Наихудший |
|  |
| Обмен    |0.234|0.546|0.624|
| Хоор  |0.000|0.016|0.000|
|    |
можно ли переписать всё правильно и красиво? Безусловно - ДА!
Нужно ли это делать? Не уверен.
1
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 49
26.05.2020, 23:02  [ТС]
Вот само задание :В соответствии с вариантом реализовать сортировка выбором и сортировку вставками и выполнить их анализ по критерию «Время выполнения»: для первого и второго алгоритма; для наилучшего, наихудшего и среднего случая. Критериями «Требования к объему оперативной памяти» и «Сложность алгоритма» пренебрегаем. Для исследований используется массив, состоящий из 10 000 элементов – целых чисел.
Этот код (с этими сортировками) был дан для примера, но я не понимаю как его переделать под PascalABC.NEТ.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.05.2020, 23:02
Помогаю со студенческими работами здесь

Можно как-то переделать код из Turbo Pascal чтобы он работал в pascal abc.net?
Сделайте пожалуйста, я просто не вникаю uses Graph, Crt; var grDriver: integer; grMode: integer; ErrCode: integer; ...

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

Нужно переделать программу,написанную на Turbo Pascal в ту,чтобы работала на Pascal ABC.NET пожалуйста
program lab3; uses Crt; const Output_File_Name = 'output.txt'; { ima faila dlya vivoda perestanovok } Nmax = 12; {...

Нужно переделать программу,написанную на Turbo Pascal в ту,чтобы работала на Pascal ABC.NET пожалуйста
program lab2; uses Crt; const Nmax = 15; { MAX element mnozestva A } type T = Char; { Tip element mnozestva A }

Перевод из turbo pascal в abc.net
Помогите адаптировать программу для abc.net из turbo pascal Program transportnaj_zadatsha; Uses Crt; Label l1; Const N=10; ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru