Вывести на печать таблицу, в которой будут записаны 10 автомобилей и их характеристики - Pascal
Формулировка задачи:
Program Machines; uses crt; const nmax=10; type machine=record Name:string[15]; Power:50..1000; MaxSpeed:string[10]; Weight:string[5]; ExteriorView:string[10]; CilynderVolume:string[11]; Price:string[6]; end; var a:array[1..nmax] of machine; n,i:byte; begin clrscr; repeat write('Максимальное количество автомобилей до ',nmax,' n='); readln(n); until n in [1..nmax]; writeln('Введите данные об автомобилях'); for i:=1 to n do begin writeln('Автомобиль ',i); with a[i] do begin write(' Название атомобиля: ');readln(Name); repeat write(' Мощность [50..1000]: ');readln(Power); until Power in [50..1000]; write(' Наибольшая скорость: ');readln(MaxSpeed); write(' Масса: ');readln(Weight); write(' Вид кузова: ');readln(ExteriorView); write(' Рабочий объём цилиндра: ');readln(CilynderVolume); write(' Цена: ');readln(Price); end; end; clrscr; writeln('Список автомобилей:':40); writeln; writeln('-------------------------------------------------------------------------------------'); writeln('| Назв.модели |Мощн.|Наиб.скор.|Масса| Вид куз. |Раб.об.цил.| Цена |'); writeln('-------------------------------------------------------------------------------------'); for i:=1 to n do with a[i] do begin gotoXY(1,whereY);write('| ',Name); gotoXY(17,whereY);write('| ',Power:4); gotoXY(23,whereY);write('| ',MaxSpeed); gotoXY(34,whereY);write('|',Weight); gotoXY(40,whereY);write('|',ExteriorView); gotoXY(51,whereY);write('|',CilynderVolume); gotoXY(63,whereY);write('|',Price); gotoXY(70,whereY);writeln('|'); writeln('----------------------------------------------------------------------------------'); end; readln end.
Решение задачи: «Вывести на печать таблицу, в которой будут записаны 10 автомобилей и их характеристики»
var b: array [1..nmax] of Integer; t: Integer; ... for i:=1 to n do b[i]:=i; p:=n-1; repeat j:=0; for i:=1 to p do if a[b[i]].power<a[b[i+1]].power then begin t:=b[i]; b[i]:=b[i+1]; b[i+1]:=t; j:=i; end; p:=j; until p=0; for i:=1 to n do with a[b[i]] do WriteLn({...});
Объяснение кода листинга программы
В данном коде используется массив b, который содержит числа от 1 до n. Переменная t хранит номер текущего элемента массива b. С помощью цикла for i:=1 to n do b[i]:=i; происходит заполнение массива b числами от 1 до n. Далее, переменная p:=n-1; используется для организации цикла repeat, внутри которого происходит поиск наименьшего элемента в массиве b. Внутри цикла for i:=1 to p do происходит поиск наименьшего элемента в подмассиве, начиная с индекса b[i] и заканчивая индексом b[i+1]. Если текущий элемент имеет меньшую мощность, чем следующий элемент, то происходит обмен их местами. После завершения внутреннего цикла, переменная p обновляется в соответствии с найденным наименьшим элементом. Затем, с помощью цикла for i:=1 to n do с каждым элементом массива a происходит операция записи на печать. Таким образом, данный код выводит на печать таблицу, в которой записаны 10 автомобилей и их характеристики.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д