4 / 4 / 1
Регистрация: 25.01.2010
Сообщений: 8

Найти сумму цифр числа

26.01.2010, 00:18. Показов 2193. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе всем время суток! Программирую на Visual Basic.

Как написать на Pascal примерно следующее:

1. Очищаем экран
2. Запрашиваем положительное целое число (от 0 до 8-ми значимых цифр)
Write(‘Введите положительное целое число: ‘);
3. Читаем значение этого числа
ReadLn(value);
4. Складываем все значимые цифры нашего числа и выводим ответ на экран*
Write(‘Сумма всех цифр значения равна ’, buf);
5. Возвращаемся на шаг 1

* отрывок кода на Visual Basic
Visual Basic
1
2
3
4
5
strlen = Len (value)
For i = 1 To strlen
    buf = buf + Val ( Mid ( value, i, 1))
 Next
 MsgBox buf
Помогите пожалуйста. Самый простой вариант кода и вариант не записывая промежуточный результат в переменную buf, а обрабатывая процесс ввода числа при помощи буфера клавиатуры (KeyPressed, ReadKey).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.01.2010, 00:18
Ответы с готовыми решениями:

Найти сумму цифр числа
найти сумму цифр числа (использовать подпрограмму)

Найти сумму цифр числа
дано четырехзначное число,найти сумму цифр этого числа??

Найти сумму цифр числа
дано четырехзначное число,найти сумму цифр этого числа

6
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
26.01.2010, 00:58
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses
  Crt;
var
  sum,temp,n:LongInt;
begin
  ClrScr;
  WriteLn('ÂÂåäèòå ÷èñëî...');
  ReadLn(N);
  temp:=N;
  sum:=0;
  while temp<>0 do
  begin
    Inc(sum,
    temp mod 10);
    temp:=temp div 10
  end;
  WriteLn(sum)
end.
2
4 / 4 / 1
Регистрация: 25.01.2010
Сообщений: 8
26.01.2010, 02:22  [ТС]
Спасибо за быстрый ответ. Правда у меня почему-то не выводит результат на экран.
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
26.01.2010, 02:25
IPolkovnik, у Вас видимо ТП, а там нужно дописывать ReadLn. Код должен выглядеть так
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses
  Crt;
var
  sum,temp,n:LongInt;
begin
  ClrScr;
  WriteLn('ВВедите число...');
  ReadLn(N);
  temp:=N;
  sum:=0;
  while temp<>0 do
  begin
    Inc(sum,
    temp mod 10);
    temp:=temp div 10
  end;
  WriteLn(sum);
  ReadLn
end.
1
4 / 4 / 1
Регистрация: 25.01.2010
Сообщений: 8
26.01.2010, 14:05  [ТС]
Ага, спасибо, попробую завтра - уже поздно. Потом отпишусь. Еще раз спасибо за внимание к теме!

Добавлено через 11 часов 36 минут
В начале темы упоминал, что программирую в основном на VB. Алгоритм или сам код нужен был моему сыну для урока по информатике в ср. школе. Но я попытался проанализировать, что происходит во время исполнения операторов (строки 11-16) и что при выполнении находится в ячейках памяти. К удивлению малость запутался, но главное, что это работает.

Огромное спасибо за помощь в решении!
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
26.01.2010, 16:06
IPolkovnik, если Вы хотите разобраться что к чему я Вам поясню что и как. Вот прокомментированный код
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses
  Crt;{ïîäêëþ÷àåì ìîäóëü Crt}
var
  sum,temp,n:LongInt;
begin
  ClrScr;{î÷èùàåì ýêðàí}
  WriteLn('ÂÂåäèòå ÷èñëî...');{Âûâîä ýòîé íàäïèñè}
  ReadLn(N);{ââîä ÷èñëà}
  temp:=N;{ïåðåíîñèì ÷èñëî âî âðåìåííóþ ïåðåìåííóþ(ýòî â äàííîì ñëó÷àå íåîáÿçàòåëüíî, íî â øêîëàõ òðåáóåòñÿ)}
  sum:=0;{ñóììå ïðèñâàèâàåì 0}
  while temp<>0 do{ïîêà ïåðåìåííàÿ temp íå ðàâíà 0 âûïîëíÿåì}
  begin{ýòî ñîñòàâíîé îïåðàòîð, ò.å. ïðè êàæäîì ïîâòîðå öèêëà áóäóò âûïîëíÿòüñÿ ñòðîêè 13-15}
    Inc(sum,temp mod 10);{óâåëè÷èâàåì ïåðåìåííóþ sum íà îñòàòîê îò äåëåíèÿ ïåðåìåííîé temp íà 10}
    temp:=temp div 10{ïðèñâàèâàåì ïåðåìåííîé temp öåëóþ ÷àñòü îò äåëåíèé åãî íà 10}
  end;
  WriteLn(sum);{âûâîäèì ðåçóëüòàò íà ýêðàí}
  ReadLn{îæèäàåì íàæàòèÿ íà Enter}
end.
Насколько я помню школьный VB у Вас решение через строку с переводом каждого символа. Такое на Pascal будет выглядеть так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
  s:string;
  sum,c,i,code:integer;
begin
  ReadLn(s);
  sum:=0;
  for i:=1 to Length(s) do
    if s[i] in ['0'..'9'] then
    begin
      val(s[i],c,code);
      inc(sum,c)
    end
    else
    begin
      WriteLn('Íåâåðíàÿ çàïèñü öåëîãî ÷èñàëà!');
      ReadLn;
      exit
    end;
  WriteLn(sum);
  ReadLn
end.
Если сравнивать первый и второй способы решения, то мне больше нравится конечно второй, но вот школьные/университетские преподы почему то не принимают его. Ну вот пожалуй и всё.
2
4 / 4 / 1
Регистрация: 25.01.2010
Сообщений: 8
26.01.2010, 23:58  [ТС]
Цитата Сообщение от Inadequate Посмотреть сообщение
Насколько я помню школьный VB у Вас решение через строку с переводом каждого символа.
На Visual Basic в данном случае все просто. Бесспорно, что каждый язык программирования имеет свою изюминку, в зависимости от того, что мы пытаемся решить.

Как это происходит с использованием VB:
Нам не приходится манипулировать при помощи переменных. В цикле берем по одному символу строки как число. При этом содержание переменной (значение) нашего буфера увеличиваем в зависимости оттого, что считано из определенного знакоместа строки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.01.2010, 23:58
Помогаю со студенческими работами здесь

Найти сумму цифр числа
сама задача дано 6-значное число надо узнать его сумму цифр, потом суму цифр его цифр, и так далее до тех пор пока она не станет...

Найти сумму цифр числа
Нужно составить программу которая считала бы сумму цифр, введенного числа Но вылазит ошибка

Найти сумму первых трех цифр дробной части вещественного числа.например для числа 23,16809 она равна 15
Найти сумму первых трех цифр дробной части вещественного числа.например для числа 23,16809 она равна 15

Найти первую цифру , последнюю цифру, количество цифр и сумму цифр числа
Дано натуральное число n. Найти первую цифру , последнюю цифру, количество цифр, сумму цифр Заранее спс)

Найти сумму цифр данного числа
дано число (введено с клавиатуры) найти сумму цифр в этом числе. например число 1547, ответ 17.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Kanban или Scrum - что выбрать?
EggHead 27.04.2025
Kanban и Scrum — уже много лет удерживают лидирующие позиции среди гибких подходов. Руководители проектов и команды разработчиков то и дело сталкиваются с дилеммой: какой из этих двух методов выбрать. . .
Кастомные Middleware на C# в ASP.NET Core
UnmanagedCoder 27.04.2025
Разработка веб-приложений сегодня мало напоминает монолитное программирование прошлых лет. На смену громоздким блокам кода пришла модульная архитектура, где каждый компонент выполняет строго. . .
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
Паттерны в Python: Singleton, Factory и Observer
py-thonny 26.04.2025
Паттерны проектирования — это проверенные временем решения типовых проблем разработки программного обеспечения. Их история берёт начало с книги "Приёмы объектно-ориентированного проектирования. . . .
Исключения в C#: Stack Overflow, Access Violation и Out of memory
stackOverflow 26.04.2025
Исключения в C# — это не только механизм оповещения о проблемах, а целое искусство управления потоком выполнения программы в экстремальных ситуациях. Обычное исключение, например,. . .
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Структура "железный OnKeyUp" вместо антидребезга. Полностью асинхронный счётчик.
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru