Pascal ABC.net.Помогите пожалуйста. Уже 2 дня бьюсь над задачкой и никак не...

0 голосов
44 просмотров

Pascal ABC.net.Помогите пожалуйста. Уже 2 дня бьюсь над задачкой и никак не выходит.Условие задачи:
"По заданному числу "a" определите является ли оно целым.Если заданное число является целым, то в выходной файл output.txt выведите сумму цифр этого числа, в противном случае выведите корень квадратный из модуля этого числа."
У меня есть начало. Только самое-самое начало.Я не понимаю, как можно сосчитать сумму цифр числа, если неизвестно, сколько в нём цифр.
Вот начало программы:
Var a:real;
Begin
Readln(a);
a:=abs(a);
If a-trunc(a)=0 then //Тут у меня проблема
Else a:=sqrt(a);
Writeln(a)
End.


Информатика | 44 просмотров
0

Нас пока что ничему не учат.Только LOGO.Но я не хотела его учить, и поэтому подошла к учителю с просьбой научить меня писать на Pascal.Но мне объяснили лишь то, что вначале пишут Var, переменные, их тип, а потом Begin.В конце End.Все остальное я ищу в интернете на каникулах, а задачки забираю у учителя после уроков.

0

Но с одним интернетом тяжело справиться. Поэтому я спрашиваю у людей.

0

Лого - это сильно урезанный Паскаль.

0

От части это так.

0

Отчасти)

0

Но Pascal хотя один, а LOGO в разных странах абсолютно разный.

0

Я вот тут заметил один нехороший момент в условии. Если число нецелое, предлагается вычислить его квадратный корень.

0

Т.е. придется ограничиться все же числовыми типами и не прибегать к символьной строке. Числа с плавающей точкой в произвольной разрядности реализовывать довольно сложно

0

Предлагаю вводить данные в формате double

0

А еще - я Вам отправил Личное сообщение - щелкните "конвертик".

Дан 1 ответ
0 голосов

Var
a:real;
x,res:integer;
begin
readln(a);
if a = trunc(a) then
begin
x:=trunc(a);
while x<>0 do
begin
res:=res + x mod 10;
x:= x div 10;
end;
writeln(res);
end
else 
writeln(sqrt( abs(a) ));
end.

(2.2k баллов)
0

Если число отрицательное целое , то первая цифра - отрицательная . Если вам такое не подходит напишите там где x x:=abs( trunc(a) )

0

А где же вывод в файл?