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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2014, 21:38   #1
Ляйсан9517
Пользователь
 
Регистрация: 30.03.2014
Сообщений: 31
По умолчанию Помогите составить программу (Lazarus): Дано натуральное число п. Поменять порядок цифр числа на обратный.

Дано натуральное число п. Поменять порядок цифр числа на обратный.
Ляйсан9517 вне форума Ответить с цитированием
Старый 14.04.2014, 21:50   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Последовательно в цикле
Выписываем остатки от деления (mod)
Заносим их в массив
делим число на 10 (div)
Считаем количество делений

Затем выполняем
В обратном цикле от количества делений до 1
Число:=число+ Элемент массива * на 10^i



Можно и проще

Последний раз редактировалось ZX Spectrum-128; 14.04.2014 в 21:51. Причина: Можно и проще
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 15.04.2014, 09:29   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

всё верно. но можно всё в одном цикле легко сделать:
Код:
var N,N0 : integer;
begin
  readln(N);
  N0 := 0; 

  while N>0 do begin
    N0 := N0*10 + (N mod 10);
    N := N div 10;
  end;

  writeln(N0);
  readln;
end.
внимание!
в данном алгоритме нули в конце числа перейдут в начало перевёрнутого числа и будут выброшены как незначащие.
Если нужно, чтобы нули вначале числа сохранились, нужно использовать строки для формирования перевёрнутого числа (т.е. N0 не нужен, нужно S0 - строка, где мы и будем собирать новое число.

Последний раз редактировалось Serge_Bliznykov; 15.04.2014 в 09:32.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.04.2014, 10:16   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Раз это Лазарус, то можно еще как вариант - перевести число в строку и посимвольно также пересобрать в нужном виде. Код выполняется дольше, зато логика может быть оказаться более понятной.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.04.2014, 11:45   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Раз это Лазарус, то можно еще как вариант - перевести число в строку и посимвольно также пересобрать в нужном виде. Код выполняется дольше, зато логика может быть оказаться более понятной.
Т.е. Вы хотите сказать, что в любом другом Паскале (например, в древнем досовском TurboPascal) нельзя перевести число в строку и пересобрать в нужном виде?! ))

p.s. можно и так, конечно. какой вариант выбрать - решать TC
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.04.2014, 12:28   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Т.е. Вы хотите сказать, что в любом другом Паскале (например, в древнем досовском TurboPascal) нельзя перевести число в строку и пересобрать в нужном виде?!
Нет, просто обычно если какой-нибудь Паскаль, то там преподы жестко ограничивают выбор средств и могут не засчитать такой вариант .
Цитата:
p.s. можно и так, конечно. какой вариант выбрать - решать TC
Первый очевидно, там же представлен готовый код
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.04.2014, 13:32   #7
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Цитата:
Сообщение от Ляйсан9517 Посмотреть сообщение
Поменять порядок цифр числа на обратный.
Со строкой алгоритм более массовый: натуральное число п не обязано быть десятичным
Цитата:
Сообщение от Utkin Посмотреть сообщение
преподы жестко ограничивают выбор средств
А вы не в курсе — они в условии задачи об этом нарочно умалчивают?!

Последний раз редактировалось Sasha_Smirnov; 15.04.2014 в 13:36.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 15.04.2014, 13:39   #8
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

А можно все решить одной строкой
Код:
ReadLn(n);
WriteLn(ReverseString(IntToStr(n)))
Poma][a вне форума Ответить с цитированием
Старый 15.04.2014, 13:46   #9
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
А вы не в курсе — они в условии задачи об этом нарочно умалчивают?!
По-разному бывает. Если идет определенная тема, то естественно предполагается что студент должен юзать именно вновь полученные знания . При этом задача может быть стандартная с какого-нибудь задачника/учебника/решебника и потому такое ограничение Вы узнаете только когда Вам препод скажет - переделать. Лазарусы же и прочие Делфи обычно идут уже после курса молодого бойца по овладеванию Паскалем и потому, как правило, свободы в выборе средств намного больше. Здесь уже чаще требуют результат, а не процесс.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано натуральное трехзначное число N. Определить сумму и произведение его цифр. joi_lacosta Паскаль, Turbo Pascal, PascalABC.NET 7 27.09.2013 20:31
Дано натуральное число п. Написать программу для определения первой цифры числа п. AlenaVasilenko Паскаль, Turbo Pascal, PascalABC.NET 5 17.06.2011 18:23
Дано натуральное число N ,правдали,что сумма цифр етого числа-непарная?если несложно-выложите код програ Dima170792 Помощь студентам 3 04.05.2011 22:35
Дано натуральное число n ( n<=100).Чему равна сумма его цифр? Petrovich83 Помощь студентам 1 11.04.2011 21:12
Дано натуральное число n. Определить, сколько парных цифр в числе n. Чему равна сумма нечетных его цифр? pahanzona Microsoft Office Excel 4 27.02.2011 15:46