program baza; uses crt; type sp=record fio : string; strana: string; vid : string; end; vec = array [1..8] of sp; var t,t1,t2,t3:vec; f:text; i,k,m,l,s,dlina,q,w:integer ; a,b,c,d,e,p:string; Procedure VVod (var sp:vec); {Ввод списка из файла и вывод на экран} var i,w: integer; Begin For i:= 1 to 7 do With sp[i] do Begin readln (f,fio); q:=30-length(fio); for w:=1 to q do fio:=fio+' '; fio:=fio+'|'; write(fio); readln(f,strana); q:=30-length(strana); for w:=1 to q do strana:=strana+' '; strana:=strana+'|'; write(strana); readln(f,vid); q:=30-length(vid); for w:=1 to q do vid:=vid+' '; writeln(vid); end; end; Begin assign (f,'rally.txt'); reset (f); clrscr; Writeln('Исходный массив записей:':30); Writeln; VVod (t); close(f ); writeln('Желаете удалить(1),добавить(2),заменить(3) какую-либо строку? '); readln(m); if m=1 then begin write('И какой же номер удаляемой строки? '); {delete} readln(l); dlina :=6; For i:= l to 6 do With t[i] do begin t [i]:=t[i+1] ; s:=length(t[7].fio ); delete(t[7].fio,1,s); s:=length(t[7].strana ); delete(t[7].strana,1,s); s:=length(t[7].vid ); delete(t[7].vid,1,s); end; end; if m=2 then {добавить строку} begin writeln('Пожалуйста, ввведите данные новой записи: ФИО, страна, вид'); readln(t[8].fio); q:=30-length(t[8].fio); for w:=1 to q do t[8].fio:=t[8].fio+' '; t[8].fio:=t[8].fio+'|'; readln(t[8].strana); q:=30-length(t[8].strana); for w:=1 to q do t[8].strana:=t[8].strana+' '; t[8].strana:=t[8].strana+'|'; readln(t[8].vid); q:=30-length(t[8].vid); for w:=1 to q do t[8].vid:=t[8].vid+' '; dlina :=8; end; if m=3 then {замена} begin writeln('Пожалуйста, введите номер, который нужно заменить'); readln(i); writeln(' А теперь ведите новые ФИО '); readln(a); t[i].fio:=a; q:=30-length(t[i].fio); for w:=1 to q do t[i].fio:=t[i].fio+' '; t[i].fio:=t[i].fio+'|'; writeln(' Введите новую страну, если Вас не затруднит'); readln(b); t[i].strana:=b; q:=30-length(t[i].strana); for w:=1 to q do t[i].strana:=t[i].strana+' '; t[i].strana:=t[i].strana+'|'; writeln(' Будьте добры, введите новый вид гонки'); readln(c); t[i].vid:=c; q:=30-length(t[i].vid); for w:=1 to q do t[i].vid:=t[i].vid+' '; dlina:=7; end; Writeln ('Результат:':30); For k:= 1 to dlina do With t[k] do Writeln(fio:6,strana,vid); k:=1; writeln( 'Сейчас мы создадим массив гонщиков из выбранных вами стран, хорошо? '); readln(a); if (a='да') or (a='хорошо')or (a='ок') then begin writeln(' По каким странам стоит выбрать?'); readln(b); readln(c); d:=copy(b,1,3); e:=copy(c,1,3); for i:=1 to 7 do begin if copy(t[i].strana,1,3)=e then begin t1[k].fio :=t[i].fio; t1[k].strana :=t[i].strana; t1[k].vid :=t[i].vid; k:=k+1; end; if copy(t[i].strana,1,3)=d then begin t1[k].fio :=t[i].fio; t1[k].strana :=t[i].strana; t1[k].vid :=t[i].vid; k:=k+1; end; end; t2:=t1; end; if a='нет' then t2:= t; Writeln ('Результат:':30); For k:= 1 to 7 do With t1[k] do Writeln(fio:6,strana,vid); i:=1; writeln('Не желаете ли отсортировать массивчик?'); writeln('Быть может, по фамилиям? Ответьте: да или нет'); readln(a); if a ='да' then for k:=1 to 6 do for i:=1 to 7 do if t2[i+1].fio