понимаете осталась последняя задача и я её не как написать не могу в программу. помогите кто может пожалуйста
Файл включает фамилию студента и их оценки по трём предметам в сессии. Распечатать по вводимой фамилии - оценки, а кроме того список студентов, получивших степендию ( не имеющих 2 и 3), получивших повышеную степендию(тока 5)
amega
6.02.2009 2:15
ну во первых обявляем тип
Type Tname=string[20]; Trec=record name1:Tname; ball: array [1..3] of integer; end; TArrRec=array [1..50] of trec; Tfile = file of Trec;
потом считываем из файла в масивж
procedure Addfromfile(var s:TarrRec; var count:integer; f:Tfile); begin assign(f,'file.rec'); reset(f); count:=0; while not eof(f) do begin count:=count+1; read(f,s[count]); end; close(f); end;
далее пишем процедуру которая выдает по имени бал
procedure showball(a:TarrRec; count:integer; s:Tname); var i,j:integer; begin for i:=1 to count do begin if a[i].name1=s then begin
for j:=1 to 3 do writeln(a[i].name1,' ',a[i].ball[1],' ',a[i].ball[2]' ',a[i].ball[3]);
end; end;
список студентов которые только 5
procedure showball2(a:TarrRec; count:integer); var i:integer; begin for i:=1 to count do if (a[i].ball[1]=5) and (a[i].ball[2]=5) and (a[i].ball[3]=5) then writeln(a[i].name1,' ',a[i].ball[1],' ',a[i].ball[2]' ',a[i].ball[3]); end;
также для 2 и 3
ну и теперь все процедури вызиваеш в програмке.
volvo
6.02.2009 2:47
Цитата
потом считываем из файла в масив
Сначала надо исправить заголовок процедуры, иначе она у тебя даже не откомпилируется:
procedure Addfromfile(var s:TarrRec; var count:integer; VAR f:Tfile);
, потому что Var в заголовке действует до первой ";"... А файл должен быть только параметром-переменной.
amega
6.02.2009 23:46
помоему лудше вобще вот так зделать
procedure Addfromfile(var s:TarrRec; var count:integer); var f:Tfile begin assign(f,'file.rec'); reset(f); count:=0; while not eof(f) do begin count:=count+1; read(f,s[count]); end; close(f); end;
asxc
7.02.2009 2:19
procedure showball2(a:TarrRec; count:integer); var i:integer; begin for i:=1 to count do if (a[i].ball[1]=5) and (a[i].ball[2]=5) and (a[i].ball[3]=5) then writeln(a[i].name1,' ',a[i].ball[1],' ',a[i].ball[2]' ',a[i].ball[3]); end;
здесь 113 ошибку выдает
volvo
7.02.2009 2:36
Цитата
113 ошибку выдает
Там должна быть не 113-я, а 89-я ошибка, потому что запятая после ball[2] пропущена.
asxc
7.02.2009 16:10
а остальное все правильно?
asxc
10.02.2009 17:10
незнаю почему но программа вообще не работает
Ozzя
10.02.2009 17:21
Текст полный программы выложи.
volvo
10.02.2009 17:23
Цитата
незнаю почему но программа вообще не работает
Это не диагностика... Я тоже не знаю, почему твоя программа, которую ты не показал здесь, у тебя не работает. Приводи программу полностью, + то, что ВВОДИЛ, то, что ДОЛЖНО выводить, и то, что выводит у тебя. Тогда, возможно, на твои реплики кто-то обратит внимание. Пока - это пустое сотрясание воздуха.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.