Сведения об ученике состоят из его имени, фамилии, роста, веса и названия его класса (года обучения и буквы), в котором он учится. Ввести да
Условие задачи:Сведения об ученике состоят из его имени, фамилии, роста, веса и названия его класса (года обучения и буквы), в котором он учится. Ввести данные для 10 учеников. Упорядочить информацию по возрастанию веса (методом «пузырька»). Задание 1. Для работы с информацией сложной структуры необходимо разработать пользовательский тип данных в соответствии с заданием. В каждом варианте исходную информацию требуется ввести с помощью оператора READ из блока DATA или, используя инициализацию массивов (на Паскале). Задание 2. Составить блок-схему для сортировки массива исходной информации методом «пузырька». Задание 3. Составить программу на Паскале для сортировки методом «пузырька»..
program PascalGuru; uses crt;
Type svedenia=record name:string[20];{имя} sname:string[20];{фамилия} growth:integer;{рост [см]} weight:real; {вес [кг]} end; {**************************** процедуры обмена ****************************** } procedure exchanges(var a,b:string[20]); var c:string[20]; begin c:=a; a:=b; b:=c; end;
procedure exchangei(var a,b:integer); var c:integer; begin c:=a; a:=b; b:=c; end;
procedure exchanger(var a,b:real); var c:real; begin c:=a; a:=b; b:=c; end; {----------------------------------------------------------------------------}
var sch:array[1..10] of svedenia; i,n:integer; swop:boolean;
begin
{**************************** ввод информации ******************************* } writeln('Vvedite informatciiu o 10 uchenikah:');
for i:=1 to 10 do begin clrscr; writeln('Vvedite informatcyiu ob ',i,' uchenike:'); writeln; write('Imia: '); readln(sch[i].name); write('Familiia: '); readln(sch[i].sname); write('Rost: '); readln(sch[i].growth); write('Ves: '); readln(sch[i].weight); end;
{**************************** сортировка по весу **************************** } n:=10; repeat swop:=false; for i:=1 to n-1 do if sch[i].weight>sch[i+1].weight then {esli "<" togda po ubivaniiu } begin exchanges(sch[i].name,sch[i+1].name); exchanges(sch[i].sname,sch[i+1].sname); exchangei(sch[i].growth,sch[i+1].growth); exchanger(sch[i].weight,sch[i+1].weight); swop:=true; end; n:=n-1; until not swop; {**************************** вывод информации ****************************** } clrscr; writeln('___Svedeniia ob uchenikax (otsortirov-e po vesu):___'); writeln; for i:=1 to 10 do begin writeln(sch[i].name,' ; ',sch[i].sname,' ; ',sch[i].growth,' ; ',sch[i].weight:0:2); end; writeln; writeln('PS: Imia;Familiia;Rost;Ves');