План-конспект
занятия по дисциплине
«Основы
алгоритмизации и программирования»
Тема: Базовые конструкции структурного
программирования: операторы циклов
Цель:
Формирование первоначальных представлений об реализации алгоритмической конструкции
– цикла, использовании трёх типов циклических структур и соответствующих им
операторов языка программирования С++.
Задачи занятия:
Образовательные - изучить циклические операторы языка
программирования С++, выявить особенности из применения
Развивающие – формировать умения при составлении программ циклической структуры на
заданную ситуацию
Воспитательные – стимулирование и воспитание положительного
отношения к учению, развитие самостоятельности и творческих способностей у
студентов, развитие логического мышления внимания.
Оборудование: компьютер, мультимедийный проектор, экран,
презентация «Программирование циклов».
Программное обеспечение: Microsoft PowerPoint, презентация к уроку.
План урока.
1. Организационный этап (приветствие, определение
отсутствующих на уроке) – 3 мин.
2. Контроль и оценка знаний по теме «Базовые конструкции структурного
программирования: управляющие конструкции, условный оператор».– 10 мин
3.
Актуализация опорных
знаний – 5 мин
4.
Формирование новых знаний
и способов действий. – 25 мин.
Изучение нового материала по теме «Базовые
конструкции структурного программирования: операторы циклов».
1.
Понятие «цикл»
2.
Оператор цикла с
предварительным условием
3.
Оператор цикла с
последующим условием
4.
Оператор цикла с
параметром
5.
Применение новых знаний и
способов действий – 30 мин.
6.
Итог урока – 4 мин.
7.
Домашнее задание – 3 мин.
Ход урока:
Слайд 1.
1.
Организационный
момент. Цель, задачи урока –
3 мин.
Здравствуйте, ребята! Наше сегодняшнее занятие может
быть условно разделено на 4 части:
§ Контроль и оценка знаний по теме «Базовые конструкции структурного
программирования: управляющие конструкции, условный оператор».
§ Актуализация опорных знаний - повторение понятия цикла
из курса математики; Изучение нового материала по теме «Базовые конструкции структурного программирования: операторы циклов»
§ Применение новых знаний и способов действий
Шесть студентов получают индивидуальные разноуровневые
задания по карточкам. Двое остаются выполнять задание у доски, четверо
учащихся работают на месте.
Остальные студенты участвуют в устном опросе.
Для фронтального опроса студентов
предусмотрены следующие вопросы:
1.
Назовите три основных
структуры алгоритмов?
2.
Решение каких задач можно
описать линейной блок-схемой алгоритмов, ветвлением?
3.
В чем отличие полного
ветвления от неполного?
4.
По описанному примеру, составьте
трассировочную таблицу (Шаг, исходное значение x, результат выполнения,
тело итерации, выход х).
Результат:
5. Определите,
что будет получено на экране в результате исполнения следующих операторов
(показать операторы, используя проектор).
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. Формирование новых знаний и
способов действий.
Изучение нового
материала по теме «Базовые конструкции
структурного программирования: операторы циклов»
1. Понятие «цикл»
2. Оператор цикла с предварительным
условием
3. Оператор цикла с последующим условием
4. Оператор цикла с параметром
1. В практике программирования
циклом называют многократное автоматическое выполнение некоторых действий
(операторов). Любой цикл состоит из тела цикла, то есть из тех
операторов, которые выполняются несколько раз, начальных установок, модификации
параметра цикла и проверки условия продолжения выполнения цикла.
Один проход цикла
называется итерацией. Проверка условия выполняется на каждой итерации.
Переменные, изменяющиеся в теле цикла и используемые при проверке условия
продолжения, называются параметрами цикла. Целочисленные параметры цикла,
изменяющиеся с постоянным шагом на каждой итерации, называются счетчиками
цикла.
Рассказ сопровождается
показом блок-схем, с использованием проектора.
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);
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. Вычисляется выражение.
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);
}
Пример. Программа находит все
делители целого положительного числа.
# 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. Применение новых знаний и способов
действий
Группе студентов выдается
три варианта заданий. Работа выполняется в три этапа. Первый этап состоит в определении
постановки задачи, составлении математической модели данных, определении
входных и выходных данных. Второй этап предполагает составление блок-схемы
алгоритма решения задачи. Третий этап заключается в написании программы по
блок-схеме алгоритма.
Работа студентов
на каждом из этапов регламентируется временем. По завершении третьего этапа
происходит оценка результатов деятельности студентов (сравнение с готовым
решением со слайда).
V.
Итог
урока
При подведении
итога перед учащимися ставится вопрос на выявление характерных особенностей по
использованию циклических операторов:
Какие
рекомендации по использованию циклических операторов вы можете дать?
Операторы цикла
взаимозаменяемы, но можно привести некоторые рекомендации по выбору наилучшего
в каждом конкретном случае.
Оператор do while обычно используют, когда цикл
требуется обязательно выполнить хотя бы один раз (например, если в цикле
производится ввод данных).
Оператором while удобнее пользоваться в тех случаях,
когда число итераций заранее не известно, очевидных параметров тела цикла нет
или модификацию параметров удобнее записывать не в конце тела цикла.
Оператор for предпочтительнее в большинстве
остальных случаев (однозначно - для организации циклов со счетчиками).
Сегодняшней
темой подводим итог в изучении материала модуля «Базовые конструкции
структурного программирования».
На следующих
занятиях нас ждут закрепление полученных знаний через выполнение лабораторных и
практических работ в рамках изучения данного модуля дисциплины.
IV. Домашнее задание
1-й уровень. С
клавиатуры вводятся отрицательные числа до тех пор, пока не будет введено
положительное число или нуль. Найти значение максимального элемента введенной
последовательности и его порядковый номер.
2-й уровень.
Вводится с клавиатуры n чисел. Определить сколько
положительных и отрицательных элементов содержит последовательность.
Литература
Павловская Т.А. С/С++. Программирование на языке
высокого уровня.- СПб.: Питер, 2004. Семакин И.Г., Шестаков А.П. Основы
программирования: Учебник. – М.: Мастерство, 2002.
Павловская Т.А., Щупак Ю.А. С/С++. Структурное
программирование: Практикум. – СПб.: Питер, 2002.
Крячков А.В., Сухина И.В., Томшин В.К.
Программирование на С и С++. Практикум: Учеб. пособие. – М.: Горячая линия –
Телеком, 2000
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.