Согласие на обработку персональных данных.



04.11.2017
Новые видео и статья Функция Odd.

29.10.2017
Новые видео и статья Функция Low.

23.10.2017
Новая задача Даны натуральные числа от 1 до 33.

22.10.2017
Добавлен раздел Статьи по С/С++.

03.10.2017
Новая книга 1001 вопрос начинающего программиста.

Раздел: Задачи / Простейшие /

Программа вычисления суммы

Основы C++ Основы C++

C++ - это один из самых популярных языков программирования. Не важно, на каком языке программируете лично вы. Но, если вы хотя бы в общих чертах не знаете С++, то это большой пробел в вашем образовании, который надо восполнить как можно быстрее... Подробнее...

Условие задачи 2.4

Задача 2.4
Написать программу для вычисления суммы по формуле:

S = (1*2) / (3*4) + (3*4) / (5*6) + … + (85*86) / (87*88)

Хотя в учебнике, из которого я взял эту задачу, она помечена звёздочкой (что означает средний уровень сложности), особых затруднений её решение не должно вызвать даже у новичка, если, конечно, он знает, что такое циклы.

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

Алгоритм будет несложным. Мы используем четыре переменных для работы с множителями и одну переменную (Sum) для вычисления суммы:

  1. Сначала мы определяем первый множитель (n1) и присваиваем ему значение 1.
  2. Затем в цикле:
    1. Увеличиваем значения остальных множителей (n2, n3, n4) таким образом, чтобы в первой итерации n2, n3 и n4 были равны соответственно 2, 3 и 4. А последующих итерациях они также будут зависеть от значения первого множителя n1.
    2. Вычисляем выражение (n1 * n2) / (n3 * n4) и прибавляем его к значению переменной Sum.
  3. В итоге после завершения цикла будет вычислена нужная нам сумма.

Ниже приведены решения на Паскале и С++.

Решение задачи 2.4 на Паскале

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.

Решение задачи 2.4 на С++

#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. Вот такой вот С++ заморочистый язык.


Основы программирования Основы программирования

Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика