07.12.2018, 22:38 | #1 (permalink) |
Новичок
Регистрация: 07.12.2018
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите пожалуйста! Нужна блок-схема к программе
function Avto(n:longint):boolean; var p,m:longint; f:boolean; begin p:=n; m:=n*n; f:=true; while (p>0)and f do begin if (p mod 10)<>(m mod 10) then f:=false else begin p:=p div 10; m:=m div 10; end; end; Avto:=f; end; var n,i,k:longint; begin write('n='); readln(n); writeln('Числа запись которых совпадает с последними цифрами записи их квадрата в интервале 1 - ", n); k:=0; for i:=1 to n do if Avto(i) then begin writeln(i,' - ',i*i); k:=1; end; if k=0 then write('Таких чисел нет!'); readln end. |
07.12.2018, 22:38 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Обратите внимание на этот пост, в нем схожие по содержанию с вашей темы Блок-схема к программе Помогите, пожалуйста, построить блок схему по программе |
08.12.2018, 02:00 | #2 (permalink) |
Member
Регистрация: 31.08.2015
Сообщений: 19,439
Сказал(а) спасибо: 283
Поблагодарили 213 раз(а) в 96 сообщениях
Репутация: 80884
|
Лень ставить "трубы поскакали" и проверять, но известные мне компиляторы выплюнули бы эту програМу, не жуя.
Ну или не выплюнули... Чем занимается readln в предпоследней строке?
__________________
Пожалуйста не предлагайте мне дружбу. Не хочу отказывать, но у меня другие понятия, поэтому просто не отвечу. |
08.12.2018, 09:07 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Остановкой работы программы с целью демонстрации всего выведенного на экран. Это необходимо в DOS-версиях. Я сам этим приёмом бесперечь пользуюсь. Без него программа по окончании просто вылетит в среду запуска, не дав посмотреть на результат. Значит, или так, или надо организовывать не экранный, а файловый вывод.
Bodya_8, я, к сожалению, блок-схемами не занимаюсь, но знаю, что в Сети полнО программ и сервисов, решающих эту задачу. Поищите. P.S. Хотя я бы решал эту задачку несколько иначе: Код:
Var i,n:LongInt; k:boolean; function Lg(r:real):real; begin Lg:=Ln(r)/Ln(10); end; function Avto(m:LongInt):boolean; var d,j:Byte; Q,p:LongInt; begin Q:=m*m; d:=Trunc(Lg(m))+1; p:=1; for j:=1 to d do p:=p*10; Avto:=((Q mod p)=m); end; Begin repeat k:=true; Write(' n = '); Readln(n); if n>46340 then begin Writeln(' Too big. Try another.'); k:=false; end; until k; k:=true; for i:=1 to n do if Avto(i) then begin Writeln(' i = ',i:5,' i*i = ',i*i:10); k:=false; end; if k then Writeln(' No such numbers!'); Readln End. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|