Добавил:
Shilak
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
Uses CRT;
Type
Zap = record
Fam: string[16] ;
Summa:real;
Ocenk: array[1..4] of 3..5;
End;
Var
fff:array[1..25] of zap;
Rab:zap;
I,m,j: byte;
Key : Boolean;
fl:text;
razmer,summa: real;
kol3,kol4,kol5:byte;
procedure info;
begin
clrscr;
writeln('Domashnee zadanie');
writeln('Shilak Evgenii');
writeln('Gruppa ‘-21');
writeln('Variant 2');
writeln('raschet stipendii');
end;
procedure input;
begin
Assign(fl,'z:\25\Student.txt');
{$I-}
reset(fl);
{$I+}
If IOResult=0 then begin
readln (fl,M);
Writeln ('Vvedite razmer stipendii');
Readln(razmer);
writeln('Chislo studentov = ',M);
writeln('Familiya Ocenki Stependiya');
For I:=1 to M do begin
Kol3:=0;
kol4:=0;
kol5:=0;
read(fl,fff[i].fam);
With fff[i] do
Begin
Write(I:2, Fam:17);
Summa:=razmer;
for j:=1 to 4 do begin
read(fl,fff[i].Ocenk[j]);
write(fff[i].Ocenk[j]:3);
write(' ');
Case Ocenk[j] of
3:kol3:=kol3+1;
4:kol4:=kol4+1;
5:kol5:=kol5+1;
end;
end;
If kol3=1 then
writeln(fff[i].summa:6:2)
else begin
If kol3>1 then
fff[i].Summa:=0;
If kol4=4 then
fff[i].summa:=razmer+razmer/4;
If (kol3=0) and (kol5>=1) then
fff[i].Summa:=razmer+razmer/2;
If kol5=4 then
fff[i].summa:=razmer+razmer;
writeln(fff[i].summa:6:2);
j:=j+1;
end;
write;
readln(fl);
End;
end;
end
else
writeln('Fail ne naiden');
end;
procedure sort;
begin
ClrScr;
writeln('sortirovannii spisok');
key:=true;
While key do begin
key:=false;
for i:=1 to M-1 do
if fff[i+1].summa>fff[i].summa then begin
Rab:=fff[i+1];
fff[i+1]:=fff[i];
fff[i]:=Rab;
key:=true;
end;
end;
For I:=1 to M do
With fff[i] do
Begin
Write(I:2, Fam:17);
for j:=1 to 4 do begin
write(fff[i].Ocenk[j]:3);
write(' ');
end;
writeln(fff[i].summa:6:2);
end;
end;
Begin
info;
input;
writeln('Dlya sortirovki nazhmite Enter');
readkey;
sort;
readkey;
End.
Type
Zap = record
Fam: string[16] ;
Summa:real;
Ocenk: array[1..4] of 3..5;
End;
Var
fff:array[1..25] of zap;
Rab:zap;
I,m,j: byte;
Key : Boolean;
fl:text;
razmer,summa: real;
kol3,kol4,kol5:byte;
procedure info;
begin
clrscr;
writeln('Domashnee zadanie');
writeln('Shilak Evgenii');
writeln('Gruppa ‘-21');
writeln('Variant 2');
writeln('raschet stipendii');
end;
procedure input;
begin
Assign(fl,'z:\25\Student.txt');
{$I-}
reset(fl);
{$I+}
If IOResult=0 then begin
readln (fl,M);
Writeln ('Vvedite razmer stipendii');
Readln(razmer);
writeln('Chislo studentov = ',M);
writeln('Familiya Ocenki Stependiya');
For I:=1 to M do begin
Kol3:=0;
kol4:=0;
kol5:=0;
read(fl,fff[i].fam);
With fff[i] do
Begin
Write(I:2, Fam:17);
Summa:=razmer;
for j:=1 to 4 do begin
read(fl,fff[i].Ocenk[j]);
write(fff[i].Ocenk[j]:3);
write(' ');
Case Ocenk[j] of
3:kol3:=kol3+1;
4:kol4:=kol4+1;
5:kol5:=kol5+1;
end;
end;
If kol3=1 then
writeln(fff[i].summa:6:2)
else begin
If kol3>1 then
fff[i].Summa:=0;
If kol4=4 then
fff[i].summa:=razmer+razmer/4;
If (kol3=0) and (kol5>=1) then
fff[i].Summa:=razmer+razmer/2;
If kol5=4 then
fff[i].summa:=razmer+razmer;
writeln(fff[i].summa:6:2);
j:=j+1;
end;
write;
readln(fl);
End;
end;
end
else
writeln('Fail ne naiden');
end;
procedure sort;
begin
ClrScr;
writeln('sortirovannii spisok');
key:=true;
While key do begin
key:=false;
for i:=1 to M-1 do
if fff[i+1].summa>fff[i].summa then begin
Rab:=fff[i+1];
fff[i+1]:=fff[i];
fff[i]:=Rab;
key:=true;
end;
end;
For I:=1 to M do
With fff[i] do
Begin
Write(I:2, Fam:17);
for j:=1 to 4 do begin
write(fff[i].Ocenk[j]:3);
write(' ');
end;
writeln(fff[i].summa:6:2);
end;
end;
Begin
info;
input;
writeln('Dlya sortirovki nazhmite Enter');
readkey;
sort;
readkey;
End.
