Создать массив, содержащий следующие сведения: фамилию владельца, марку автомобиля, номерной знак, год выпуска, объем двигателя, цвет. Вывести марку автомобилей с наибольшим объемом двигателя, выпущенных до определенного года. На экран выводить исходные данные в виде таблицы с использованием символов псевдографики, а также результаты работы в наглядном виде — Pascal(Паскаль)

Program PascalGuru;

uses crt;

type
  m = record
    famil: string[12];
    marka: string[12];
    nznak: string[8];
    god: integer;
    obiem: real;
    cvet: string[10];
  end;

var
  massiv: array [1 .. 50] of m;
  n: integer;

  { -------------------------------------------------------- }
procedure vyvod;
var
  i, god, k: integer;
  max: real;
begin
  clrscr;

  { ************************************* }
  write(chr(201));
  for i := 1 to 57 do
    write(chr(205));
  write(chr(187));
  writeln;

  for i := 1 to n do
  begin
    write(chr(186), massiv[i].famil:12);
    write(chr(186), massiv[i].marka:12);
    write(chr(186), massiv[i].nznak:8);
    write(chr(186), massiv[i].god:4);
    write(chr(186), massiv[i].obiem:8:2);
    write(chr(186), massiv[i].cvet:8);
    write(chr(186));
    writeln;
  end;

  write(chr(200));
  for i := 1 to 57 do
    write(chr(205));
  write(chr(188));
  writeln;
  { ************************************* }
  writeln;
  writeln;
  write('Naiti avto s naibolishim obiemom dvigatelya, vypuschennyh do: ');
  readln(god);

  for i := 1 to n do
    if massiv[i].god <= god then
    begin
      k := i;
      break;
    end;

  max := massiv[k].obiem;

  for i := k + 1 to n do
    if massiv[i].god <= god then
      if massiv[i].obiem > max then
        max := massiv[i].obiem;

  clrscr;
  { ************************************* }
  write(chr(201));
  for i := 1 to 57 do
    write(chr(205));
  write(chr(187));
  writeln;

  for i := 1 to n do
    if massiv[i].obiem = max then
    begin
      write(chr(186), massiv[i].famil:12);
      write(chr(186), massiv[i].marka:12);
      write(chr(186), massiv[i].nznak:8);
      write(chr(186), massiv[i].god:4);
      write(chr(186), massiv[i].obiem:8:2);
      write(chr(186), massiv[i].cvet:8);
      write(chr(186));
      writeln;
    end;

  write(chr(200));
  for i := 1 to 57 do
    write(chr(205));
  write(chr(188));
  writeln;
  { ************************************* }

end;

{ -------------------------------------------------------- }
procedure vvod;
var
  i: integer;
begin
  clrscr;
  write('Skoliko zapisei zhelaete vvesti v massiv: ');
  readln(n);

  for i := 1 to n do
  begin
    clrscr;
    writeln('Vvod ', i, ' zaprisi...');
    writeln;
    write('Familiya vladelitsa: ');
    readln(massiv[i].famil);
    write('marka avtomobilya: ');
    readln(massiv[i].marka);
    write('nomernoi znak: ');
    readln(massiv[i].nznak);
    write('god vypuska: ');
    readln(massiv[i].god);
    write('obiem dvigatelya: ');
    readln(massiv[i].obiem);
    write('tsvet: ');
    readln(massiv[i].cvet);
  end;

  vyvod;
end;

{ -------------------------------------------------------- }
begin

  vvod;

  readln;

end.

Leave a Comment

20 − = 18