Romanf romanf отличник 2013-01-10t16: 13: 22+00: 00 1. подумать над алгоритмом 2. вот сам алгоритм: а. спросить у пользователя значения б. расчитать ответ в. выдать ответ на экран 3. написать код в паскале 4. исправить ошибки компиляции 5. протестировать, вводить разные числа 6. обнаружила, что если вводить числа наугад ответ получается отрицательным иногда 7. вставить код проверки введенных пользователем значений 8. убрать ошибки компиляции 9. протестировать 10. готово а вот и сама программа: program aerobus; uses crt; const totalplace = 160; var businessplaces, economyplaces: integer; businessprice, economyprice: real; totalcharge: real; a,b: integer; correctinput: boolean; begin clrscr; businessplaces: =totalplace div 4; economyplaces: = totalplace - businessplaces; writeln('business places count: ', businessplaces); writeln('economy places count: ', economyplaces); correctinput: =false; while not correctinput do begin write('please input business class ticket price: '); readln(businessprice); if(businessprice> 0) then begin correctinput: =true; end else begin writeln('the price should be a positive number, please try again'); end; end; economyprice: =businessprice/2; writeln('economy ticket price is: ', economyprice: 0: 2); correctinput: =false; while not correctinput do begin write('how many business tickets are left? : '); readln(a); if(a> =0) and (a< =businessplaces)then correctinput: =true; if(a< 0) then begin writeln('please input a positive number or 0, please try again'); end; if(a> businessplaces) then begin writeln('please input a number which is less or equal to the tolal business place count, please try again'); end; end; correctinput: =false; while not correctinput do begin write('how many economy tickets are left? : '); readln(b); if(b> =0) and (b< =economyplaces)then correctinput: =true; if(b< 0) then begin writeln('please input a positive number or 0, please try again'); end; if(b> economyplaces) then begin writeln('please input a number which is less or equal to the tolal economy place count, please try again'); end; end; totalcharge: =(businessplaces-a)*businessprice; totalcharge: =totalcharge+(economyplaces-b)*economyprice; writeln('the total charge is: ', totalcharge: 0: 2); writeln; writeln('press enter to exit'); readln; end.
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016 begin var a:=ArrRandom(30,1960,2016); a.Println; var iFirst:=a.IndexMin; var iLast:=iFirst; var vMin:=a[iFirst]; for var i:=29 downto iFirst+1 do if a[i]=vMin then begin iLast:=i; break end; if iLast=iFirst then Writeln('Самый старший человек номер ',iFirst+1) else Writeln('Первый из самых старших людей имеет номер ', iFirst+1,', последний из людей этого возраста - номер ', iLast+1) end.
Тестовое решение 1987 1971 1974 1989 1989 1960 1987 2016 1992 1962 1971 2011 1993 1962 2008 1994 1994 1976 1988 2014 2011 1960 1971 2000 1973 2010 1964 1976 1971 1993 Первый из самых старших людей имеет номер 6, последний из людей этого возраста - номер 22
begin
var a:=ArrRandom(30,1960,2016); a.Println;
var iFirst:=a.IndexMin;
var iLast:=iFirst;
var vMin:=a[iFirst];
for var i:=29 downto iFirst+1 do
if a[i]=vMin then begin iLast:=i; break end;
if iLast=iFirst
then Writeln('Самый старший человек номер ',iFirst+1)
else Writeln('Первый из самых старших людей имеет номер ',
iFirst+1,', последний из людей этого возраста - номер ',
iLast+1)
end.
Тестовое решение
1987 1971 1974 1989 1989 1960 1987 2016 1992 1962 1971 2011 1993 1962 2008 1994 1994 1976 1988 2014 2011 1960 1971 2000 1973 2010 1964 1976 1971 1993
Первый из самых старших людей имеет номер 6, последний из людей этого возраста - номер 22