Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
3 / 3 / 0
Регистрация: 28.11.2014
Сообщений: 118
1

Программа на PascalABC не работает в Turbo Pascal

07.05.2015, 16:36. Просмотров 1525. Ответов 2
Метки нет (Все метки)


Вообщем имеется программа, писали для турбо паскаля, но не получается запустить, на паскале абс работает, кто может помочь запустить на турбо паскале версии 7.0?

Кликните здесь для просмотра всего текста
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
program students;
const m = 4;
const MAX_STUDENTS = 32;
type
    TGrade = byte;
    TArrayOfGrades = array [1..m] of TGrade;
    TStudent = record
        surname:    string;
        name:       string;
        group:      integer;
        grades:     TArrayOfGrades;
    end;
    TArrayOfStudents = array [0..MAX_STUDENTS - 1] of TStudent;
    TFileOfStudents = file of TStudent;
 
procedure PrintLn(const st: TStudent);
var
    i: integer;
begin
    write(st.group, ' ', st.surname, ' ', st.name);
    for i := 1 to m do
        write(' ', st.grades[i]);
    writeln
end;
 
procedure PrintArray(const a: TArrayOfStudents; n: integer);
var i: integer;
begin
    for i := 0 to n - 1 do
        PrintLn(a[i])
end;
 
function Cmp(const a, b: TStudent): integer;
begin
    if a.group > b.group then
        Cmp := 1
    else if a.group < b.group then
        Cmp := -1
    else
    begin
        if a.surname > b.surname then
            Cmp := 1
        else if a.surname < b.surname then
            Cmp := -1
        else
            Cmp := 0
    end
end;
 
procedure CocktailSort(var A: TArrayOfStudents; n: integer);
var
    first, last, i: integer;
    swapped: boolean;
    t: TStudent;
begin
    first := -1;
    last := n - 2;
    repeat
        swapped := false;
        inc(first);
        for i := first to last do
            if Cmp(A[i], A[i + 1]) > 0 then
            begin
                t := A[i];
                A[i] := A[i + 1];
                A[i + 1] := t;
                swapped := true
            end;
        if not swapped then
            break;
        swapped := false;
        dec(last);
        for i := last downto first do
            if Cmp(A[i], A[i + 1]) > 0 then
            begin
                t := A[i];
                A[i] := A[i + 1];
                A[i + 1] := t;
                swapped := true
            end
    until not swapped
end;
 
function MakeKey(const st: TStudent): real;
var S: real; i: integer;
begin
    S := 0;
    for i := 1 to m do
        S := S + st.grades[i];
    MakeKey := S / m
end;
 
procedure SelectionSort(var a: TArrayOfStudents; n: integer);
var
    i, j, m: integer;
    t: TStudent;
    k: real;
    key: array [0..MAX_STUDENTS - 1] of real;
begin
    for i := 0 to n - 1 do
        key[i] := MakeKey(a[i]);
    for i := 0 to n - 2 do begin
        m := i;
        for j := i + 1 to n - 1 do
            if key[j] > key[m] then
                m := j;
        if m <> i then
        begin
            t := a[i];
            a[i] := a[m];
            a[m] := t;
            k := key[i];
            key[i] := key[m];
            key[m] := k
        end
    end
end;
 
procedure CreateJournal(var a: TArrayOfStudents; var n: integer);
var i, j: integer;
begin
    repeat
        write('vvedite kolichestvo students: ');
        readln(n)
    until n > 0;
    for i := 0 to n - 1 do
    begin
        writeln;
        writeln('Student ', i + 1);
        write('vvedite familiy: '); readln(a[i].surname);
        write('vvedite imy:    '); readln(a[i].name);
        write('vvedite gruppu:   '); readln(a[i].group);
        writeln('Enter grades:  ');
        for j := 1 to m do
        begin
            write('               ');
            readln(a[i].grades[j])
        end
    end
end;
 
procedure LoadJournal(var a: TArrayOfStudents; var n: integer);
var
    f: TFileOfStudents;
    filename: string;
    i: integer;
begin
    write('Enter filename: ');
    readln(filename);
    assign(f, filename);
    reset(f);
    n := FileSize(f);
    for i := 0 to n - 1 do
        read(f, a[i]);
    close(f)
end;
 
procedure SaveJournal(const a: TArrayOfStudents; n: integer);
var
    f: TFileOfStudents;
    filename: string;
    i: integer;
begin
    write('Enter filename: ');
    readln(filename);
    assign(f, filename);
    rewrite(f);
    for i := 0 to n - 1 do
        write(f, a[i]);
    close(f)
end;
 
var
    item: byte;
    a: TArrayOfStudents;
    n: integer;
begin
    repeat
        writeln('1) cozdat noviy journal');
        writeln('2) napechatat journal');
        writeln('3) Sort po group number and surname');
        writeln('4) Sort po average grade');
        writeln('5) soxranit journal');
        writeln('0) vixod');
        repeat
            write('viberiti punkt menu: ');
            readln(item)
        until item in [0..6];
        case item of
            1: CreateJournal(a, n);
        2:  begin
                    PrintArray(a, n);
                    write('Press Enter');
                    readln
                end;
            3: CocktailSort(a, n);
            4: SelectionSort(a, n);
            5: SaveJournal(a, n);
        end
    until item = 0
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2015, 16:36
Ответы с готовыми решениями:

Перевод кода с PascalABC в код Turbo Pascal
Прошу помочь в переводе кода с PascalABC в код Turbo Pascal.Заранее благодарю за помощь. //...

Turbo Pascal, Pascal ABC, Free Pascal, PascalABC.NET - в чем разница?
Всем привет, решил изучать Паскаль, но на форуме увидел 4 его версии - Turbo Pascal, Pascal ABC,...

Указатели в Turbo Pascal и PascalABC
Вопрос: почему в Turbo Pascal тактая конструкция const TAB = ^I; begin end. работает, а...

При переводе с PascalABC на Turbo Pascal возникли ошибки (работа с файлами)
файл - text.txt: the word is mine of foo oof the end the word is second of foo oof the end the...

2
3174 / 1750 / 467
Регистрация: 28.02.2015
Сообщений: 3,557
07.05.2015, 17:53 2
Pascal
1
158 procedure SaveJournal(const a: TArrayOfStudents; n: integer);
Уберите CONST и все будет компилироватся в ТР7.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5690 / 3405 / 2429
Регистрация: 22.11.2013
Сообщений: 9,553
Записей в блоге: 1
08.05.2015, 11:34 3
Либо заменить указанный const на var. Особенно актуально для больших массивов, поскольку позволяет избежать их копирования для передачи в функцию по значению. Другой вариант:
Pascal
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
procedure SaveJournal(const a: TArrayOfStudents; n: integer);
var
    f: TFileOfStudents;
    filename: string;
    i: integer;
    t: TStudent;
begin
    write('Enter filename: ');
    readln(filename);
    assign(f, filename);
    rewrite(f);
    for i := 0 to n - 1 do begin
        t := a[i]; write(f, t);
    end;
    close(f)
end;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2015, 11:34

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Работает ли Turbo Pascal на Windows 7
У кого есть Паскаль на семерку?? Дайте ссылку плиз!

Программа в Turbo Pascal 7 компилируется без ошибок а исполняемое приложение не появляется
Сегодня установил Турбо Паскаль. Написал первую программу. Она скомпилировалась без ошибок, но...

Несложная программа неправильно работает в turbo
я начинающий..прога простая, не очень красивая..но всё же...вот код: uses crt; var a, b:...

Перевод из turbo Pascal в PascalABC
Здравствуйте. Я не очень силен в программировании и перевод занимает долгое время. Очень сильно...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.