План-конспект занятия Базовые конструкции структурного программирования: операторы циклов


План-конспект занятия по дисциплине
«Основы алгоритмизации и программирования»
Тема: Базовые конструкции структурного программирования: операторы циклов
Цель: Формирование первоначальных представлений об реализации алгоритмической конструкции – цикла, использовании трёх типов циклических структур и соответствующих им операторов языка программирования С++.
Задачи занятия:
Образовательные - изучить циклические операторы языка программирования С++, выявить особенности из применения
Развивающие – формировать умения при составлении программ циклической структуры на заданную ситуацию
Воспитательные – стимулирование и воспитание положительного отношения к учению, развитие самостоятельности и творческих способностей у студентов, развитие логического мышления внимания.
Оборудование: компьютер, мультимедийный проектор, экран, презентация «Программирование циклов».
Программное обеспечение: Microsoft PowerPoint, презентация к уроку.
План урока.
Организационный этап (приветствие, определение отсутствующих на уроке) – 3 мин.
Контроль и оценка знаний по теме «Базовые конструкции структурного программирования: управляющие конструкции, условный оператор».– 10 мин
Актуализация опорных знаний – 5 мин
Формирование новых знаний и способов действий. – 25 мин.
Изучение нового материала по теме «Базовые конструкции структурного программирования: операторы циклов».
Понятие «цикл»
Оператор цикла с предварительным условием
Оператор цикла с последующим условием
Оператор цикла с параметром
Применение новых знаний и способов действий – 30 мин.
Итог урока – 4 мин.
Домашнее задание – 3 мин.
Ход урока:
Слайд 1.
Организационный момент. Цель, задачи урока – 3 мин.
Здравствуйте, ребята! Наше сегодняшнее занятие может быть условно разделено на 4 части:
Контроль и оценка знаний по теме «Базовые конструкции структурного программирования: управляющие конструкции, условный оператор».
Актуализация опорных знаний - повторение понятия цикла из курса математики; Изучение нового материала по теме «Базовые конструкции структурного программирования: операторы циклов»
Применение новых знаний и способов действий
Шесть студентов получают индивидуальные разноуровневые задания по карточкам. Двое остаются выполнять задание у доски, четверо учащихся работают на месте.
Остальные студенты участвуют в устном опросе.
Для фронтального опроса студентов предусмотрены следующие вопросы:
Назовите три основных структуры алгоритмов?
Решение каких задач можно описать линейной блок-схемой алгоритмов, ветвлением?
В чем отличие полного ветвления от неполного?
591820556260По описанному примеру, составьте трассировочную таблицу (Шаг, исходное значение x, результат выполнения, тело итерации, выход х).
Результат:

Определите, что будет получено на экране в результате исполнения следующих операторов (показать операторы, используя проектор).
int main ()
{
float a,b,c,y,min;
cout<<" Ввод a: ";
cin>>a;
cout<<"\n Ввод b: ";
cin>>b;
cout<<"\n Ввод c: ";
cin>>c;
if (a>b)
{ min=b;}
else{ min=a;}
if (min+a>1)
{ y=a*b-c; }
else{ y=(a+b)*c; }
cout<<"\n Результат Y = "<<y;
return 0;getch ();
}
Предположительный ответ:
Результат:
Ввод а: 0.1
Ввод b: 2
Ввод c: 2
Результат Y = 4.2
II. Актуализация знаний и опыта студентов
Термин цикл, понятен каждому, приведите математические примеры, решение которых основано на повторении вычислений.
В качестве примеров студенты могут назвать возведение числа в степень, вычисление рядов и последовательностей, вычисление значений функций на отрезке, определение факториала числа.
Что определяет количество повторений вычислений, в каждом из приведенных примеров?
Показатель степени, конечное значение параметра ряда или последовательности, отрезок изменения значений аргумента функции, шаг вычисления аргумента.
Какие действия повторяются в каждом из примеров?
III. Формирование новых знаний и способов действий.
Изучение нового материала по теме «Базовые конструкции структурного программирования: операторы циклов»
Понятие «цикл»
Оператор цикла с предварительным условием
Оператор цикла с последующим условием
Оператор цикла с параметром
В практике программирования циклом называют многократное автоматическое выполнение некоторых действий (операторов). Любой цикл состоит из тела цикла, то есть из тех операторов, которые выполняются несколько раз, начальных установок, модификации параметра цикла и проверки условия продолжения выполнения цикла.
Один проход цикла называется итерацией. Проверка условия выполняется на каждой итерации. Переменные, изменяющиеся в теле цикла и используемые при проверке условия продолжения, называются параметрами цикла. Целочисленные параметры цикла, изменяющиеся с постоянным шагом на каждой итерации, называются счетчиками цикла.
Рассказ сопровождается показом блок-схем, с использованием проектора.
2. Цикл с предусловием
while (выражение) оператор
Выражение определяет условие повторения тела цикла, представленного простым или составным оператором. Выполнение оператора начинается с вычисления выражения. Если оно истинно, выполняется оператор цикла. Если при первой проверке выражение ложно, цикл не выполняется ни разу. Выражение вычисляется перед каждой итерацией цикла.
Пример. Составить программу: определение значений функции y=x2+1 в указанном диапазоне с заданным шагом.
#include<stdio.h>
void main()
{float xn, xk, dx;printf(“введите диапазон и шаг изменения аргумента”);
scanf(%f%f%f, &xn, &xk, &dx);
printf(“| x | y |\n”);
float x=xn;
while (x<=xk)
{printf(“|%5.2f|%5.2f|\n”,x,x*x+1);
начало
xn, xk, dxx=xnx<=xkx, x*x+1
x+=dxконец
тело цикла
Условие цикла
x+=dx;
} }
Пример. Программа находит все делители целого положительного числа.
#include <iostream.h>
void main
{int num;
cout<<”\nВведите число: “; cin>>num;
int half=num/2;
int d=2;
while (d<=half)
{if (!(num%d)) cout<<d<<”\n”;
d++;}
}
3. Оператор do while
Оператор цикла do while называется оператором цикла с постусловием и используется в тех случаях, когда необходимо выполнить тело цикла хотя бы один раз. Формат оператора имеет следующий вид:
do оператор while (выражение);
Схема выполнения оператора do while :
1. Выполняется оператор цикла (которой может быть составным оператором).
2. Вычисляется выражение.
начало
nf=i=1
f*=i++
i<=n
fконец
3. Если выражение ложно, то выполнение оператора do while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполнение оператора продолжается с пункта 1.
Пример. Программа вычисления факториала
# include <iostream.h>
void main()
{ long int f;
int i, n;
cout<<”n=”; cin>>n;
f=i=1;
do f*=i++; //f=f*i; i=i+I;
while (i<=n);
cout<<”\n”<<n<<”!”<<f;
}
4. Цикл с параметром (for)
for (инициализация; выражение; модификации) оператор;
Инициализация используется для объявления и присвоения начальных значений величинам, используемых в цикле. В этой части можно использовать несколько операторов, разделенных запятой, например, так
int k, m;
for (k=1, m=0; . . .
for (int i=0, j=2; . . .
Областью действия переменных, объявленных в части инициализации цикла, является цикл.
Выражение определяет условие выполнения цикла; если его результат равен true, цикл выполняется. Цикл с параметром реализован как цикл с предусловием.
Модификации выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла. В части модификации можно записать несколько операторов через запятую. Простой или составной оператор представляет собой тело цикла. Любая из частей оператора for может быть опущена (но точки с запятыми надо ставить на своих местах!).
Пример (оператор, вычисляет сумму чисел от 1 до 100)
for (int i=1, s=0; i<=100; i++) s+=i;
Пример. Программа печатает таблицу значений функции y=x2+1 во введенном диапазоне.
# include <stdio.h>
void main()
{ float xn, xk, dx, x;
printf(“Введите диапазон и шаг изменения аргумента:”);
scanf(“%f%f%f,&xn,&xk,&dx”);
printf(“| X | Y |\n”);
for (x=xn; x<=xk; x+=dx)
printf(“|%5.2f|%5.2f |\n”,x,x*x+1);
}
начало
xn, xk, dxx=xnx=xn;x<=xk;x+=dxx, x*x+1
конец

Пример. Программа находит все делители целого положительного числа.
# include <iostream.h>
void main()
{ int num, half, div;
cout<<”Введите число:”; cin>>num;
for (half=num/2, div=2; div<=half; div++)
if (num%div=0) cout<<div<<”\n”;
}
С помощью цикла for нахождение N! Можно организовать следующим образом:
1) f=1;
for (i=1; i<=n; i++) f=f*i;
2) for (f=, i=1; i<=n; i++) f=f*i;
3) f=1;
i=1;
for (; i<=n; i++) f=f*i;
4) for (f=1, i=1; i<=n; f=f*i, i++);
5) for (f=1, i=1; i<=n; f*=i++);
IV. Применение новых знаний и способов действий

Группе студентов выдается три варианта заданий. Работа выполняется в три этапа. Первый этап состоит в определении постановки задачи, составлении математической модели данных, определении входных и выходных данных. Второй этап предполагает составление блок-схемы алгоритма решения задачи. Третий этап заключается в написании программы по блок-схеме алгоритма.
Работа студентов на каждом из этапов регламентируется временем. По завершении третьего этапа происходит оценка результатов деятельности студентов (сравнение с готовым решением со слайда).
Итог урока
При подведении итога перед учащимися ставится вопрос на выявление характерных особенностей по использованию циклических операторов:
Какие рекомендации по использованию циклических операторов вы можете дать?
Операторы цикла взаимозаменяемы, но можно привести некоторые рекомендации по выбору наилучшего в каждом конкретном случае.
Оператор do while обычно используют, когда цикл требуется обязательно выполнить хотя бы один раз (например, если в цикле производится ввод данных).
Оператором while удобнее пользоваться в тех случаях, когда число итераций заранее не известно, очевидных параметров тела цикла нет или модификацию параметров удобнее записывать не в конце тела цикла.
Оператор for предпочтительнее в большинстве остальных случаев (однозначно - для организации циклов со счетчиками).
Сегодняшней темой подводим итог в изучении материала модуля «Базовые конструкции структурного программирования».
На следующих занятиях нас ждут закрепление полученных знаний через выполнение лабораторных и практических работ в рамках изучения данного модуля дисциплины.
IV. Домашнее задание
1-й уровень. С клавиатуры вводятся отрицательные числа до тех пор, пока не будет введено положительное число или нуль. Найти значение максимального элемента введенной последовательности и его порядковый номер.
2-й уровень. Вводится с клавиатуры n чисел. Определить сколько положительных и отрицательных элементов содержит последовательность.
Литература
Павловская Т.А. С/С++. Программирование на языке высокого уровня.- СПб.: Питер, 2004. Семакин И.Г., Шестаков А.П. Основы программирования: Учебник. – М.: Мастерство, 2002.
Павловская Т.А., Щупак Ю.А. С/С++. Структурное программирование: Практикум. – СПб.: Питер, 2002.
Крячков А.В., Сухина И.В., Томшин В.К. Программирование на С и С++. Практикум: Учеб. пособие. – М.: Горячая линия – Телеком, 2000