Составить программу, в которой будут вводиться 7 — 10 строк таблицы, выводится на экран таблица — сразу же после ввода и после сортировки ее по значениям в первом столбце. Сортировку можно производить методом пузырька- Pascal(Паскаль)

uses crt;
const max=10;
type kult=record
          nam:string[10];
          typ:char;
          pls:word;
          urz:byte;
          end;
var a:array[1..max] of kult;
    x:kult;
    n,i,j:byte;
begin
clrscr;
repeat
write('Количество культур от 7 до 10 n=');
readln(n);
until n in [7..10];
writeln('Введите данные:');
for i:=1 to n do
 begin
  writeln('Культура ',i);
  with a[i] do
   begin
    write(' наименование: ');readln(nam);
    repeat
     write(' тип (З,Б): ');readln(typ);
    until typ in ['Б','З'];
    write(' посевная площадь, га: ');readln(pls);
    write(' урожайность, цн/га: ');readln(urz);
   end;
 end;
clrscr;
writeln('Исходные данные:':40);
writeln;
writeln('---------------------------------------------------');
writeln('| Наименование | Тип | Пос. площадь | Урожайность |');
writeln('---------------------------------------------------');
for i:=1 to n do
with a[i] do
 begin
  gotoXY(1,whereY);write('| ',nam);
  gotoXY(16,whereY);write('|',typ:3);
  gotoXY(22,whereY);write('|',pls:11);
  gotoXY(37,whereY);write('|',urz:11);
  gotoXY(51,whereY);writeln('|');
 end;
writeln('---------------------------------------------------');
write('Нажмите Enter');
readln;
clrscr;
for i:=1 to n-1 do
for j:=1 to n-1 do
if a[j].nam>a[j+1].nam then
 begin
  x:=a[j];
  a[j]:=a[j+1];
  a[j+1]:=x;
 end;
writeln('Данные после сортировки по первому столбцу:':40);
writeln;
writeln('---------------------------------------------------');
writeln('| Наименование | Тип | Пос. площадь | Урожайность |');
writeln('---------------------------------------------------');
for i:=1 to n do
with a[i] do
 begin
  gotoXY(1,whereY);write('| ',nam);
  gotoXY(16,whereY);write('|',typ:3);
  gotoXY(22,whereY);write('|',pls:11);
  gotoXY(37,whereY);write('|',urz:11);
  gotoXY(51,whereY);writeln('|');
 end;
writeln('---------------------------------------------------');
readln
end.

Leave a Comment

70 − = 66