Помощь - Поиск - Пользователи - Календарь
Полная версия: Строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Mitek
Дана строка символов до точки. Определить является ли она записью десятичного числа, кратного трем.
volvo
Mitek,
признак делимости на 3 помнишь? Вот и складывай до точки значения всех цифр... Если хотя бы один из символов НЕ является цифрой или сумма значений цифр НЕ делится нацело на 3, то ответ "НЕТ"... Иначе - "ДА"
hiv
Критерий делимости числа на 3: сумма всех его цифр должна нацело делиться на 3.
В чем твоя проблема конкретнее?
Mitek
Когда пытаюсь найти сумму, то он пишет не совпадение типов, это же строка.
hiv
ord('0')=48
ord('1')=49
...
ord('9')=57

Соответственно перевод цифр из символа в число:
число=ord(символ)-48
Mitek
Честно говоря, не очень понял, как это применить.
hiv
Вот так:
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.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.