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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2011, 21:46   #1
noone
Пользователь
 
Регистрация: 16.12.2011
Сообщений: 10
Вопрос ABC Pascal

Дано натуральное число. Найти его максимальную цифру.
noone вне форума Ответить с цитированием
Старый 16.12.2011, 22:03   #2
Xardas
Сисадмин
Форумчанин
 
Аватар для Xardas
 
Регистрация: 28.12.2007
Сообщений: 320
По умолчанию

Берешь число.
Ищешь остаток от деления на 10, находя тем самым последнюю цифру, присваиваешь ее переменной max:

Код:
max := Число mod 10
Дальше строишь цикл, лучше while, который должен выполняться пока заданное число больше нуля. В цикле проделываешь небольшие манипуляции с операцияеми div и mod, "вытаскивая" каждую цифру, и, сравнивая ее с переменной max, получишь в конечном итоге максимальную цифру... Примерно должно выглядеть так:

Код:
.....
x := Число mod 10;
Число := Число div x;

if x > max then max := x;
....

Остальное сам

Последний раз редактировалось Xardas; 16.12.2011 в 22:11.
Xardas вне форума Ответить с цитированием
Старый 16.12.2011, 22:15   #3
Bysh
Новичок
Джуниор
 
Регистрация: 16.12.2011
Сообщений: 2
По умолчанию

Xardas , напиши решение плз
Bysh вне форума Ответить с цитированием
Старый 16.12.2011, 22:32   #4
Heming
Форумчанин
 
Аватар для Heming
 
Регистрация: 06.07.2010
Сообщений: 105
По умолчанию

Код:

Program Maxtzifra;
uses crt;
var n:longint;{nashe chislo}
MaxN, TziklN:integer;
{****************************}
begin
clrscr;
writeln('Vvedite tzeloje chislo');
readln(n);
n:=abs(n); {na sluchay otritzatelnogo chisla}
if n=0 then maxN:=0 {esli chislo 0, to i tzifra 0}
{*****************************************}
else maxN:=0; {berem za max1 nevozmognoe max}
while n>0 do
begin
TziklN:=n mod 10;
n:=n div 10;
if tziklN > maxN then maxN:=tziklN;{kluchvoe uslovie}
end;
write('Max tzifra ='+' ');
textcolor(12);
writeln(MaxN);
textcolor(7);
readln
end.
Если по условию у вас натуральные, а не целые, то откиньте модульное присваение, и поставьте защиту от отриц ввода через оператор
repeat
.......
until(условие);
Carpe Diem

Последний раз редактировалось Heming; 16.12.2011 в 22:37.
Heming вне форума Ответить с цитированием
Старый 16.12.2011, 22:42   #5
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

А смсл заморачиваться с mod и div?

Записываем число в строку S, а потом вот так:
Код:
  max:=S[1];
  for i:=2 to length(S) do
    if s[i]>max then max:=s[i];
  writeln(max);
где max:char, i:integer;
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 16.12.2011, 22:45   #6
Heming
Форумчанин
 
Аватар для Heming
 
Регистрация: 06.07.2010
Сообщений: 105
По умолчанию

Если человек не может даже с операторами ветвления и циклам разобраться, то кнч давайте сразу дадим стринг и понятие таблицы ascii.

И не вижу я тут "заморачивания", уберите всю воду из моего кода и кол-во кода будет тоже самое
Carpe Diem

Последний раз редактировалось Heming; 16.12.2011 в 22:52.
Heming вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ABC Pascal Bysh Фриланс 2 16.12.2011 22:41
Неудобство ABC Pascal и глюк Borland Pascal proser93 Помощь студентам 0 19.11.2011 19:01
Pascal ABC Никол@ Паскаль, Turbo Pascal, PascalABC.NET 1 12.06.2011 10:36
Turbo Pascal or Pascal ABC Ikram Паскаль, Turbo Pascal, PascalABC.NET 0 27.04.2010 13:44
Pascal ABC ArcaN0id Помощь студентам 8 07.12.2009 15:24