Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Pascal циклы


Автор: jazzben 20.11.2010, 19:32
Вообщем задачка такая:
Ввести натуральное число n (от - 1000000 до 1000000).Посчитать сумму цифр этого числа.
Пример: вводим 12345,программа должна посчитать сумму этих цифр,тут получается 15.
Уже всё перепробовал,но считает только первые 2 числа.
Вот мой код,подскажите как его дополнить:

Program Primer;
uses Crt;
var
     n:LongInt;
     s,p1:integer;
begin
ClrScr;
Write('Vvedite N: ');ReadLn(n);
s:=0;
Repeat
           p1:=n div 10;
           s:=p1+n mod 10;
until n=n;
WriteLn('Summa: ',s);
end.

Автор: ~FoX~ 20.11.2010, 19:47
Код

uses Crt;

var
  N: LongInt;
  code, p, i: integer;
  s: string;
begin

  ClrScr;
  Write('Vvedite N:');
  ReadLn(S);
  for i := 1 to Length(S) do begin
    Val(s[i], P, Code);
    N := N + P;
  end;
  WriteLn(N);
end.

Автор: jazzben 20.11.2010, 19:55
Не чё то не подходит.Во-первых прога не рабочая,а во-вторых много мне неизвестных операторов,непонятный код для меня.

Автор: darkart 20.11.2010, 23:14
Цитата(jazzben @  20.11.2010,  19:55 Найти цитируемый пост)
Не чё то не подходит.Во-первых прога не рабочая,а во-вторых много мне неизвестных операторов,непонятный код для меня. 


Прога рабочая. 
Про непонятный код - лол, помогающий должен угадать что можно использовать?

Еще попытка:

Код

program numbers;

const
  BASE = 10;{основание}

var
  num, sum : LongInt;{num - число, sum - сумма цифр числа}

begin
  sum := 0;{инициализация суммы}
  writeln( 'Number:' );
  readln( num );{ввод числа}
  if( num < 0 ) then
    num := -num;
  repeat
    sum := sum + ( num mod BASE );{прибавляем к сумме очередную цифру}
    num := num div BASE;{отрезаем младший разряд}
  until num = 0;{пока число не равно 0}
  writeln( 'Sum = ', sum );{печать результата}
  readln;{ожидаем ввода}
end.



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)