|
|||
Задание 3. Program Task3;Задание 3 Program Task3; uses crt;
const NMax = 20;
Type FStadt = record Staate: string; Stadt: string; Platz: real; End;
FStadtArray = array [1..NMax] of FStadt;
Var PCs : FStadtArray; i:byte; N: byte; S: String; Res: byte; Ch: char;
procedure InputFS(Var ST:FStadt); begin with ST do begin write('Страна-> '); readln(Staate); write('Столица-> '); readln(Stadt); write('Площадь: '); readln(Platz); end; end;
procedure PrintPC(ST:FStadt); begin with ST do begin write('Страна: '); readln(Staate); write('Столица: '); writeln(Stadt); write('Площадь: '); writeln(Platz:7:2); end; end;
procedure PrintArray(Stadters:FStadtArray;dim:byte); var fi:byte; begin for fi:=1 to dim do begin write('Страна '); writeln(fi); PrintPC(Stadters[fi]); end; end;
{максимум} function AvgPlatz(Stadters: FStadtArray; dim:byte): real; var fi:byte; Max: real; begin if dim = 0 then AvgPlatz := 0 else begin Max:=0; for fi := 1 to dim do Max := Stadters[1].Platz; For fi := 2 To dim Do If Max < Stadters[fi].Platz Then Max := Stadters[fi].Platz; AvgPlatz:= Max; end; end;
procedure SortDesc(var Stadters:FStadtArray; dim:byte); var fi,fj:byte; temp:FStadt; begin for fi:=1 to dim-1 do for fj:=1 to dim -fi do if Stadters[fj].Platz < Stadters[fj+1].Platz then begin temp:=Stadters[fj]; Stadters[fj]:=Stadters[fj+1]; Stadters[fj+1]:=temp; end; end;
function SearchByStaate(SearchString: String; Stadters:FStadtArray; dim:byte): byte; var fi:byte; begin for fi:=1 to dim do if Stadters[fi].Staate = SearchString then begin SearchByStaate:=fi; exit; end; SearchByStaate:=0; end;
Begin write('Введите количество стран -> '); readln(N); for i:= 1 to N do InputFS(PCs[i]);
write('Самая большая площадь: '); writeln( AvgPlatz(PCs, N):7:3 ); writeln('Нажмите любую клавишу...'); readkey;
SortDesc(PCs, N); writeln('Упорядоченный список стран:'); PrintArray(PCs, N); writeln('Нажмите любую клавишу...'); readkey; {Џ®ЁбЄ Ї® бва®ЄҐ} repeat write('Введите искомое наименование -> '); readln(S); Res := SearchByStaate(S, PCs, N); if Res = 0 then writeln('Искомый объект не найден!') else PrintPC(PCs[Res]); writeln; write('Повторить поиск с новыми условиями? (y/n) '); readln(Ch); until upcase(Ch) <> 'Y'; End.
|
|||
|