![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
AonEVesT |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 1 Пол: Мужской Репутация: ![]() ![]() ![]() |
Program zadacha;
Uses crt; var arm,a1,a:real; function armstrong(var x:real):real; var k,x3,x2:integer; p,z,s:real; begin p:=0; x2:=trunc(x/1); x3:=x2; k:=0; while x2>0 do begin k:=k+1; x2:=x2 div 10 ; end; p:=0; while x3 >0 do begin s:=x3 mod 10; if s >0 then begin z:= exp(k*ln(s)); p:=p+z; end; x3:=x3 div 10; end; armstrong:=p; end; begin Clrscr; Writeln('vvedi a'); Readln(a); a1:=a; arm:=armstrong(a1); if( a > arm)or (a< arm) then Writeln('no') else Writeln ('yes'); readkey; end. Добавлено через 2 мин. Проблемма в том,что после финального ветвления паскаль выводит no даже если ввели число Армстронга.В чём ошибка? Сообщение отредактировано: AonEVesT - 8.10.2012 16:09 |
![]() ![]() |
Федосеев Павел |
![]()
Сообщение
#2
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Полагаю, ошибка в том, что
1) вычисления нужно проводить в целых числах, 2) выделенные цифры храните в массиве, в отдельной переменной храните количество цифр в числе. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 13:24 |