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


Ответ
 
Опции темы Опции просмотра
Старый 10.01.2014, 11:44   #1 (permalink)
Darik102rus
Новичок
 
Регистрация: 26.04.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию В каком из двух заданных чисел N и M меньше цифр

определить,в каком из двух заданных чисел N и M меньше цифр. числа вводятся с клавиатуры. Pascal ABC Помогите пожалуйста.
Darik102rus вне форума   Ответить с цитированием

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

Пожалуйста, пробежитесь глазами по схожим темам

Найти количество четных цифр
Вывести список положительных чисел, список отрицательных чисел на C#
Получить сумму двух длинных натуральных чисел
Кремний становится все меньше
Pascal ABC: File23. Дан файл вещественных чисел, создать файл целых чисел

Старый 10.01.2014, 14:05   #2 (permalink)
Debianer
Member
 
Регистрация: 07.08.2012
Адрес: Находка, Приморский край
Сообщений: 336
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
По умолчанию

Используйте IntToStr(N) и второе число. Далее, сравнивайте Length первого и второго, и все.
Я на Дельфи пишу, но примерно так:
var
s1, s2: string;
begin
...
s1:=IntToStr(N);
s2:=IntToStr(M);
if Length(s1) > Length(s2) then
Result:= 'N' else
Result:= 'M';
...
end;

Или вообще короче:
if Length(IntToStr(N)) > Length(IntToStr(M)) then
Result:='N' else Result:='M';
Debianer вне форума   Ответить с цитированием
Старый 10.01.2014, 14:07   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Darik102rus Посмотреть сообщение
определить,в каком из двух заданных чисел N и M меньше цифр. числа вводятся с клавиатуры. Pascal ABC Помогите пожалуйста.
Пожалуйста:
Код:
Var
 M,N,Number_of_Digits_M,Number_of_Digits_N:Integer;
Begin
 Write('M= ');
 Readln(M);
 Write('N= ');
 Readln(N);
 If M=0 then Number_of_Digits_M:=1 else
  Number_of_Digits_M:=1+Trunc(Ln(M)/Ln(10));
 If N=0 then Number_of_Digits_N:=1 else
  Number_of_Digits_N:=1+Trunc(Ln(N)/Ln(10));
 If Number_of_Digits_M<Number_of_Digits_N then writeln('M') else
 If Number_of_Digits_N<Number_of_Digits_M then writeln('N') else
 writeln('Equal');
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Старый 10.01.2014, 14:09   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Debianer Посмотреть сообщение
Используйте IntToStr(N) и второе число...
Можно и так, через строки.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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


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

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




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

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