10.01.2021
Новый выпуск журнала Автоматизация и Программирование.
08.12.2020
Новые видео и статья Таблицы в HTML.
03.12.2020
Новый выпуск журнала Автоматизация и Программирование.
15.11.2020
Новые видео и статья Процедура Str.
25.10.2020
Добавлен курс Как стать веб-разработчиком.
Раздел: Задачи / Простейшие /
Программа вычисления суммы
Условие задачи 2.4
Задача 2.4
Написать программу для вычисления суммы по формуле:
S = (1*2) / (3*4) + (3*4) / (5*6) + … + (85*86) / (87*88)
Хотя в учебнике, из которого я взял эту задачу, она помечена звёздочкой (что означает средний уровень сложности), особых затруднений её решение не должно вызвать даже у новичка, если, конечно, он знает, что такое циклы.
Итак, как вы уже догадались, составить программу вычисления суммы по заданной выше формуле можно, используя цикл.
Алгоритм будет несложным. Мы используем четыре переменных для работы с множителями и одну переменную (Sum) для вычисления суммы:
- Сначала мы определяем первый множитель (n1) и присваиваем ему значение 1.
- Затем в цикле:
- Увеличиваем значения остальных множителей (n2, n3, n4) таким образом, чтобы в первой итерации n2, n3 и n4 были равны соответственно 2, 3 и 4. А последующих итерациях они также будут зависеть от значения первого множителя n1.
- Вычисляем выражение (n1 * n2) / (n3 * n4) и прибавляем его к значению переменной Sum.
- В итоге после завершения цикла будет вычислена нужная нам сумма.
Ниже приведены решения на Паскале и С++.
program summa; const MAX_NUM = 85; //**************************************************************** // ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ //**************************************************************** var n1, n2, n3, n4 : Integer; Sum : Single; //**************************************************************** // ОСНОВНАЯ ПРОГРАММА //**************************************************************** begin Sum := 0; n1 := 1; while n1 <= MAX_NUM do begin n2 := n1 + 1; n3 := n2 + 1; n4 := n3 + 1; Sum := Sum + (n1 * n2) / (n3 * n4); Inc(n1, 2); end; WriteLn('Summa = ', Sum:0:4); WriteLn('The end. Press ENTER...'); ReadLn; end.
#include#include using namespace std; const int MAX_NUM = 85; //**************************************************************** // ОСНОВНАЯ ПРОГРАММА //**************************************************************** int main(int argc, char *argv[]) { int n1, n2, n3, n4; float Sum; Sum = 0; n1 = 1; while (n1 <= MAX_NUM) { n2 = n1 + 1; n3 = n2 + 1; n4 = n3 + 1; Sum = Sum + float(n1 * n2) / float(n3 * n4); n1 = n1 + 2; } cout << "Summa = " << Sum << endl; system("PAUSE"); return EXIT_SUCCESS; }
ВАЖНО! Обратите внимание на строку в примере на С++, которая выделена красным цветом. Результат выражений (n1 * n2) и (n3 * n4) мы явно преобразуем к типу float. Если этого не сделать, то деление первого выражения на второе вернёт ноль, так как n1...n4 - это целочисленные переменные. Поэтому нам надо либо объявлять n1...n4 как float, либо явно преобразовывать их в тип float. Вот такой вот С++ заморочистый язык.
Подписаться на канал в YouTube
Вступить в группу "Основы программирования" Подписаться на рассылки по программированию |
![]() |
Основы C++
C++ - это один из самых популярных языков программирования. Не важно, на каком языке программируете лично вы. Но, если вы хотя бы в общих чертах не знаете С++, то это большой пробел в вашем образовании, который надо восполнить как можно быстрее... Подробнее... |