Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> кол-во цыфр в числе, Задача 
:(
    Опции темы
VingradFan
Дата 24.10.2006, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: нет
Всего: 3



попытался что-то изобразить....
Код

...
var chislo,kriteriy,schetchik,result:integer
...
schetcik:=1
write('введите число') //задаем число
read(chislo)
while kriteriy<>0 do //проверяем целочисл деление должно быть нуль
begin
schetchik:=schetchik*10 //делим на 10 100 1000 10000 и тд
result:=result+1 //с каждым делением понимаем что число больше на 1 разряд
b:= chislo div schetchik
end
write(result) //когда критерий 0 выводим значение знаков

идея вроде верная: делить на 10 100 1000 но чота не работает...


--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
volvo877
Дата 24.10.2006, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Код
  result:=0;
  write('введите число'); readln(chislo);
  while chislo<>0 do
  begin
    chislo := chislo div 10;
    inc(result);
  end;
  write(result)
?
PM MAIL   Вверх
Fighter
Дата 24.10.2006, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



а чем тебе не подходит функции str и Length?

Там функцией переводишь число в строку, ну а потом считаешь, сколько знаков в строке - столько же и цифр. Ну если все таки так нельзя, то тогда лови код:


Код

uses crt;

function Kolvo(number: integer): integer;
var
  i: integer;
  c: integer;
begin
  c := 1;
  while number >= 10 do
  begin
    number := number div 10;
    inc(c);
  end;
  Kolvo := c;
end;

var
  c: integer;

begin
  clrscr;
  write('‚¢¥¤¨â¥ C: ');
  readln(c);
  writeln(Kolvo(c));
  readkey;
end.




PM MAIL   Вверх
VingradFan
Дата 24.10.2006, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: нет
Всего: 3



я просто тока начиаю Паскал ...и не знал таких ф-й
а как правильно перевести число в строку и пощитать цыфры???


--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
Fighter
Дата 24.10.2006, 05:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Смотря где переводить, если ты в Delphi все это переводишь, то для тебя нет ничего проще вызвать одну из функций
IntToStr, FloatToStr, DateToStr...

Если же ты  в чистом Паскале то тогда тебе придется писать что-то вроде этого:

Код

uses crt;

var
  i: integer;
  s: string;
begin
  clrscr;
  write('Vvedite chislo: ');
  readln(i);
  str(i,s);
  writeln('Chislo ravno: ', s, ' i kolichestvo znakov v nem: ', Length(s));
  readkey;
end.

PM MAIL   Вверх
volvo877
Дата 24.10.2006, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Fighter, то есть пост №2 - неверный, а твой, третий, хороший? А чем, позволь узнать, они отличаются? Тем, что ты начинаешь с 1? И что? А я с -1 начну, и прибавлю 1 сразу, это что, будет третий алгоритм ???

Я бы попросил ПРЕЖДЕ, чем постить, все-таки, читать все, что было написано до тебя! Читать, а не бегло просматривать.

Заодно, больше советов по работе с числом через строку попрошу не давать! Ты знаешь, насколько это медленнее? Да любой преподаватель зарубит такую программу, едва на нее посмотрев.

Это сообщение отредактировал(а) volvo877 - 24.10.2006, 09:30
PM MAIL   Вверх
maxim1000
Дата 24.10.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



log(abs(x))/log(10) округлить вверх...

Это сообщение отредактировал(а) maxim1000 - 24.10.2006, 10:27


--------------------
qqq
PM WWW   Вверх
VingradFan
Дата 24.10.2006, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: нет
Всего: 3



а вот с пунктом б я точно не справлюсь сам....
найти самую маленькую цифру числа....
наверно надо каким то образом перебирать числа и смотреть:
Код

if chislo<result then // Если цыфрв меньше предудыщей...
result:=chislo //обновляем результат

токо как перебрать цыфры покороче и попроще???


--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
Palladin
Дата 24.10.2006, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: нет
Всего: 17



каждый символ заноси в массив, потом прогоняй цикл и ищи минимальное число, чё сложного-то smile  циклы тебе уже объянили в другом топе, а сравнивать и присваивать я думаю учить не стоит smile 
P.S. Ты сам вообще собираешся в чёмнить разбиратся????


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
VingradFan
Дата 24.10.2006, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: нет
Всего: 3



интересно в каком топе мне объяснили про циклы???
ты мя с кем то путаеш....

дело в том что я с массивами никогда не сталкивался а в нашем институтском учебнике 2 страницы всего про массивы...
может вы на простом примере покажете как засунуть цыфры числа в массив а потом перебрать их....
а дальше я сам буду разбираца

Это сообщение отредактировал(а) VingradFan - 24.10.2006, 19:37


--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
volvo877
Дата 24.10.2006, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(RooR @  24.10.2006,  17:46 Найти цитируемый пост)
каждый символ заноси в массив, потом прогоняй цикл и ищи минимальное число
не надо плодить лишние сущности... Зачем массив? Что, нельзя хранить ТОЛЬКО минимальную цифру, и следующую сравнивать с ней?

Код
  _result:=0; min_digit := 9;
  write('Введите число: '); readln(chislo);
  if chislo = 0 then begin 
    min_digit := 0; _result := 1;
  end
  else
    while chislo<>0 do begin
      if min_digit > (chislo mod 10) then min_digit := (chislo mod 10); { <--- Вот так }
      chislo := chislo div 10;
      inc(_result);
    end;

  writeln(_result);
  writeln(min_digit);

PM MAIL   Вверх
digs
Дата 24.10.2006, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 14.10.2006

Репутация: нет
Всего: 1



А про то какое число никто и не спросил.
1е4 это число? А сколько в нем цифр?
PM MAIL   Вверх
VingradFan
Дата 24.10.2006, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: нет
Всего: 3



да не натуральное число!!! smile 


--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
VingradFan
Дата 24.10.2006, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: нет
Всего: 3



volvo877,  а можеш объяснить построчно что ты написал????


--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
Palladin
Дата 25.10.2006, 01:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: нет
Всего: 17



Volvo щас нет поэтмоу попытаюсь яsmile

Код

  _result:=0; min_digit := 9; //тут надеюсь понятно
  write('Введите число: '); readln(chislo);// пользователь вводит число
  if chislo = 0 then begin //проверка на равенство символа 0
    min_digit := 0; _result := 1; // усли число равно 0 то минимальному присваиваем 0
  end
  else
    while chislo<>0 do begin //если переменная не равна нулю то начинаеи цикл
      if min_digit > (chislo mod 10) then min_digit := (chislo mod 10);//отсекаем дробную часть при делении на 10 и заносим в min_digit { <--- Вот так }//пока 
//число не будет равно 0 
      chislo := chislo div 10; //числу присваем число с 10 знаками без запятой ;-)
      inc(_result);//инкрементируем переменную 
    end;

  writeln(_result); //вывод
  writeln(min_digit);//вывод


P.S. Вроде описал smile 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0554 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.