Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
1 / 1 / 0
Регистрация: 29.09.2013
Сообщений: 72

Написать рекурсивную процедуру для выводу на экран цифр натурального числа в обратном порядке

30.09.2014, 08:29. Показов 6678. Ответов 11

Студворк — интернет-сервис помощи студентам
Написать рекурсивную процедуру для выводу на экран цифр натурального числа в обратном порядке
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.09.2014, 08:29
Ответы с готовыми решениями:

Написать рекурсивную функцию для вывода на экран цифр натурального числа в обратном порядке
можно весь код в паскале!? Добавлено через 1 час 38 минут function rec(ch,new:integer):integer; begin new:=10*(new+ch mod 10); ...

Написать рекурсивную процедуру для вывода цифр числа в обратном порядке
Написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке.

Написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке
1) составить программу возведения натурального числа в квадрат учитывая следуюшие закономерности 1в квадрате=1, 2в квадрате=1+3, ...

11
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
30.09.2014, 08:46
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure pr_rec(ch:integer;var new:integer);
begin
if ch<>0 then
 begin
  new:=new*10+(ch mod 10);
  pr_rec(ch div 10,new);
 end;
end;
var ch,new:integer;
begin
write('ch=');
readln(ch);
pr_rec(ch,new);
writeln(new);
end.
0
 Аватар для Антон1985
138 / 101 / 102
Регистрация: 03.02.2014
Сообщений: 427
01.10.2014, 17:00
Puporev, а начальное значение для переменной new.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.10.2014, 17:26
Ну, попробуй напиши...

Добавлено через 2 минуты
Это же не цикл, а рекурсия.
0
 Аватар для Антон1985
138 / 101 / 102
Регистрация: 03.02.2014
Сообщений: 427
01.10.2014, 18:09
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure revers(const n,m:integer; var novoe_chislo:string);
var
  s:char;
begin
  if m-n>1 then
  begin
    s:=novoe_chislo[n];
    novoe_chislo[n]:=novoe_chislo[m];
    novoe_chislo[m]:=s;
    revers(n+1,m-1,novoe_chislo);
  end;
end;
var
  chislo,novoe_chislo:string;
begin
  write('chislo='); readln(chislo);
  novoe_chislo:=chislo;
  revers(1,Length(novoe_chislo),novoe_chislo);
  writeln(novoe_chislo);
end.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.10.2014, 18:26
Так реверс строки делается проще
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure Revers(k:byte;s:string);
begin
write(s[k]);
if k>1 then
Revers(k-1,s);
end;
var s:string;
    c:char;
    i,k:byte;
begin
writeln('Vvedite chislo:');
readln(s);
k:=length(s);
Revers(k,s);
end.
0
 Аватар для Антон1985
138 / 101 / 102
Регистрация: 03.02.2014
Сообщений: 427
01.10.2014, 19:06
Тогда другой вид программы, написанный в посте #5
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure revers(const n:integer; var chislo:string; var novoe_chislo:string);
var
  s:char;
begin
  novoe_chislo:=novoe_chislo+chislo[n];
  if n>1 then
    revers(n-1,chislo,novoe_chislo);
end;
var
  chislo,novoe_chislo:string;
begin
  write('chislo='); readln(chislo);
  novoe_chislo:='';
  revers(Length(chislo),chislo,novoe_chislo);
  writeln(novoe_chislo);
end.
0
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 13
12.11.2014, 18:39
а как написать через рекурсивную функцию?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
12.11.2014, 19:07
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
function rec(ch,new:integer):integer;
begin
new:=10*(new+ch mod 10);
if ch>9 then rec:=rec(ch div 10,new)
else rec:=new div 10;
end;
 
var ch:integer;
begin
write('ch=');
readln(ch);
writeln(rec(ch,0));
end.
1
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
13.11.2014, 11:01

Не по теме:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function IntRevers(a : Longint) : Longint;
Var k : Longint;
Begin
  k:=0;
  While a>0 do
  Begin
    k:=k*10+(a mod 10);
    a:=a div 10;
  end;
  IntRevers:=k;
end;
 
Begin
  Writeln(IntRevers(123450));
end.
Мне кажется без рекурсии все таки красивее и покороче... ну почти покороче ))



Добавлено через 2 минуты
Я вот не очень понял, зачем в функцию столько параметров вводить? Ведь можно обойтись одним начальным значением... или это я не подумав сказал?...
0
13.11.2014, 11:04

Не по теме:

Да рекурсию вообще зря во многих программах заставляют делать, начиная с факториала и Фибоначчи.
Учеба блин...

0
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
13.11.2014, 11:17
На правах "рекурсивного извращенца":

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Function Power10k(k : Byte) : Longint;
Begin
  If k>0 then Power10k:=10*Power10k(k-1) else Power10k:=1;
end;
 
Function GetNumCifr(A : Longint) : Integer;
Begin
  If A<=0 then GetNumCifr:=0 else GetNumCifr:=1+GetNumCifr(A div 10);
End;
 
Function IntRevers(a : Longint) : Longint;
Begin
  If a>0 then
    IntRevers:=(a mod 10)*(Power10k(GetNumCifr(a)-1))+IntRevers(a div 10)
  else IntRevers:=0;
end;
 
Begin
  Writeln(IntRevers(12345));
end.
Добавлено через 2 минуты
Правда 123450 - выведет без ведущего нуля, т.к. все делается в числовом виде... но со строками выйдет еще проще и короче.

P.S.: Этот вариант можно рассматривать в виде рабочей шутки и только ради сокращения количества параметров функции. =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2014, 11:17
Помогаю со студенческими работами здесь

Написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке
необходимо написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке

Необходимо написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке
Необходимо написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке

Написать рекурсивную процедуру длявывода на экран цифр натурального числа в обратном порядке
Написать рекурсивную процедуру длявывода на экран цифр натурального числа в обратном порядке.

Написать рекурсивную процедуру для ввода последовательности чисел и вывода ее на экран в обратном порядке
Написать рекурсивную процедуру для ввода с клавиатуры последовательности чисел(окончание ввода-0) и вывода ее на экран в обратном порядке.

Разработать рекурсивную функцию для вывода на экран цифр натурального числа в прямом порядке
Разработать рекурсивную функцию для вывода на экран цифр натурального числа в прямом порядке. Применить эту функцию ко всем числам из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru