Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 29.01.2011
Сообщений: 8
1

Вывести сумму цифр числа

05.02.2011, 20:54. Показов 925. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дано строка, изображающая целое число. Вывести сумму цифр этого числа
Должно быть 2 ф-ции:
1. Проверка на целое число
2. Сумма цифр
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.02.2011, 20:54
Ответы с готовыми решениями:

Дано натуральное число N (N<10^255). Вывести на экран количество цифр числа N и сумму его цифр
Дано натуральное число N (N&lt;10^255). Вывести на экран количество цифр числа N и сумму его цифр.

Вывести сумму цифр числа
Дана строка, изображающая целое число. Вывести сумму цифр этого числа.

Вывести сумму цифр числа
Дана строка, изображающая целое число. Вывести сумму цифр этого числа.

Вывести сумму цифр числа
Дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа.

8
332 / 306 / 155
Регистрация: 14.02.2010
Сообщений: 662
05.02.2011, 21:06 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure arechisla(var str:string);
var k:boolean; i:integer;
begin
 repeat
  begin
   clrscr;
   k:=false;
   writeln('Vvedit strichku'); 
   readln(str); 
   for i:=1 to length(str) do 
    if(not(str[i] in ['0'..'9'])) then k:=true; 
  end;
 until k<>true;
end;
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure sum(str:string);
var i,valueint,code,sum1:integer;
begin
 sum1:=0;
 for i:=1 to length(str) do
 begin
  val(str[i],valueint,code);
  sum1:=sum1+valueint;
  write(valueint);
  if i<>length(str) then write('+');
 end;
 write('= ',sum1);
end;
1
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,877
05.02.2011, 21:08 3
Pascal
1
2
3
sum:=0;
for i:=1 to length(s) do
 sum:=sum+(ord(s[i])-ord('0'));
1
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
05.02.2011, 21:09 4
Цитата Сообщение от Borunduk Посмотреть сообщение
Должно быть 2 ф-ции:
Я так понимаю что это функции, а не процедуры...
0
0 / 0 / 0
Регистрация: 29.01.2011
Сообщений: 8
05.02.2011, 21:10  [ТС] 5
Вот программа, почему она не раборает?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
uses crt;
var s:string;
 
procedure arechisla(var str:string);
var k:boolean; i:integer;
begin
 repeat
  begin
   clrscr;
   k:=false;
   writeln('Vvedit strichku'); 
   readln(str); 
   for i:=1 to length(str) do 
    if(not(str[i] in ['0'..'9'])) then k:=true; 
  end;
 until k<>true;
end;
 
procedure sum(str:string);
var i,valueint,code,sum1:integer;
begin
 sum1:=0;
 for i:=1 to length(str) do
 begin
  val(str[i],valueint,code);
  sum1:=sum1+valueint;
  write(valueint);
  if i<>length(str) then write('+');
 end;
 write('= ',sum1);
end;
 
begin
 arechisla(s);
 sum(s);
 readkey;
end.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
05.02.2011, 21:11 6
Потому что это не программа, а 2 процедуры...
0
0 / 0 / 0
Регистрация: 29.01.2011
Сообщений: 8
05.02.2011, 21:14  [ТС] 7
Puporev, почему, же 2 процедуры?? все что нужно есть, по-моему..
Не знаю, но почему-то начало работать
0
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,877
05.02.2011, 21:29 8
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Uses
 CRT;
Var
 s:string;
 
function prov(Var s2:string):boolean;
Var
 i:integer;
 t:boolean;
begin
t:=true;
for i:=1 to length(s2) do
 if not(s2[i] in ['0'..'9']) then t:=false;
prov:=t;
end;
 
function summa(Var s2:string):integer;
Var
 i,sum:integer;
begin
 sum:=0;
  for i:=1 to length(s2) do
   sum:=sum+(ord(s2[i])-ord('0'));
summa:=sum;
end;
 
begin
 repeat
  write('ввод числа: ');
  readln(s);
   if not(prov(s)) then
    write('Некорректный ввод.Повторите ')
 until prov(s);
  write('Сумма чисел:=',summa(s));
 readkey
end.
Borunduk
begin
arechisla(s);
sum(s);
readkey;
end.
А саму то строку Ленин вводить будет?
Pascal
1
2
3
4
5
6
begin
 readln(s);// <=
 arechisla(s);
 sum(s);
 readkey;
end.
1
0 / 0 / 0
Регистрация: 29.01.2011
Сообщений: 8
05.02.2011, 21:31  [ТС] 9
SuPeR XaKer, спасибо, значительно проще того как я сделал с использаванием функций от MegaAce
0
05.02.2011, 21:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2011, 21:31
Помогаю со студенческими работами здесь

Вывести сумму цифр числа
Дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа.

Вывести сумму цифр числа
помогите, пожалуйста...Дана строка, изображающая целое положительное число. Вывести сумму цифр...

Вывести сумму цифр числа
Дана строка, изображающая целое число. Вывести сумму цифр этого числа. Напишите пожалуйста с...

Определить и вывести сумму цифр трехзначного целого числа
Используя арифметические операции, определить и вывести сумму цифр трехзначного целого числа k...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru