Тема: Базовые алгоритмы. Алгоритм накопления суммы, произведения
ПЛАН ЗАНЯТИЯ
Дисциплина: ОП.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. Оператор цикла с параметром