Консультация № 136832
14.05.2008, 19:31
0.00 руб.
0 1 1
Уважаемые эксперты! Помогите, пожалуйста, решить задачу:

1. Дан массив данных об автомобилях заводского гаража (формирование массива из файла): номер, марка, год выпуска, пробег, фамилия шофёра.
Вывести:
- сообщение о том, есть ли в гараже автомобиль заданной марки (да или нет)ж
- список машин, подготовленных на списание (старше 1980 года с пробегом более 50 000км), в списке указаны все данные, кроме фамилии шофёра;
-все записи, упорядоченные по признаку: фамилии шофёров в алфавитном порядке.

Заранее огромное спасибо! Swallow.

Обсуждение

давно
Профессор
401888
1232
15.05.2008, 21:41
общий
это ответ
Здравствуйте, Ласточка!
Решение задачи с пояснениями в приложении.

Приложение:
uses crt;const n=5; {можно побольше}type Tgaraz=record {тип запись с полями по условию} nom:string[20]; mar:string[20]; god:word; prb:longint; fam:string[20]; end;var sp:array[1..n] of Tgaraz; {список автомобилей} i,k,j:integer; m:string[10]; {переменная для вызова марки} buf:Tgaraz; {буфер при сортировке}beginclrscr;for i:=1 to n do {вводим данные} begin writeln(‘Mashina ‘,i,‘:‘); write(‘Nomer mashiny: ‘);readln(sp[i].nom); write(‘Marka mashiny: ‘);readln(sp[i].mar); write(‘God vypuska: ‘);readln(sp[i].god); write(‘Probeg: ‘);readln(sp[i].prb); write(‘Familia shofera: ‘);readln(sp[i].fam); end;writeln;write(‘Vvedite marku mashiny:‘);readln(m);k:=0;for i:=1 to n doif sp[i].mar=m then {если марка совпадает, считаем} begin k:=k+1; end;if k>0 then writeln(‘Takaja marka est!‘)else writeln(‘Takoj marki net!‘);writeln;writeln(‘Spisok mashin k spisaniu:‘);for i:=1 to n doif (sp[i].god<1980)and(sp[i].prb>50000)then begin write(‘Nomer ‘,sp[i].nom,‘ Marka ‘,sp[i].mar); write(‘ God vypuska ‘,sp[i].god,‘ Probeg ‘,sp[i].prb); writeln; end;writeln;writeln(‘Spisok po familii shofera:‘);{сортируем список по возрастанию значений поля фамилия(по алфавиту)}for i:=1 to n-1 dofor j:=1 to n-1 doif sp[j].fam>sp[j+1].fam then begin buf:=sp[j]; sp[j]:=sp[j+1]; sp[j+1]:=buf; end;for i:=1 to n do {выводим весь список} begin write(‘ Familia ‘,sp[i].fam,‘ Nomer ‘,sp[i].nom,‘ Marka ‘,sp[i].mar); write(‘ God vypuska ‘,sp[i].god,‘ Probeg ‘,sp[i].prb); writeln; end;readlnend.
Форма ответа