Const
kk=100; // макксимальное количество старых автомобилей
type
tAuto=record
FIO:string[12]; // ФИО владельца
Marka:string[12]; // Марка автомобиля
GodV:integer; // Год выпуска
GosNom:string[6]; // Номер автомобиля
Color:string[12] // Цвет
end;
var
Cars:array[1..kk] of tAuto;
k:integer; // количество старых автомобилей
year:integer; // год, на который производится расчет
i:integer;
begin
k:=0;
Write('Год, на который производится расчет: '); Readln(year);
// Далее глупый ввод данных, но он так сделан из-за кривой
// постановки задачи. Нам надо отобрать из всех автомобилей
// часть по условию, но для этого надо иметь сведения обо всех этих
// авомобилях. В реальности, конечно, читается готовый файл
// и из него делается отбор, а тут чтение из файла имитируется
// вводом с клавиатуры. Фактически, вместо того, чтобы сразу ввести год
// выпуска и прервать дальнейший ввод сведений по автомобилю,
// если он не попадает в выборку, мы вводим все, а уж потом лишние
// бракуем.
// Фактически, изначально приучаем школьников делать, как не надо.
repeat
Inc(k);
Writeln('Введите сведения об автомобиле');
Write('ФИО владельца (* - закончить ввод): '); Readln(Cars[k].FIO);
if Cars[k].Fio[1]='*' then begin Dec(k); Break end;
Write('Марка автомобиля: '); Readln(Cars[k].Marka);
Write('Год выпуска: '); Readln(Cars[k].GodV);
Write('Номер автомобиля: '); Readln(Cars[k].GosNom);
Write('Цвет кузова: '); Readln(Cars[k].Color);
if year-Cars[k].GodV<=10 then Dec(k)
until k=kk; // ограничение на переполнение массива
// Теперь Cars[] содержит сведения о k автомобилях для вывода
Writeln;
Writeln('Количество автомобилей старше 10 лет равно ',k);
if k=0 then Exit; // На нет и суда нет
for i:=1 to 62 do Write('-'); Writeln;
Write(' ФИО Марка Год Номер Цвет');
Writeln(' Возраст');
Writeln(' владельца автомобиля выпуска автомобиля кузова');
for i:=1 to 62 do Write('-'); Writeln;
for i:=1 to k do
With Cars[i] do
Writeln(FIO:12,' ',Marka:12,GodV:6,' ',GosNom:6,' ',
Color:12,year-GodV:3);
for i:=1 to 62 do Write('-'); Writeln
end.
Пример
Год, на который производится расчет: 2016
Введите сведения об автомобиле
ФИО владельца (* - закончить ввод): Петров Г.В.
Марка автомобиля: Лада
Год выпуска: 2003
Номер автомобиля: С430АМ
Цвет кузова: Белый
Введите сведения об автомобиле
ФИО владельца (* - закончить ввод): 123456789012
Марка автомобиля: 123456789012
Год выпуска: 2000
Номер автомобиля: ХХХХХХ
Цвет кузова: 123456789012
Введите сведения об автомобиле
ФИО владельца (* - закончить ввод): *
Количество автомобилей старше 10 лет равно 2
--------------------------------------------------------------
ФИО Марка Год Номер Цвет Возраст
владельца автомобиля выпуска автомобиля кузова
--------------------------------------------------------------
Петров Г.В. Лада 2003 С430АМ Белый 13
123456789012 123456789012 2000 ХХХХХХ 123456789012 16
--------------------------------------------------------------
<u>Замечание:</u> у здешнего шрифта отвратительная манера все искажать (сколько не просили сделать возможность вывода моноширинным шрифтом - глухо). Посему истинная картинка дана во вложении.
kk=100; // макксимальное количество старых автомобилей
type
tAuto=record
FIO:string[12]; // ФИО владельца
Marka:string[12]; // Марка автомобиля
GodV:integer; // Год выпуска
GosNom:string[6]; // Номер автомобиля
Color:string[12] // Цвет
end;
var
Cars:array[1..kk] of tAuto;
k:integer; // количество старых автомобилей
year:integer; // год, на который производится расчет
i:integer;
begin
k:=0;
Write('Год, на который производится расчет: '); Readln(year);
// Далее глупый ввод данных, но он так сделан из-за кривой
// постановки задачи. Нам надо отобрать из всех автомобилей
// часть по условию, но для этого надо иметь сведения обо всех этих
// авомобилях. В реальности, конечно, читается готовый файл
// и из него делается отбор, а тут чтение из файла имитируется
// вводом с клавиатуры. Фактически, вместо того, чтобы сразу ввести год
// выпуска и прервать дальнейший ввод сведений по автомобилю,
// если он не попадает в выборку, мы вводим все, а уж потом лишние
// бракуем.
// Фактически, изначально приучаем школьников делать, как не надо.
repeat
Inc(k);
Writeln('Введите сведения об автомобиле');
Write('ФИО владельца (* - закончить ввод): '); Readln(Cars[k].FIO);
if Cars[k].Fio[1]='*' then begin Dec(k); Break end;
Write('Марка автомобиля: '); Readln(Cars[k].Marka);
Write('Год выпуска: '); Readln(Cars[k].GodV);
Write('Номер автомобиля: '); Readln(Cars[k].GosNom);
Write('Цвет кузова: '); Readln(Cars[k].Color);
if year-Cars[k].GodV<=10 then Dec(k)
until k=kk; // ограничение на переполнение массива
// Теперь Cars[] содержит сведения о k автомобилях для вывода
Writeln;
Writeln('Количество автомобилей старше 10 лет равно ',k);
if k=0 then Exit; // На нет и суда нет
for i:=1 to 62 do Write('-'); Writeln;
Write(' ФИО Марка Год Номер Цвет');
Writeln(' Возраст');
Writeln(' владельца автомобиля выпуска автомобиля кузова');
for i:=1 to 62 do Write('-'); Writeln;
for i:=1 to k do
With Cars[i] do
Writeln(FIO:12,' ',Marka:12,GodV:6,' ',GosNom:6,' ',
Color:12,year-GodV:3);
for i:=1 to 62 do Write('-'); Writeln
end.
Пример
Год, на который производится расчет: 2016
Введите сведения об автомобиле
ФИО владельца (* - закончить ввод): Петров Г.В.
Марка автомобиля: Лада
Год выпуска: 2003
Номер автомобиля: С430АМ
Цвет кузова: Белый
Введите сведения об автомобиле
ФИО владельца (* - закончить ввод): 123456789012
Марка автомобиля: 123456789012
Год выпуска: 2000
Номер автомобиля: ХХХХХХ
Цвет кузова: 123456789012
Введите сведения об автомобиле
ФИО владельца (* - закончить ввод): *
Количество автомобилей старше 10 лет равно 2
--------------------------------------------------------------
ФИО Марка Год Номер Цвет Возраст
владельца автомобиля выпуска автомобиля кузова
--------------------------------------------------------------
Петров Г.В. Лада 2003 С430АМ Белый 13
123456789012 123456789012 2000 ХХХХХХ 123456789012 16
--------------------------------------------------------------
<u>Замечание:</u> у здешнего шрифта отвратительная манера все искажать (сколько не просили сделать возможность вывода моноширинным шрифтом - глухо). Посему истинная картинка дана во вложении.
0
0