Раздел: Задачи / Простейшие /
Программа вычисления суммы
Основы программирования Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее... |
Условие задачи 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. Вот такой вот С++ заморочистый язык.
Вступить в группу "Основы программирования"
Подписаться на канал в РУТУБ Подписаться на Дзен-канал Подписаться на рассылки по программированию |
Как стать программистом 2.0
Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее... |
Помощь в технических вопросах
Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее... |