Консультация № 191710
09.11.2017, 16:04
0.00 руб.
13.11.2017, 09:45
0 2 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Распечатать фамилии тех учеников класса, которые являются хорошистами и отличниками по итогам года. Также указать, насколько их средний балл отличается от среднего балла класса. в Delphi вот на подобии этой задачи:[code lang=pascal h=300]type school=record

fio:string[100];

predmet: string[30];
stazh: 1..50;
nagruzka: string [10];

end;

var f:file of school;
a:school;
n:byte;
procedure formir;
var i:integer;
begin
assignfile(f,'1.dat');
rewrite(f);
for I := 1 to n do
begin
writeln('введите фамилию');
readln(a.fio);
writeln('введите предмет');
readln (a.predmet);
writeln('введите стаж работы');
readln(a.stazh);
writeln('введите нагрузку учителя');
readln(a.nagruzka);
write(f,a);
end;
closefile(f);
end;

procedure vivod;
begin
assignfile(f,'1.dat');
reset(f);
while not eof (f) do
begin
read(f,a);
writeln(a.fio);
writeln(a.predmet);
writeln( a.stazh);
writeln(a.nagruzka);

end;
closefile(f);
end;

procedure poisk;
begin
assignfile(f,'1.dat');
reset(f);
while not eof (f) do
begin
read(f,a);
if (a.predmet='informatika') or (a.predmet='matematika') then
writeln(a.fio , a.stazh , a.nagruzka )

end;
end;

//щсновная программа
begin
writeln('введите кол-во преподавателей');
readln(n);
formir;
vivod;
writeln('стаж и нагрузка Учителя');
poisk;
readln;
end.[/code]

Обсуждение

давно
Старший Модератор
31795
6196
13.11.2017, 17:36
общий
Адресаты:
В файле можно хранить по разному:
- имя и все оценки;
- имя и среднюю оценку;
- и ещё куча вариантов.

Уточните, что именно Вам нужно.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
14.11.2017, 13:34
общий
это ответ
Здравствуйте, Natasha_inf!

Delphi 6:
[code lang=pascal h=300]program Project;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
m=9;
type
tStudy=record
name:string[20];
rating:array[1..m] of integer;
end;
procedure formir;
var
a:file of tStudy;
b:tStudy;
i,j,n:integer;
begin
write('Enter number:');
readln(n);
AssignFile(a,'1.dat');
Rewrite(a);
for i:=1 to n do
begin
write('Enter name:');
readln(b.name);
for j:=1 to m do
begin
write('enter rating ',j,':');
readln(b.rating[j]);
end;
write(a,b);
end;
CloseFile(a);
end;
procedure vivod;
var
a:file of tStudy;
b:tStudy;
j:integer;
begin
writeln('Output Data');
AssignFile(a,'1.dat');
Reset(a);
While Not Eof(a)do
begin
read(a,b);
Write(b.name:20,' :');
for j:=1 to m do
write(' ',b.rating[j]);
writeln;
end;
CloseFile(a);
end;
procedure poisk;
var
a:file of tStudy;
b:tStudy;
c:real;
i,j,n:integer;
begin
writeln('Output Data');
AssignFile(a,'1.dat');
Reset(a);
c:=0;
n:=0;
While Not Eof(a)do
begin
read(a,b);
inc(n);
for j:=1 to m do c:=c+b.rating[j];
end;
if n<>0 then c:=c/(m*n);
writeln('rating class:',c:4:2);
Reset(a);
While Not Eof(a)do
begin
read(a,b);
j:=m;
i:=0;
while(j>0)and(b.rating[j]>3)do
begin
i:=i+b.rating[j];
dec(j);
end;
if(j=0)and((i/m)>=4)then writeln(b.name:20,' :',i/m:4:2,abs(i/m - c):6:2);
end;
CloseFile(a);
end;
begin
{ TODO -oUser -cConsole Main : Insert code here }
formir;
vivod;
poisk;
readln;
end.[/code]

Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа