Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 31.10.2012, 23:46   #1 (permalink)
kickmaster
Member
 
Регистрация: 09.10.2012
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Нужна помощь в решении задачи Pascal

Доброго времени суток. Помогите пожалуйста решить задачу.
Free Pascal Lazarus.
Условия.
Дано натурально число n меньше 100.Получить из него новое число такое, чтобы цифры в нем располагались по возрастанию. Разобрать случай для однозначных и двухзначных чисел. Циклы не применять.
Заранее спасибо.
kickmaster вне форума   Ответить с цитированием

Старый 31.10.2012, 23:46
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Рекомендую обратить особое внимание на похожи темы

Очень нужна помощь в решении лабораторных на языке Паскаль
Нужна помощь в решении задачи
Нужна помощь в решении двух задач
Нужна помощь в решении задач на Паскале

Старый 01.11.2012, 09:52   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от kickmaster Посмотреть сообщение
Заранее спасибо.
Да пожалуйста. Хотя не могу не заметить, юноша, что Ваш настрой на жизнь чужим умом - путь в никуда. Вот Вам лень разбираться с самыми простенькими задачками, а дальше, когда уровень возрастет, то что? Рассчитываете, что и впредь будет по схеме: получил задание - вывылил на форум - скатал решение - сдал? Не будет, уверяю Вас. Так что мой Вам совет: беритесь за ум, пока не поздно. И начните с того, что вместо тупого скатывания решений Ваших задачек, попытайтесь хотя бы в них разобраться.
Впрочем, Вам жить, так что решайте сами.
Код:
Var
 n:Byte;
Begin
 Write('n (<100) = ');
 Readln(n);
 If (n>9) and ((n div 10)>(n mod 10)) then
  n:=(n mod 10)*10+(n div 10);
 Writeln('new n = ',n);
 Readln;
End.
Vladimir_S вне форума   Ответить с цитированием
Старый 01.11.2012, 15:08   #3 (permalink)
kickmaster
Member
 
Регистрация: 09.10.2012
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Я всё понимаю, но я сначала сам пытаюсь решить задачу, а потом уже прошу помощи.
И пытаюсь понять как решена задача.Можно немного расписать решение задачи?
kickmaster вне форума   Ответить с цитированием
Старый 01.11.2012, 15:29   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от kickmaster Посмотреть сообщение
Можно немного расписать решение задачи?
Можно. Без проблем.
Как выделить цифры двузначного числа? А вот как: количество десятков есть результат целочисленного деления (div) числа на 10, а количество единиц - остаток от такого деления (mod). Так,
84 div 10 = 8
84 mod 10 = 4
Проверив, что введенное число - действительно двузначное (>9) и получив эти две цифры, сравниваем их между собой, и если окажется, что первая больше второй (в нашем примере 8>4), то вторую умножаем на 10 и прибавляем первую, таким образом меняя их местами:
4*10 + 8 = 48.
Вроде и всё.
Vladimir_S вне форума   Ответить с цитированием
Старый 01.11.2012, 16:08   #5 (permalink)
kickmaster
Member
 
Регистрация: 09.10.2012
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Можно. Без проблем.
Как выделить цифры двузначного числа? А вот как: количество десятков есть результат целочисленного деления (div) числа на 10, а количество единиц - остаток от такого деления (mod). Так,
84 div 10 = 8
84 mod 10 = 4
Проверив, что введенное число - действительно двузначное (>9) и получив эти две цифры, сравниваем их между собой, и если окажется, что первая больше второй (в нашем примере 8>4, то вторую умножаем на 10 и прибавляем первую, таким образом меняя их местами:
4*10 + 8 = 48.
Вроде и всё.
Спасибо большое =)
kickmaster вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 01.11.2012, 16:20   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от kickmaster Посмотреть сообщение
Спасибо большое =)
Да не за что.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 04:04.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.