Тема: Базовые алгоритмы. Алгоритм накопления суммы, произведения

ПЛАН ЗАНЯТИЯ

Дисциплина: ОП.04 Основы алгоритмизации и программирования

Преподаватель: Машарова Р.В.

Курс: 2

Группа: 1ИСП-21

Специальность: Информационные системы и программирование

Дата: 02.05.23

Время проведения: 09.50-11.20, 2 пара

Тема: Базовые алгоритмы. Алгоритм накопления суммы, произведения.

Цель занятия:

Дидактическая: познакомиться с алгоритмом накопления суммы и произведения

Развивающая: развивать логическое и критическое мышление, умение обобщать и синтезировать знания

Вид занятия лекция

Литература:

1. Павловская Т.А. С/С++. Программирование на языке высокого уровня. 2 изд. – Спб. Питер, 2011. – 464 с.: ил.

2. Павловская Т. А., Щупак Ю. А. C/C++. Структурное и объектно-ориентированное программирование. Практикум. – Спб. Питер, 2010. – 352 с.

3. Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования: учебник для студентов учреждений сред.проф. образования – М.: издательский центр «Академия», 2013 – 400 с.

4. Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования. Практикум: учебник для студентов учреждений сред.проф. образования – М.: издательский центр «Академия», 2013 – 400 с.

Тема: Базовые алгоритмы. Алгоритм накопления суммы, произведения

1. Алгоритм организации счетчика

2. Алгоритм накопления суммы

3. Алгоритм накопления произведения

 

При реализации циклических вычислительных процессов наиболее часто используются следующие базовые алгоритмы:

• табулирование функций;

• организация счетчика;

• накопление суммы или произведения;

• поиск минимального или максимального члена последо­вательности.

Ниже приводятся примеры программирования задач на осно­ве базовых алгоритмов.

 

Задача 1.Алгоритм организации счетчика

Дана последовательность:

cos 1, cos 3, cos 5, ..., cos 99.

Определить количество положительных членов последова­тельности.

Решение

Представим последовательность в общем виде:

а = cos(2n -1), где п = .

Для организации счетчика в памяти компьютера выделяется ячейка, содержимое которой должно увеличиваться на 1 каждый раз, когда встречается положительный член последовательности. В программе ячейке (счетчику) соответствует переменная целого типа, например переменная L. Работа счетчика реализуется с по­мощью оператора присваивания L=L+1. В начальный момент содержимое ячейки должно быть равно нулю. С этой целью пред­варительно осуществляется очистка ячейки оператором присваи­вания L=0.

 

#include "stdafx.h"

#include<math.h>

intmain()

{

floata;

intn,L; // описание переменных

L=0; // очистка счетчика

for(n=1;n<=50;n++) // запуск цикла

{

a = cos(2*n – 1.0); // тело цикла

if(a>0) L = L + 1; // тело цикла

}

printf("L=%d", L); // вывод значения счетчика

return 0;

}

 

Задача 2.Алгоритм накопления суммы

Дана последовательность:

sin 2x, sin 4x, sin 6x, ..., sin l6x

x - заданное вещественное число.

Вычислить сумму членов последовательности, которые по модулю больше 0.3.

Решение

Общий член последовательности имеет вид:

а = sin(2nx), где n = .

Для вычисления суммы в памяти компьютера выделяется ячейка S, к содержимому которой прибавляется член последовательности а каждый раз, когда выполняется условие > 0.3. Накопление суммы реализуется оператором присваивания S=S+a;. В начальный момент ячейка для суммирования должна быть очищена оператором S=0;.

 

#include "stdafx.h"

#include<math.h>

int main()

{

floata, x, S; //описание переменных задачи

int n;

printf("Введите значение х= ");

scanf("%f",&x);

S=0; //очистка суммы

for(n=1;n<=8;n++) // запуск цикла

{

a=sin(2*n*x);

if ( abs(a)>0.3) S = S + a; /* добавление числа а в сумму, если |a|>0.3 */

}

printf("S=%6.2f",S); // вывод значения суммы на экран

return 0;

}

 

Задача 3. Алгоритм накопления произведения

Дана последовательность:

cos 0.1, cos 0.2, cos 0.3, ..., cos 10.

Вычислить значение: Р где РО - произведение отри­цательных членов последовательности.

Решение

Общий член последовательности имеет вид:

y = cos x, где 0.1 10; Δх = 0.1.

Для реализации алгоритма накопления произведения выделяется ячейка памяти РО, в которой осуществляется последова­тельное перемножение отрицательных членов последовательно­сти с помощью оператора присваивания РО=РО*у; . В началь­ный момент в ячейку должна быть занесена единица оператором РО=1;.

 

#include "stdafx.h"

#include<math.h>

int main()

{

floatх, у, Р, РО;

РО = 1; // установка нач. значения произведения

for (x=0.1; x<=10; x=x+0.1) //запуск цикла

{

у = cos(x);

if ( y<0) РО = РО*у;

}

Р = abs(PO);

printf("P=%6.2f",P); //вывод на экран значения P

return 0;

}

 

Контрольные вопросы

1. Циклические вычислительные процессы

2. Оператор цикла while

3. Оператор цикла do...while

4. Оператор цикла с параметром