![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
ivaaaan |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Продвинутые Сообщений: 5 Регистрация: 25.12.2010 Город: Архангельск Учебное заведение: С(А)ФУ Вы: студент ![]() |
Составьте программу нахождения наименьшего натурального N-значного числа X (X>=10), равного утроенному произведению своих цифр(используя процедуры или функции)
использую две функции: одна по нахождению минимального N-значного числа, вторая по вычислению утроенной суммы цифр. функции отлажены, ошибка в теле программы в том месте, где for i:=a to c do i не меняется, оно всегда ноль, а нужно чтобы менялось от а до с. Как исправить? program zadacha4; var a,b,c,i,ch,N:integer; function min_n_ch(M:integer):integer; var j,mnch:integer; begin mnch:=10; for j:=2 to M-1 do begin mnch:=mnch*10; end; min_n_ch:=mnch; end; function computation(c:integer):integer; var p:string; k,d,f,g:integer; begin str(f,p); g:=1; for i:=1 to length(p) do begin val(p,d,f); g:=g*d; end; g:=g*3; computation:=g; end; begin writeln('enter N'); readln(N); a:=min_n_ch(N); writeln('min_n_ch ',a); c:=a*10-1; writeln('max_n_ch ',c); begin for i:=a to c do begin repeat; b:=computation(i); until i=b; end; end; writeln('b ',(IMG:style_emoticons/default/cool.gif); writeln('program complete'); end. |
Julia |
![]()
Сообщение
#2
|
Ассистент ![]() ![]() ![]() ![]() Группа: Julia Сообщений: 593 Регистрация: 23.2.2007 Город: Улан-Удэ Учебное заведение: БГУ Вы: преподаватель ![]() |
1) Есть сомнения в правильности работы второй функции.
2) В большинстве случаев цикл бесконечный, т.к. i внутри него не меняется repeat; b:=computation(i); until i=b; |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 22:32 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru