Тема: Базовые алгоритмы. Алгоритм поиска минимального члена последовательности, табулирования функции.
ПЛАН ЗАНЯТИЯ
Дисциплина: ОП.04 Основы алгоритмизации и программирования
Преподаватель: Машарова Р.В.
Курс: 2
Группа: 1ИСП-21
Специальность: Информационные системы и программирование
Дата: 04.04.23
Время проведения: 08.10-09.40, 1 пара
Тема: Базовые алгоритмы. Алгоритм поиска минимального члена последовательности, табулирования функции.
Цель занятия:
Дидактическая: познакомиться алгоритмом поиска минимального члена последовательности и табулированием функции
Развивающая: развивать логическое и критическое мышление, умение обобщать и синтезировать знания
Вид занятия лекция
Литература:
1. Павловская Т.А. С/С++. Программирование на языке высокого уровня. 2 изд. – Спб. Питер, 2011. – 464 с.: ил.
2. Павловская Т. А., Щупак Ю. А. C/C++. Структурное и объектно-ориентированное программирование. Практикум. – Спб. Питер, 2010. – 352 с.
3. Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования: учебник для студентов учреждений сред.проф. образования – М.: издательский центр «Академия», 2013 – 400 с.
4. Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования. Практикум: учебник для студентов учреждений сред.проф. образования – М.: издательский центр «Академия», 2013 – 400 с.
Тема: Базовые алгоритмы. Алгоритм поиска минимального члена последовательности, табулирования функции.
1. Алгоритм поиска минимального члена последовательности
2. Табулирование функции (или кратные циклы)
3. Вычисление сумм элементов последовательностей
При реализации циклических вычислительных процессов наиболее часто используются следующие базовые алгоритмы:
• табулирование функций;
• организация счетчика;
• накопление суммы или произведения;
• поиск минимального или максимального члена последовательности.
Ниже приводятся примеры программирования задач на основе базовых алгоритмов.
Задача 1.Алгоритм поиска минимального члена последовательности
Последовательность чисел генерируется по следующему закону:
ak=ektg(2k + l); к= .
Найти минимальный член последовательности.
Решение
Для реализации алгоритма выделяется ячейка памяти min, в которую сначала заносится первый член последовательности. Затем, начиная со второго, производится сравнение очередного вычисленного члена последовательности с содержимым ячейки min. Если текущий член последовательности меньше содержимого ячейки min, то oн переписывается в эту ячейку. В противном случае содержимое ячейки min сохраняет прежнее значение. При завершении сравнения всех членов последовательности в ячейке min остается минимальное значение.
Замечание 1. Алгоритм поиска максимального члена последовательности отличается от поиска минимального члена лишь тем, что в ячейке (ей можно дать, например, имя max) запоминается больший из сравниваемых членов последовательности.
Замечание 2. В начальный момент в ячейку min можно занести не первый член последовательности, а достаточно большое число, которое превышало бы область определения сравниваемых чисел (например, min=+1E6;). Тогда при сравнении с содержимым ячейки min первый член последовательности обязательно окажется меньше и перепишется в ячейку min. При поиске максимального члена последовательности в ячейку max в начальный момент заносится, наоборот, достаточно малое число, которое должно быть меньше всех сравниваемых членов последовательности(например, mах = -1Е6;). В этом случае первый из сравниваемых членов последовательности окажется больше содержимого ячейки max и запишется в эту ячейку.
Программа поиска min:
#include "stdafx.h"
#include<math.h>
int main()
{
float a, min;
intk;
min = +1E6; // нач. значение переменной min
for( k=l; k<=10;k++)
{
a = exp(1.0*k)*tan(2*k + 1.0);
if (a<min) min = a; // условие для поиска min
}
printf("min=%6.2f", min);
return 0;
}