давно
Старший Модератор
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]
Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.