IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> можно ли использовать другой оператор
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Женский

Репутация: -  0  +


скажите,пожалуйста можно ли решить задачу,с помощью оператора For....do?

Задача
Найти сумму цифр числа.число трехзначное.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Можно, конечно.
Поскольку известно, что число трехзначное...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


Цитата(мисс_граффити @ 13.05.2007 13:40) *

Можно, конечно.
Поскольку известно, что число трехзначное...

Пожалуйста, обьясни как это сделать. Немогу придумать wacko.gif
Мне кажется так будет проще
Var
Number, st, nd, rd : Integer;
Begin
Write('Please, enter three figures -> ');
ReadLn(Number);
st := Number div 100;
nd := (Number mod 100) div 10;
rd := Number mod 10;
Write('Suma = ',st + nd + rd);
ReadLn;
End.


Сообщение отредактировано: Sto -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Точно так же, как и с While(учитывая что число - трехзначное)
  for i := 1 to 3 do begin
s := s + n mod 10;
n := n div 10;
end;

 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


volvo отличный способ good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Женский

Репутация: -  0  +


я не пойму,почему так:
For i:=1 to 3 do
begin
S:=s +n mod 10;
n:=n div 10;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


У тебя есть число n.
Допустим это 539.
Начинается цыкл, повторений у нас три.

1 повторение
539 mod 10 = 9, так как ближайшее целое число которое делится на 10 это 530, значит 539-530=9;
539 div 10 = 59; Div - оставляет только целую часть в результате деления. 539/10=53,9 целая часть 53.
в результате у нас S=9, a n=53;

2 Повторение
53 mod 10 = 3, так как ближайшее целое число которое делится на 10 это 50, значит 53-50=3;
53 div 10 = 5; Div - оставляет только целую часть в результате деления. 53/10=5,3 целая часть 5.
в результате у нас S=9+3=12, a n=5;

3 Повторение
5 mod 10 = 5, так как ближайшее целое число которое делится на 10 это 0, значит 5-0=5;
5 div 10 = 5; Div - оставляет только целую часть в результате деления. 5/10=0,5 целая часть 0.
в результате у нас S=12+5=17, a n=0;

Конец цыкла

Старался обьяснить понятно, а получилось как всегда smile.gif

+ Таким способом можно найти суму чисел для любого целого числа, не только 3-х значного.

Сообщение отредактировано: Sto -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Женский

Репутация: -  0  +


smile.gif спасибо,но я понимаю,что Mod -целочисл.,а div-нет. но я не могу понять,почему имеено от 1 до 3,и почему мы так делаем S:=s +n mod 10;
n:=n div 10
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


Цитата(Mimosa @ 14.05.2007 19:51) *

почему имеено от 1 до 3,и почему мы так делаем S:=s +n mod 10;
n:=n div 10


от 1 до 3 потомучто у нас трехзначное число, тоесть нам к переменной s нужно добавить три чила.
в начале когда ты обьявляеш переменную s ее значение равно 0.
потом цыкл
1. s=s+последняя цыфра чила. И предыдущего примера s=0+9=9
n:=n div 10 мы удаляем последнюю цыфру числа n, чило от 539 до 53
2. s=s+последняя цыфра чила. Тоесть s=9+3=12
n:=n div 10 мы удаляем последнюю цыфру числа n, от 53 до 5
2. s=s+последняя цыфра чила. Тоесть s=12+5=17
n:=n div 10 мы удаляем последнюю цыфру числа n, от 5 до 0
конец цыкла
в результате у нас сумма равна 17

Сообщение отредактировано: Sto -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 17.04.2024 4:33
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name