Двама ученика се състезавали на дълъг скок. Да се напише програма, която позволява въведат в променлива от тип запис имената на учениците и постижението им и да се отпечата кой е скочил по-надалече.
По желание: да се реши задачата, ако всеки от учениците е имал по три опита.


TYPE uchenik1=record ime1:string[20]; skok1:array[1..3] of real; end; uchenik2=record ime2:string[20]; skok2:array[1..3] of real; end; VAR n1:uchenik1; n2:uchenik2; a1:real; a2:real; i:integer; BEGIN //Въвеждаме данните за първия ученик write('Ime: '); readln(n1.ime1); for i:=1 to 3 do begin write('Skok: '); readln(n1.skok1[i]); end; writeln; //Въвеждаме данните за втория ученик write('Ime: '); readln(n2.ime2); for i:=1 to 3 do begin write('Skok: '); readln(n2.skok2[i]); end; //Проверяваме кой е скочил по-далече //Проверяваме рекорда на първия ученик if n1.skok1[1]>n1.skok1[2] then a1:=n1.skok1[1] else a1:=n1.skok1[2]; if n1.skok1[3]>n1.skok1[2] then a1:=n1.skok1[3]; //Проверяваме рекорда на втория ученик if n2.skok2[1]>n2.skok2[2] then a2:=n2.skok2[1] else a2:=n2.skok2[2]; if n2.skok2[3]>n2.skok2[2] then a2:=n2.skok2[3]; //Сравняваме рекордите на двамата ученика if a1>a2 then writeln(n1.ime1,' e skochil s ',a1-a2:0:2,'m po-daleche ot ',n2.ime2) else if a2>a1 then writeln(n2.ime2,' e skochil s ',a2-a1:0:2,'m po-daleche ot ',n1.ime1) else if a1=a2 then writeln('I ',n1.ime1,' i ',n2.ime2,' sa skochili ednakvo daleche'); readln; END.Калояне, не е нужно да се дефинират два типа запис за двата ученика, тъй като данните и за двата са от един и същи тип.
TYPE uchenik=record ime:string[10]; postijenie:real; end; VAR x,y:uchenik; BEGIN //Пъви ученик write('Ime: '); readln(x.ime); write('Postijenie: '); readln(x.postijenie); writeln; //Втори ученик write('Ime: '); readln(y.ime); write('Postijenie: '); readln(y.postijenie); writeln; //Сравняваме if x.postijenie>y.postijenie then writeln(x.ime,' e skochil/a po-daleche') else if y.postijenie>x.postijenie then writeln(y.ime,' e skochil/a po-daleche') else writeln('Dvamata uchenika sa skochili na ravno razstoqnie'); readln; END.Супер отговор за sup3rEva :-)
TYPE uchenik=record ime:string[20]; skok:array[1..3] of real; end; VAR n1,n2:uchenik; a1,a2:real; i:integer; BEGIN //Въвеждаме данните за първия ученик write('Ime: '); readln(n1.ime); for i:=1 to 3 do begin write('Skok: '); readln(n1.skok[i]); end; writeln; //Въвеждаме данните за втория ученик write('Ime: '); readln(n2.ime); for i:=1 to 3 do begin write('Skok: '); readln(n2.skok[i]); end; //Проверяваме кой е скочил по-далече //Проверяваме рекорда на първия ученик if n1.skok[1]>n1.skok[2] then a1:=n1.skok[1] else a1:=n1.skok[2]; if n1.skok[3]>n1.skok[2] then a1:=n1.skok[3]; //Проверяваме рекорда на втория ученик if n2.skok[1]>n2.skok[2] then a2:=n2.skok[1] else a2:=n2.skok[2]; if n2.skok[3]>n2.skok[2] then a2:=n2.skok[3]; //Сравняваме рекордите на двамата ученика if a1>a2 then writeln(n1.ime,' e skochil s ',a1-a2:0:2,'m po-daleche ot ',n2.ime) else if a2>a1 then writeln(n2.ime,' e skochil s ',a2-a1:0:2,'m po-daleche ot ',n1.ime) else if a1=a2 then writeln('I ',n1.ime,' i ',n2.ime,' sa skochili ednakvo daleche'); readln; END.Калояне, проверката if n1.skok[3]>n1.skok[2] then трябва да бъде if n1.skok[3]>а1 then, за да сравняваш третия опит с по-голямата стойност от предните два. Другото е вярно и добре направено.