Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2011, 17:37   #1
Cas01
Форумчанин
 
Регистрация: 16.12.2010
Сообщений: 175
По умолчанию Рекурсия(Паскаль)Поправьте

Вот условие:

используя команды write(x) лишь при х=0..9, написать рекурсивную программу печати десятичной записи целого положительного числа n.

Я такие задачи никогда не делал, вот пытался написать процедуру, уверен что неправильно.Помогите кто нибудь с полным кодом программы.Очень нужно.Заранее спасибо!!!



procedure print (n:integer); {n>0}

begin

if n<10 then begin

write (n);

end else begin

print (n div 10);

write (n mod 10);

end;

end;
Cas01 вне форума Ответить с цитированием
Старый 04.05.2011, 17:51   #2
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

рекурсия вроде правильная)
а основной код просто до безобразия

Код:
var n:integer;

begin
write ('N = '); readln(n);
print(n);
readln;
end.
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 04.05.2011, 18:31   #3
Cas01
Форумчанин
 
Регистрация: 16.12.2010
Сообщений: 175
По умолчанию

что то я не понимаю. у меня работать не хочет. Можно весь код пожалуйста , полное решение программы, надо бы сверить.
Cas01 вне форума Ответить с цитированием
Старый 04.05.2011, 18:45   #4
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Код:
var n:integer;

procedure print (n:integer); {n>0}
begin
if n<10 then write (n);
else begin
 print (n div 10);
 write (n mod 10);
end;
end; 

begin
write ('N = '); readln(n);
print(n);
readln;
end.
не забываем что integer должен быть меньше 65536, можно вместо него longint использовать, там до 6 знаков спокойно
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 04.05.2011, 18:53   #5
Cas01
Форумчанин
 
Регистрация: 16.12.2010
Сообщений: 175
По умолчанию

Ещё одна просьба: не мог бы ты написать то что ты вводишь и что у тебя выводит в результате?ПЛЗ
Cas01 вне форума Ответить с цитированием
Старый 04.05.2011, 19:00   #6
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

ввожу 3474
вывод 3474

ввожу 65534
вывод 65534

ввожу 65536
вывод 0 (из за переполнения), но если поменять integer на longint то все норм
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 04.05.2011, 19:06   #7
Cas01
Форумчанин
 
Регистрация: 16.12.2010
Сообщений: 175
По умолчанию

Так а почему нам выводят тоже что мы вводили?Поясни если не сложно, я наверное как то не так условие задачи понял.
Cas01 вне форума Ответить с цитированием
Старый 04.05.2011, 19:14   #8
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Цитата:
написать рекурсивную программу печати десятичной записи целого положительного числа n
то есть я так понимаю просто вывести его по-цифрам, можно вывод пробелов еще в процедурке сделать
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 04.05.2011, 19:20   #9
Cas01
Форумчанин
 
Регистрация: 16.12.2010
Сообщений: 175
По умолчанию

вот я тоже насчет пробелов подумал.Не мог бы ты сделать что бы цмфры выводились в результате через пробел?)
Cas01 вне форума Ответить с цитированием
Старый 04.05.2011, 19:33   #10
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Код:
procedure print (n:integer); {n>0}
begin
if n<10 then write (n,' ');
else begin
 print (n div 10);
 write ((n mod 10),' ');
end;
end;
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
рекурсия паскаль qwerty98765 Помощь студентам 1 19.04.2010 21:11
Паскаль-рекурсия tanyhaftv Помощь студентам 1 24.03.2010 10:33
Рекурсия(Паскаль) yoyo32 Помощь студентам 3 19.12.2009 20:44