Другие языки программирования и технологии

Пожалуйста проверьте, правильно ли составлен программный код, выходит ошибка "Индекс находится вне границы массива

Задание
.Составить программу для создания текстового файла (.txt) данных следующей структуры:
Фамилия, имя, отчество студента,
Год рождения студента,
Средний балл за экзаменационную сессию.
Файл должен содержать информацию о пяти студентах.
3.2 Используя возможности текстового редактора системы программирования TURBO PASCAL, добавить в файл данных (.txt) информацию еще о двух студентах.
3.3 Используя стандартную процедуру APPEND( ) добавить в текстовый файл информацию о трех студентах. Файл данных должен содержать информацию о 10 студентах.
Вычислить средний балл группы и распечатать список студентов, имеющих средний балл выше среднего балла группы.
Программный код
const n=5;
type student = record
fio: string[50];
ball: real;
god: 1995..2004;
end;
var
gruppa:array[1..n] of student;
i:integer;
sb:real;
spisok: text;
begin
assign(spisok, 'sp.txt');
reset(spisok);
while not eof(spisok) do begin
with gruppa[i] do
begin
readln(spisok);
readln(spisok);
readln(spisok,ball);
sb := sb+gruppa[i].ball;;
end;
sb := sb/n;;
with gruppa[i] do
begin
readln(spisok,fio);
readln(spisok, god);
readln(spisok,ball);
readln(spisok);
writeln('студенты чей србал выше србала: ');
for i:=1 to n do
if sb<gruppa[i].ball then writeln(gruppa[i].fio);
readln;
//закрытие файла
close(spisok);
end;
end;
end.
попробуй разберись с моей прогой
program pro ;
uses crt;
type student = record
g:integer;
fam: string[50];
imja: string[30];
ot: string [30];
gr: integer;
pol: string [1];
f:integer ;
m:integer ;
oi:integer ;
end;
var
a: array[1..255] of student ;
i,n:integer ;
fp:file of student ;
w:student;
Begin
clrscr;
assign (fp,'C:\student.dat');
rewrite(fp) ;
write('Введите колличество студентов: ');
readln(n);
writeln;
writeln('Введите данные о каждом: ');
writeln;
for i := 1 to n do
begin
write('Группа: ',i,'-ого студента: ');
readln(w.g);
write('Фамилия ',i,'-ого студента: ');
readln(w.fam);
write('Имя ',i,'-ого студента: ');
readln(w.imja);
write('Отчество ',i,'-ого студента: ');
readln(w.ot);
write('Год рождения: ',i,'-ого студента: ');
readln(w.gr);
write('Пол: ',i,'-ого студента: ');
readln(w.pol);
write('Оценка по физике: ',i,'-ого студента: ');
readln(w.f);
write('Оценка по математике: ',i,'-ого студента: ');
readln(w.m);
write('Оценка по информатике: ',i,'-ого студента: ');
readln(w.oi);
write(fp,w);
end ;
close(fp) ;
reset(fp); n:=0;
while not eof(fp) do begin inc(n); //чтение файла
read(fp,w); a[n]:=w; // в массив А
end; //
close(fp) ;
for I:=1 to n do
with a[i] do //печать массива А
writeln(i:2,fam:10,imja:7,ot:7,gr:5,pol:2,f:3,m:3,oi:3);
for I:=1 to n do begin
if (a[i].f=2) and (a[ i ].m=2) and (a[ i ].oi=2) and (a[ i ].pol='M' )
then write(a[i].fam:10,a[i].imja:10,a[i].ot:10) ;
end ;
readln ;
end.
Денис Антошин
Денис Антошин
95 955
Лучший ответ
Бля, ну чо так сложно за комментировать? Сидеть тут, в таком разрешении разбираться. Не ужели про правило написания кода, ни кто не рассказывал?
М.кабулжон
М.кабулжон
3 095