Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2023, 18:41   #1
Quedds
Новичок
Джуниор
 
Регистрация: 13.02.2023
Сообщений: 1
Сообщение Найти сумму цифр заданного натурального числа

Привет. Не могу найти цифры по отдельности, если использовать div и mod пишет ошибку: не преобразовать real в integer (как-то так). Идей нет Помогите кто-нибудь

uses graphABC;
Label 1;
var
a,q:real;
b,k,d,i,e:real;
begin
graphABC.SetWindowTitle('Число натуральное = сумма цифр этого числа');
1:readln(a);
if (a<1000) and (a>99) or (a>-1000) and (a<-99) then ///100
q:= Round(a);
if (a=q) THEN
WRITELN('Заданое число натуральное') else
writeln('Число не натуральное и (или) не трехзначное');
////Числа
b:=a/100;
k:=Trunc(b); ///1 chislo
d:=a/10;
i:=Trunc(d);
///zdes` tipo 2 chislo
e:=a/1;
///zdes` tipo 3 chislo

///Это я вывожу для себя
writeln('Первое число: ', k);
writeln('Второе число: ', i);
writeln('Третье число: ', e);
writeln('Сумма цифр числа =' ,'(здесь типо сумма)');
goto 1;
end.
Quedds вне форума Ответить с цитированием
Старый 13.02.2023, 18:44   #2
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 729
По умолчанию

Div и mod это для целых чисел.
Cuprum5 вне форума Ответить с цитированием
Старый 13.02.2023, 18:45   #3
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Если вам по заданию сказано искать сумму цифр натурального числа (Cardinal), тогда зачем вы в программе используете действительные (real)?

И еще
Код:
if (a<1000) and (a>99) or (a>-1000) and (a<-99) then
натуральные числа - только положительные

Последний раз редактировалось macomics; 13.02.2023 в 18:53.
macomics вне форума Ответить с цитированием
Старый 13.02.2023, 18:51   #4
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 729
По умолчанию

Раскладывайте число на знаки, используя оператор n mod 10 в цикле.
Cuprum5 вне форума Ответить с цитированием
Старый 14.02.2023, 13:37   #5
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 729
По умолчанию

Код:
Program Hello;
Var
    d, n: integer;
Begin
    n:=12345;
    
    while n > 0 do
    begin
        d:=n mod 10;
        n:=n div 10;
        WriteLn('digit = ', d);
    end;
    
    
    WriteLn('n = ', n);
End.
Cuprum5 вне форума Ответить с цитированием
Старый 14.02.2023, 13:42   #6
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

https://godbolt.org/z/WTjrGvc9r
Код:
Program Hello;
Var
    d, n: integer;
Begin
    n := 12345;
    d := 0;
    while n > 0 do
    begin
        inc(d, (n mod 10));
        n := n div 10;
    end;
    WriteLn('d = ', d);
    WriteLn('n = ', n);
End.

Последний раз редактировалось macomics; 14.02.2023 в 14:06.
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си. Найти произведение всех его цифр и сумму цифр числа из произведения цифр заданного числа. Dari22 Помощь студентам 1 11.01.2022 16:20
[РЕШЕНО] Задачка на собеседовании - Решить не используя циклы, массивы — найти сумму цифр числа, заданного в виде десятичной дроби ts-alan JavaScript, Ajax 14 03.04.2019 17:17
Найти сумму цифр заданного натурального числа ZigaBr0 Паскаль, Turbo Pascal, PascalABC.NET 3 29.08.2016 16:09
найти сумму цифр заданного натурального числа dima.m Microsoft Office Excel 6 06.12.2010 11:30
Паскаль. Из заданного числа найти сумму его цифр Matlashov Помощь студентам 8 26.11.2009 14:27