- Преподавателю
- Информатика
- План-конспект занятия Базовые конструкции структурного программирования: операторы циклов
План-конспект занятия Базовые конструкции структурного программирования: операторы циклов
Раздел | Информатика |
Класс | - |
Тип | Конспекты |
Автор | Новикова Н.В. |
Дата | 04.03.2015 |
Формат | docx |
Изображения | Есть |
План-конспект занятия по дисциплине
«Основы алгоритмизации и программирования»
Тема: Базовые конструкции структурного программирования: операторы циклов
Цель: Формирование первоначальных представлений об реализации алгоритмической конструкции - цикла, использовании трёх типов циклических структур и соответствующих им операторов языка программирования С++.
Задачи занятия:
Образовательные - изучить циклические операторы языка программирования С++, выявить особенности из применения
Развивающие - формировать умения при составлении программ циклической структуры на заданную ситуацию
Воспитательные - стимулирование и воспитание положительного отношения к учению, развитие самостоятельности и творческих способностей у студентов, развитие логического мышления внимания.
Оборудование: компьютер, мультимедийный проектор, экран, презентация «Программирование циклов».
Программное обеспечение: Microsoft PowerPoint, презентация к уроку.
План урока.
-
Организационный этап (приветствие, определение отсутствующих на уроке) - 3 мин.
-
Контроль и оценка знаний по теме «Базовые конструкции структурного программирования: управляющие конструкции, условный оператор».- 10 мин
-
Актуализация опорных знаний - 5 мин
-
Формирование новых знаний и способов действий. - 25 мин.
Изучение нового материала по теме «Базовые конструкции структурного программирования: операторы циклов».
-
Понятие «цикл»
-
Оператор цикла с предварительным условием
-
Оператор цикла с последующим условием
-
Оператор цикла с параметром
-
Применение новых знаний и способов действий - 30 мин.
-
Итог урока - 4 мин.
-
Домашнее задание - 3 мин.
Ход урока:
Слайд 1.
-
Организационный момент. Цель, задачи урока - 3 мин.
Здравствуйте, ребята! Наше сегодняшнее занятие может быть условно разделено на 4 части:
-
Контроль и оценка знаний по теме «Базовые конструкции структурного программирования: управляющие конструкции, условный оператор».
-
Актуализация опорных знаний - повторение понятия цикла из курса математики; Изучение нового материала по теме «Базовые конструкции структурного программирования: операторы циклов»
-
Применение новых знаний и способов действий
Шесть студентов получают индивидуальные разноуровневые задания по карточкам. Двое остаются выполнять задание у доски, четверо учащихся работают на месте.
Остальные студенты участвуют в устном опросе.
Для фронтального опроса студентов предусмотрены следующие вопросы:
-
Назовите три основных структуры алгоритмов?
-
Решение каких задач можно описать линейной блок-схемой алгоритмов, ветвлением?
-
В чем отличие полного ветвления от неполного?
-
По описанному примеру, составьте трассировочную таблицу (Шаг, исходное значение 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 = "<
return 0;
getch ();
}
Предположительный ответ:
Результат:
Ввод а: 0.1
Ввод b: 2
Ввод c: 2
Результат Y = 4.2
II. Актуализация знаний и опыта студентов
Термин цикл, понятен каждому, приведите математические примеры, решение которых основано на повторении вычислений.
В качестве примеров студенты могут назвать возведение числа в степень, вычисление рядов и последовательностей, вычисление значений функций на отрезке, определение факториала числа.
Что определяет количество повторений вычислений, в каждом из приведенных примеров?
Показатель степени, конечное значение параметра ряда или последовательности, отрезок изменения значений аргумента функции, шаг вычисления аргумента.
Какие действия повторяются в каждом из примеров?
III. Формирование новых знаний и способов действий.
Изучение нового материала по теме «Базовые конструкции структурного программирования: операторы циклов»
-
Понятие «цикл»
-
Оператор цикла с предварительным условием
-
Оператор цикла с последующим условием
-
Оператор цикла с параметром
-
В практике программирования циклом называют многократное автоматическое выполнение некоторых действий (операторов). Любой цикл состоит из тела цикла, то есть из тех операторов, которые выполняются несколько раз, начальных установок, модификации параметра цикла и проверки условия продолжения выполнения цикла.
Один проход цикла называется итерацией. Проверка условия выполняется на каждой итерации. Переменные, изменяющиеся в теле цикла и используемые при проверке условия продолжения, называются параметрами цикла. Целочисленные параметры цикла, изменяющиеся с постоянным шагом на каждой итерации, называются счетчиками цикла.
Рассказ сопровождается показом блок-схем, с использованием проектора.
2. Цикл с предусловием
while (выражение) оператор
Выражение определяет условие повторения тела цикла, представленного простым или составным оператором. Выполнение оператора начинается с вычисления выражения. Если оно истинно, выполняется оператор цикла. Если при первой проверке выражение ложно, цикл не выполняется ни разу. Выражение вычисляется перед каждой итерацией цикла.
Пример. Составить программу: определение значений функции y=x2+1 в указанном диапазоне с заданным шагом.
#include
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, dx
x=xn
x<=xk
x, x*x+1
x+=dx
конец
тело цикла
Условие цикла
x+=dx;
} }
Пример. Программа находит все делители целого положительного числа.
#include
void main
{int num;
cout<<"\nВведите число: "; cin>>num;
int half=num/2;
int d=2;
while (d<=half)
{if (!(num%d)) cout<
d++;}
}
3. Оператор do while
Оператор цикла do while называется оператором цикла с постусловием и используется в тех случаях, когда необходимо выполнить тело цикла хотя бы один раз. Формат оператора имеет следующий вид:
do оператор while (выражение);
Схема выполнения оператора do while :
1. Выполняется оператор цикла (которой может быть составным оператором).
2. Вычисляется выражение.
начало
n
f=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"<
}
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
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, dx
x=xn
x=xn;x<=xk;x+=dx
x, x*x+1
конец
Пример. Программа находит все делители целого положительного числа.
# include
void main()
{ int num, half, div;
cout<<"Введите число:"; cin>>num;
for (half=num/2, div=2; div<=half; div++)
if (num%div=0) cout<
}
С помощью цикла 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