Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
10
План-конспект проведения открытого занятия.
Дата проведения: 21.02.2005г. Время: 15.00. Группа: 11в
Тема: Циклы с условиями. Циклы WHILE,REPEAT ….UNTIL Решение задач.
Цели занятия
Учебная Что такое WHILE,REPEAT ….UNTIL ?Как выглядит цикл с предусловием, как он работает, примеры. Как выглядит цикл с постусловием, как он работает,примеры.
Воспитательная использовать последние достижения современной психолого- педагогической науки, способствовать развитию и формированию познавательной активности кружковцев, воспитывать здоровое честолюбие, умение самостоятельно выполнять работу, а также стремление к достижению успеха.
Профессиональная стимулировать целенаправленную деятельность кружковцев, развивать познавательный интерес в изучении основ информатики, различных языков программирования
Продолжительность занятия: 45 минут.
Оборудование, наглядные пособия: компьютер, методические разработки, раздаточный материал, работающие программы кружковцев в режиме алгоритмического языка Turbo Pascal 7.0. На доске написана тема занятия.
Ход занятия.
Вопросы на повторение:
Прежде, чем мы с вами перейдем к следующей теме, поговорим о ключевых понятиях предмета информатики:
1) что такое алгоритм, какие вы знаете виды алгоритмов; программа и алгоритм это одно и то же?
2) Какие вы знаете правила записи программ на Turbo Pascal 7.0. ?
3) Как выглядит полный условный оператор? Как он работает?
Как выглядит неполный условный оператор? Как он работает?
4) какие целые, вещественные типы вы знаете?
5) Как выглядит цикл FOR? Как он работает?
называются тема, цели и задачи занятия.
НОВАЯ ТЕМА:
Циклы с условиями.
Цикл с предусловием. Цикл с постусловием. Решение задач
Основные вопросы темы:
ЦИКЛЫ С УСЛОВИЯМИ
Цикл с предусловием используется тогда, когда число повторений оператора цикла заранее не известно, а задается некоторое условие продолжения цикла.
Оператор
Цикл с предусловием
While <условие> Do <тело цикла>;
Выполнение оператора цикла с предусловием начинается с проверки условия, записанного после слова While. Если оно соблюдается, то выполняется <тело цикла>, затем вновь проверяется условие и т.д. Как только при очередной проверке окажется, что условие не соблюдается, <тело цикла> выполняться не будет.
Примечание.
Пример
Подсчитать количество цифр заданного натурального числа п.
Решение
Подсчет количества цифр начнем с последней цифры числа. На очередном шаге цикла увеличим счетчик цифр на единицу, а число уменьшим в 10 раз (тем самым мы избавляемся от последней цифры числа). Далее с получившимся числом проделаем ту же последовательность
Program Example_8;
Var m, n: Longint;
k: Integer; {счетчик цифр}
Begin
Writeln(' Введите натуральное число'); {вводим натуральное число п>0} ' Readln(n);
m:=n; k:=0;
While m<>0 Do
{пока (While) число m<>0 делать(Do)}
Begin
Inc(k); { k:=k+l;} m:=m div 10;
{"выбрасываем" из числа последнюю цифру} End;
Writeln('В числе ',n,' ', k, цифр');
{вывод количества цифр}
Readln;
End.
Трассировка примера
Рассмотрим выполнение этой программы в пошаговом режиме для числа 65387:
n |
m |
k |
65387 |
65387 |
0 |
65387 |
6538 |
1 |
65387 |
653 |
2 |
65387 |
65 |
3 |
65387 |
6 |
4 |
65387 |
0 |
5 |
В результате работы программы на экране появится предложение: I
В числе 65387 5 цифр
Пример
Дана непустая последовательность натуральных чисел, за которой следует 0. Найти порядковый номер наименьшего элемента последовательности.
Решение
Обозначим через х и i очередной элемент последовательности и его номер; min и k минимальный элемент последовательности и его номер. Считывание элементов последовательности производится до тех пор, пока не будет введен 0, то есть пока х<>0. Начальный элемент последовательности будет равен min. Очередное вводимое число (очередной элемент последовательности) требуется сравнивать с текущим значением минимума, и если текущее значение min окажется больше очередного элемента последовательности, то min нужно изменить, а номер очередного элемента последовательности запомнить. Учитывая вышесказанное, составим программу:
Program Exaraple_9;
Var x, i, min, k : Integer;
Begin
Writeln('Введите первый элемент
последовательности');
Read(x);
k:=l; min:=x; i:=2;
While x<>0 Do
Begin
If x<min Then
Begin
min:=x; k:=i-l;
End;
Writeln('Введите ',I,' элемент последовательности' ); Read(x);
Inc(i) ;
End;
Writeln('Номер минимального элемента ', k); End.
Цикл с постусловием
a:=n; ck:=0; While a>=0; Do
Begin
ck:=ck+l;
a:=a div 10
End;
Для программной реализации циклических алгоритмов с неизвестным заранее числом повторений имеется еще один оператор оператор цикла с постусловием, который имеет следующий вид:
Оператор цикла с постусловием
Repeat {повторять}
<оператор 1>;
<оператор 2>;
. . . .
<оператор n>;
Until {до тех пор пока не} <условие>;
Этот оператор отличается от цикла с предусловием тем, что проверка условия производится после очередного выполнения тела цикла. Это обеспечивает выполнение цикла хотя бы один раз.
Обратите внимание на то, что данный оператор цикла предполагает наличие нескольких операторов в теле цикла, поэтому служебные слова Begin и End не нужны.
Последовательность операторов, входящих в тело цикла, выполняется один раз, после чего проверяется соблюдение условия, записанного следом за служебным словом Until. Если условие соблюдается, цикл завершается. В противном случае тело цикла выполняется еще раз, после чего снова проверяется соблюдение условия.
Пример
Составить программу планирования закупки товара в магазине на сумму, не превышающую заданную величину.
Решение
Обозначим через х и k цену и количество товара, через р заданную предельную сумму, через s стоимость покупки. Начальное значение общей стоимости покупки s равно нулю. Значение предельной суммы считывается с клавиатуры. Необходимо повторять запрос цены и количества выбранного товара, вычислять его стоимость, суммировать ее с общей стоимостью и выводить результат на экран до тех пор, пока стоимость не превысит предельную сумму р.
Program Example_10;
Var x, k, p, s: Integer;
Begin
Writeln( 'Предельная сумма ');
Readln(p);
s:=0;
Repeat
Writeln(' Введите цену товара и его
количество' ) ;
Readln (x, k) ;
s :=s+x*k;
Writeln ( 'Стоимость покупки равна ',s);
Until s>p;
Writeln { 'Суммарная стоимость покупки превысила предельную сумму');
End.
Пример.
Алгоритм Евклида это алгоритм нахождения наибольшего общего делителя (НОД) двух целых неотрицательных чисел. Пусть х и у одновременно не равные нулю целые неотрицательные числа и пусть х>у. Если у=0,то НОДА(х,у)=х, а если y<>Q, то для чисел х, у и r,
где r остаток от деления х на у, выполняется равенство НОД(x,y)=НОД(y,г). "
Например, пусть х=48,y=18.
НОД(48,18)=НОД(18,12)=НОД(12,6)==НОД(6,0)=6.
Написать программу нахождения наибольшего общего делителя двух неотрицательных чисел.
Решение
Для решения данной задачи воспользуемся циклом с постусловием:
Program Example;
Var х, у: Integer;
Begin
Writeln('Введите два числа');
Readln(х,у);
Repeat {выполнять}
If x>y Then х:=х mod у
Else у:=у mod X;
Until (х=0) or (y=0);
{до тех пор, пока одно из чисел не станет равно нулю}
Writeln('НОД=', х+у)); {вывод НОД. Одно из чисел обязательно равно нулю}.
Readln;
End.
Если мы сложим все цифры какого-либо числа, затем все цифры найденной суммы и будем повторять этот процесс, мы наконец получим однозначное число (цифру), называемое цифровым корнем данного числа. Например, цифровой корень числа 34 697 равен 2 (3+4+6+9+7=29; 2+9=11; 1+1=2). Составим программу для нахождения цифрового корня
Решение
Вопросы для обсуждения:
Program Example_18; Var n,k,s:Longint; Begin
Writeln{'Введите число1);
Readln(n);
s:=n;
While s>9 Do
Begin
k:=s; s:=0; Repeat
s:=s+k mod 10; k:=k div 10; Until k=0; End;
Writeln('Цифровой корень числа ',n,' равен !,s); End.
Решение задач
1. Найти все трехзначные числа, удовлетворяющие следующим условиям:
число равно среднему арифметическому всех трехзначных чисел (включая данное), состоящих из тех же цифр.
8. Дана последовательность операторов:
а:=1; Ь:=1;
While a+b <8 Do
Begin a:=a+l; Ь:=b-2; End;
s:=a+b;
Сколько раз будет повторен цикл и какими будут значения переменных a, b и s после завершения этой последовательности операторов?
9 Какими будут значения переменных а и b после выполнения последовательности операторов:
а:=1; Ь:=1;
While a<=3 Do a:=a+l; b:=b+l;
10. Определите значение переменной s после выполнения следующих операторов:
a) s:=0; i:=0;
Wnile i<5 Do Inc(i); s:=s+100 div i;
b) s:=0; i:=l;
While i>l Do
Begin s:=s+100 div i; dec(i) End;
11. В последовательности операторов для вычисления факториала f числа n содержится пять ошибок.
Найдите эти ошибки.
k:=l; f:=0; While k<n Do f=f*k
k:=k+l.
записанное цифрами числа n
в обратном порядке.
р:=n;
While p>=0 Do
Begin .
a:=a+p mod 10;
p:=p div 10;
End;
13. Найти сумму цифр числа.
14. Найти старшую цифру числа.
15. Приписать по 1 в начало и в конец записи числа
п. Например, из числа п=3456 надо получить 134561.
16. Поменять местами первую и последнюю цифры
числа.
17.Найти количество четных цифр натурального
числа.
18.Найти самую большую цифру целого числа.
19Найти сумму цифр целого числа, больших 5.
20.Сколько раз данная цифра встречается в целом числе?
21.Составить программу, проверяющую, является
ли последовательность из 10 целых чисел, вводимых с
клавиатуры, возрастающей.
22.Составить программу, проверяющую, является
ли заданное натуральное число палиндромом, то есть
таким, десятичная запись которого читается одинаково слева
направо и справа налево.
23.Определить значение переменной s после выполнения следующих операторов:
s:=0; i:=l;
Repeat s:=s+5 div i; i :=!-!;
Until i<=l;
Составить программу для
a) вычисления f4Q;
b) поиска первого числа Фибоначчи, большего т
с) вычисления суммы всех чисел Фибоначчи, не превосходящих 1000.
24.Составить программу для определения того, является ли заданное натуральное число совершенным.
Совершенным называется число, равное сумме всех
своих положительных, делителей (включая единицу,
но исключая, разумеется, само число).
25.Показать, что любой оператор цикла с предусловием можно записать с помощью условного оператора
и оператора цикла с постусловием.
26Показать, что любой оператор цикла с постусловием можно записать с помощью условного оператора
и оператора цикла с предусловием.
27.Дана непустая последовательность натуральных
чисел, за которой следует 0. Вычислить сумму положи
тельных элементов последовательности, порядковые
номера которых нечетны
Закрепление нового материала.
Вопросы для закрепления:
1.Что такое лексема?
2.Что такое WHILE,REPEAT ….UNTIL ?
3.Как выглядит цикл с предусловием, как он работает?
4. Как выглядит цикл с постусловием?
Заботясь об охране здоровья детей, необходимо помнить, что к каждому рабочему месту подведено опасное для жизни напряжение! Бережно обращайтесь с техникой, спокойно, не торопясь, не толкаясь, не задевая столы, занимайте отведенное вам место. Если вы обнаружили неисправность, немедленно мне об этом сообщите. Работа на ПК требует большого внимания, четких действий и самоконтроля. Во время работы строго выполняйте все правила поТБ, следите за исправностью аппаратуры, плавно нажимайте на клавиши, не допуская резких ударов, работайте на клавиатуре чистыми руками, не вставайте со своих мест, когда в кабинет входят посетители.
Что нового узнали: уч-ся узнали новые возможности языка Turbo Pascal 7.0.
Типичные ошибки:
Был ли урок интересен:
Что больше всего понравилось:
2. Напишите программу по заданному алгоритму.
1. Ю.Шафрин «Курс компьютерной технологии» АБФ, Москва 1998
2.Фаронов В.В. Turbo Pascal 7.0 начальный курс «Нолидж» 2000 г.
3.Грызлов А.Г. Turbo Pascal 7.0 1994 г
4.Глушаков С.В. Turbo Pascal 7.0 Харьков 2002г.
5.Милов А.В. «Основы программирования» Харьков 2002г.
.