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

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

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

 
 Ответить  Открыть новую тему 
> Строки, плиз
Mitek
сообщение 30.11.2005 17:11
Сообщение #1


Гость






Дана строка символов до точки. Определить является ли она записью десятичного числа, кратного трем.
 К началу страницы 
+ Ответить 
volvo
сообщение 30.11.2005 17:14
Сообщение #2


Гость






Mitek,
признак делимости на 3 помнишь? Вот и складывай до точки значения всех цифр... Если хотя бы один из символов НЕ является цифрой или сумма значений цифр НЕ делится нацело на 3, то ответ "НЕТ"... Иначе - "ДА"
 К началу страницы 
+ Ответить 
hiv
сообщение 30.11.2005 17:16
Сообщение #3


Профи
****

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

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


Критерий делимости числа на 3: сумма всех его цифр должна нацело делиться на 3.
В чем твоя проблема конкретнее?


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Mitek
сообщение 30.11.2005 17:23
Сообщение #4


Гость






Когда пытаюсь найти сумму, то он пишет не совпадение типов, это же строка.
 К началу страницы 
+ Ответить 
hiv
сообщение 30.11.2005 17:33
Сообщение #5


Профи
****

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

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


ord('0')=48
ord('1')=49
...
ord('9')=57

Соответственно перевод цифр из символа в число:
число=ord(символ)-48


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Mitek
сообщение 30.11.2005 17:40
Сообщение #6


Гость






Честно говоря, не очень понял, как это применить.
 К началу страницы 
+ Ответить 
hiv
сообщение 30.11.2005 17:56
Сообщение #7


Профи
****

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

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


Вот так:
program MUL;


var i,c,l :integer;
s :string;

begin
write('Vvedite chislo='); readln(s);

l:=1;
while (l<length(s)) and (s[l] in ['0'..'9']) do inc(l);

if (s[l]='.') and (l>1) then
begin
c:=0;
for i:=1 to l-1 do inc(c,ord(s[i])-48);

if (c mod 3)=0 then writeln('Chislo delitsja na 3.',c)
else writeln('Chislo ne delitsja na 3.',c);
end
else writeln('Chislo vvedeno ne verno!');
end.


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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