- Учебник: «Информатика (базовый уровень)», Семакин И.Г., Хеннер Е.К., Шеина Т.Ю.
- 25.04.2018
- 3505
- 323
Рабочие листы
к вашим урокам
Скачать
План-конспект урока по информатике в 10 классе
Программирование циклов
Цели урока:
Задачи урока:
развитие мыслительных навыков обучающихся, умения критически анализировать ситуацию; формирование умений применять ранее полученные знания в других дисциплинах (математика, английский).
Тип урока: практическая работа.
Материалы и оборудование к уроку:
Ход урока
Подготовка учащихся к работе на уроке:
Какой процесс называется циклическим?
Процесс называется циклическим, если вычисления в нём многократно повторяются по одним и тем же формулам при разных значениях входящих в них переменных.
Алгоритмическая структура “Цикл” обеспечивает многократное выполнение некоторой последовательности действий, которая называется телом цикла.
- Какие типы циклических структур и операторы цикла в Паскале вы знаете?
Различают циклы:
1) с определённым числом повторений (цикл с параметром, или цикл со счетчиком, или цикл “Для”);
2) с неопределенным числом повторений; здесь различают цикл с предусловием (цикл “Пока”) и цикл с постусловием (цикл “До”).
В Паскале существуют следующие операторы цикла: с предусловием WHILE, с постусловием REPEAT, с параметром FOR.
- Как работают эти операторы? В чём их особенности? Когда лучше применять тот или иной оператор?
Оператор цикла с предусловием (цикл “Пока”) WHILE является наиболее общим по сравнению с другими конструкциями и имеет формат:
WHILE <выражение булёвского типа> DO <оператор>;
Выполняется данный оператор так: сначала вычисляется значение булёвского выражения (т.е. условие, стоящее после слова WHILE, проверяется на истинность). Если оно имеет значение TRUE, то выполняется оператор, стоящий после слова DO, затем условие проверяется вновь и т.д. Как только на очередном шаге условие не выполняется (значение булёвского выражения становится равным FALSE), то выполнение оператора цикла прекращается. Если выполняемый оператор не изменяет значения переменных, входящих в условие, то условие всегда будет истинным, и цикл будет выполняться вечно, при этом говорят, что программа зацикливается. Если же при первой проверке условия оно сразу оказывается ложным, то оператор цикла не выполняется вообще.
Если в цикле нам необходимо выполнять больше, чем один оператор, то применяется составной оператор, т.е. несколько операторов заключаются в операторные скобки BEGIN … END.
При построении программ со структурой цикла WHILE:
1) начальное значение логического выражения должно быть определено перед вхождением в цикл, т.е. перед WHILE;
2) последовательность выполняемых операторов в теле цикла должна быть логически связанной и содержать хотя бы один оператор, изменяющий значение параметра цикла, иначе цикл будет продолжаться бесконечно;
3) логическое выражение в заголовке цикла WHILE, чтобы цикл закончился, должно принять значение FALSE.
В операторе REPEAT (цикл “До”) используется так называемое постусловие, т.е. значение логического выражения, управляющее выходом из цикла, проверяется после выполнения операторов, содержащихся внутри оператора REPEAT. Оператор имеет вид:
REPEAT
<последовательность операторов>
UNTIL <выражение булёвского типа>;
На первом шаге цикла операторы, заключенные между REPEAT и UNTIL, выполняются в любом случае, дальше же цикл будет повторяться, пока значение булёвского выражения ложно. То есть цикл закончится, когда условие станет истинным. В этом случае цикл заканчивает, и происходит переход на оператор, следующий за REPEAT. Операторы внутри цикла REPEAT выполняются хотя бы один раз, поскольку условие выхода из цикла проверяется только после его очередного выполнения.
При построении циклов с использованием REPEAT этому оператору должен предшествовать оператор присваивания начального значения параметру цикла.
В данном операторе слова REPEAT и UNTIL служат операторными скобками, и BEGIN…END использовать не требуется .
Синтаксическая запись цикла с параметром (цикл “Для”) имеет два варианта:
1) с возрастанием переменной цикла:
FOR <идентификатор> := <выражение> TO <выражение> DO <оператор>;
2) с убыванием переменной цикла:
FOR <идентификатор> := <выражение> DOWNTO <выражение> DO <оператор>;
Идентификатор и оба выражения должны быть одного и того же порядкового типа.
Оба выражения вычисляются перед выполнением оператора цикла и не должны изменяться внутри оператора цикла.
После окончания цикла значение параметра цикла не определено, т.е. нельзя считать, что значение параметра равно значению второго выражения.
Значения выражений определяются один раз, при входе в оператор FOR, и сохраняются на протяжении всего процесса выполнения. После задания переменной цикла присваивается начальное значение. Затем происходит проверка, не превосходит ли содержимое переменной цикла конечного значения. Если не превосходит, выполняются операторы, образующие тело цикла. Далее значение переменной цикла увеличивается на единицу, и процесс проверки и выполнения операторов повторяется. Так происходит до тех пор, пока проверка не даст результата TRUE. В этом случае цикл завершается, и осуществляется переход на оператор, следующий за FOR.
Поскольку оператор цикла FOR сам изменяет значения переменой цикла, её нельзя менять другими способами, например, присваиванием ей какого-либо значение в теле цикла.
Оператор цикла с параметром следует применять, если заранее известно, сколько раз нужно выполнить некоторый оператор. Параметр цикла может являться просто счётчиком, контролирующим количество повторений оператора, а может использоваться в самом операторе (с учётом того факта, что на каждом шаге цикла параметр цикла на 1 отличается от предыдущего своего значения) .
Разберем задачу. Вывести на экран в порядке возрастания все трехзначные числа, в записи которых нет одинаковых цифр. Операцию деления использовать нельзя.
Представим трехзначное число в записи трех цифр: C1,C2,C3. Далее запустим три вложенных цикла для взаимного сравнения цифр между собой.
Напишем программу на языке Pascal:
Program sum2;
var c1,c2,c3:word;
k:integer;
begin
k:=100;{начнем с минимального трехзначного числа}
for c1:=1 to 9 do
for c2:=0 to 9 do
for c3:=0 to 9 do
if (c1<>c2) and (c2<>c3) and (c1<>c3) then
begin
inc(k);{повторяем, пока выполняется условие}
write(c1,c2,c3,' ');
end;
writeln;
readln;
end.
Написать программу:
ФИЗКУЛЬТМИНУТКА
1 – 2 ученика рассказывают, чему научились (что узнали на уроке), остальные учащиеся дополняют их.
Использованные источники
Задача 1.
Program chisla08;
var i:integer;
begin
i:=10;
while i<=99 do begin
if 3*((i div 10)+(i mod 10)) = i then
writeln(i);
inc(i);
end;
Readln;
end.
Задача 2.
Program chisla10;
var i:integer;
begin
i:=10;
while i<=99 do begin
if ((i div 10)+(i mod 10))*((i div 10)+(i mod 10))*((i div 10)+(i mod 10)) = sqr(i) then
writeln(i);
inc(i);
end;
Readln;
end.
6 661 291 материал в базе
«Информатика (базовый уровень)», Семакин И.Г., Хеннер Е.К., Шеина Т.Ю.
Больше материалов по этому УМКНастоящий материал опубликован пользователем Корычев Жан Владимирович. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт
Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.
Удалить материалВаша скидка на курсы
40%Курс профессиональной переподготовки
500/1000 ч.
Курс повышения квалификации
72 ч. — 180 ч.
Курс профессиональной переподготовки
500/1000 ч.
Курс повышения квалификации
36/72 ч.
Мини-курс
4 ч.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.