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.
алг нач цел a, sum, pro вывод 'Введите трёхзначное положительное число: ' ввод a если a<100 или a>999 то вывод 'Это не трёхзначное число. Перезапустите программу!' иначе sum := mod(a, 10) + mod(div(a,10),10) + div(a,100) pro := mod(a, 10) * mod(div(a,10),10) * div(a,100) если sum > 9 и sum < 100 то вывод 'Сумма цифр числа ',a,' - двухзначное число (',sum,')', нс иначе вывод 'Сумма цифр числа ',a,' - не двухзначное число (',sum,')', нс все если pro > 99 и pro < 1000 то вывод 'Произведение цифр числа ',a,' - трёхзначное число (',pro,')', нс иначе вывод 'Произведение цифр числа ',a,' - не трёхзначное число (',pro,')', нс все если mod(sum, 3) = 0 то вывод 'Эта же сумма (',sum,') кратна трём', нс иначе вывод 'Эта сумма (',sum,') не кратна трём', нс все все кон
нач
цел a, sum, pro
вывод 'Введите трёхзначное положительное число: '
ввод a
если a<100 или a>999
то вывод 'Это не трёхзначное число. Перезапустите программу!'
иначе
sum := mod(a, 10) + mod(div(a,10),10) + div(a,100)
pro := mod(a, 10) * mod(div(a,10),10) * div(a,100)
если sum > 9 и sum < 100
то вывод 'Сумма цифр числа ',a,' - двухзначное число (',sum,')', нс
иначе вывод 'Сумма цифр числа ',a,' - не двухзначное число (',sum,')', нс
все
если pro > 99 и pro < 1000
то вывод 'Произведение цифр числа ',a,' - трёхзначное число (',pro,')', нс
иначе вывод 'Произведение цифр числа ',a,' - не трёхзначное число (',pro,')', нс
все
если mod(sum, 3) = 0
то вывод 'Эта же сумма (',sum,') кратна трём', нс
иначе вывод 'Эта сумма (',sum,') не кратна трём', нс
все
все
кон