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

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

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

> можно ли использовать другой оператор
Mimosa
сообщение 13.05.2007 13:20
Сообщение #1


Новичок
*

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

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


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

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

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 8)
мисс_граффити
сообщение 13.05.2007 13:40
Сообщение #2


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

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

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


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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Sto
сообщение 13.05.2007 14:38
Сообщение #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 - 13.05.2007 14:38
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 13.05.2007 14:56
Сообщение #4


Гость






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

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


Пионер
**

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

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


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


Новичок
*

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

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


я не пойму,почему так:
For i:=1 to 3 do
begin
S:=s +n mod 10;
n:=n div 10;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Sto
сообщение 14.05.2007 19:46
Сообщение #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 - 14.05.2007 19:49
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Mimosa
сообщение 14.05.2007 19:51
Сообщение #8


Новичок
*

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

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


smile.gif спасибо,но я понимаю,что Mod -целочисл.,а div-нет. но я не могу понять,почему имеено от 1 до 3,и почему мы так делаем S:=s +n mod 10;
n:=n div 10
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Sto
сообщение 14.05.2007 20:05
Сообщение #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 - 14.05.2007 20:06
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 24.06.2025 0:43
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"