Циклы задачи 9 класс
Циклы в решении задач на Паскале
Цель: Обобщить и проконтролировать знание учащихся по теме «Циклические алгоритмы на языке Паскаль, используя While, Repeat, For».
Задачи:
Обобщить знания учащихся по теме «Операторы цикла с предусловием, с постусловием, с параметром»;
Проконтролировать знания и умения использовать различные операторы цикла для решения задач;
Развить умение учащихся в выборе оптимального решения для задач циклической структуры.
Методы обучения: объяснительно-иллюстративный, исследовательский, практический, дифференцированный.
Вид урока: обобщающий.
Оборудование и программное обеспечение:
компьютер;
проектор;
операционная система;
язык программирования Паскаль.
План урока:
Организационный момент.
Актуализация знаний.
Обобщение материала.
Выступление учеников с разработанными программами.
Контроль знаний.
Подведение итогов урока. Домашнее задание.
Ход урока
1. Организационный момент
Приветствие учителя.
2. Актуализация начальных знаний учащихся.
– Понятие циклический алгоритм мы знаем. Давайте вспомним, что мы понимали под понятием цикла?
– Давайте вспомним, что характерно для циклического алгоритма? (Команды, входящие в цикл выполняются несколько раз).
– Приведите примеры циклических алгоритмов. (“Сложение чисел”, “Произведение нескольких чисел”, и др.).
– Какие вы знаете способы записи алгоритмов? (словесная запись, словесно-формульная запись, запись в виде блок-схемы, на языке программирования).
– Сегодня Вы в своих выступлениях представите программы в которых используются циклические алгоритмы с операторами языка Паскаль While, For, Repeat.
3. Обобщение материала.
Цикл – процесс многократного повторения каких-либо действий.
При разработке программы циклической структуры выделяют следующие понятия:
параметр (переменная цикла) – величина, с изменением значения которой связано многократное выполнение цикла;
начальное и конечное значения параметра цикла;
шаг цикла – значение, но которое изменяется параметр цикла при каждом повторении;
действия, повторяющиеся в цикле, называются телом цикла.
Цикл организуют по определенным правилам. Цикл состоит из следующих блоков:
подготовки цикла;
тела цикла;
условия продолжения цикла.
В подготовку цикла входят действия, связанные с заданием исходных значений для параметра цикла.
В тело цикла входят многократно повторяющиеся действия для вычисления искомых величин и подготовка следующего значения параметра цикла.
В условии продолжения цикла определяется необходимость дальнейшего выполнения повторяющихся действий (тела цикла). Если параметр цикла не удовлетворяет поставленному условию, то выполнение цикла прекращается.
Язык Паскаль имеет три оператора, с помощью которых можно организовать циклическую структуру.
Цикл с предусловием While (Пока).
Цикл с постусловием Repeat (До).
Цикл с параметром For (Для).
Обратите внимание, что можно использовать любой оператор цикла. Есть ограничения в использовании цикла For, шаг изменения параметра цикла должен быть 1 или -1. Если не известно сколько раз будет выполняться цикл, то используем While или Repeat.
Представление учениками задач с циклами:
Дано натуральное число n. Составьте программу, которая находит сумму цифр этого числа, больших 5.
Program zadacha1;
Var n1, s: integer;
n:longint;
begin
readln (n);
S:=0;
while n<>0 do
begin
n1:=n mod 10;
If n1>5 then s:=s+n1;
n:=n div 10;
end;
writeln (‘Сумма цифр больших 5’, s);
readln;
end.
Даны действительное число а, натуральное число n. Составьте программу, которая вычисляет произведение a*(a+1)…(a+n-1).
Program zadacha2;
Var i, n, a, p: integer;
Begin
Readln (a);
Readln (n);
P:=a;
For I = 1 to n-1 do
P:= p*(a+i);
Writeln (p);
readln;
end.
Напишите программу, которая позволит определить количество дней в течении заданного периода, в которые не было прибыли, и максимальную выручку за этот период. Прибыль за день определяется как разность «выручка»-1000 (рублей) (если эта разность отрицательна, считать прибыль равной 0). На выходе программа получает период N (1<=N<=31)- количество дней, в течении которых проводилась запись выручки, затем для каждого вводится выручка ( в рублях).
Program zadacha3;
Var n,k,I,p,: integer;
a: array [1..1000] of integer;
max: integer;
Begin
Write (‘vvedite period’);
Readln (n);
K:=0;
max:=0;
For i:= 1 to n do
Begin
Write (‘vvedite viruchku’);
Readln a[i];
P:= (a[i])-1000;
If p<=0 then k:=k+1;
If a[i]> max then max:= a[i];
End;
Writeln(‘max viruchka’ , max ,’rubley’);
Writeln(‘pribili’ ne bilo’ , k , ‘dney’ );
Readln;
End.
4. Дан массив из 30 элементов. Каждый элемент может принимать целочисленные значения от 0 до 1000.Составить программу, которая позволит найти сумму двузначных элементов массива, сумма цифр которых меньше 10.
Program zadacha4;
Var T: array [1..30] of integer;
i,s,k,m: integer;
Begin
For i:=1 to 30 do readln (T[i]);
S:=0;
For i:=1 to 30 do
begin
k:=T[i] mod 10;
m:=T[i] div 10;
if (T[i] <100) and (T[i]>=10) and (m+k<10) then s:=s+T[i];
end;
writeln (s);
end.
Контроль знаний.
Составьте программу, которая находит сумму двузначных нечетных чисел в заданной пользователем последовательности целых чисел. Решение задачи:
Program zadacha5;
var N, S, Max :integer;
begin
S:= 0; K:= 0 max:= 1000;
repeat
readln(N);
if (N mod 2 = 1) and ((N div 10) >=1) and ((N div 10) <= 9) then S:= S + N;
K:= K + 1;
if k = 1000 then break;
until N = 0;
writeln(‘Summa vseh nechetnih dvuznachnih = ‘, S’);
readln;
end.
Объяснение шагов исполнения программы:
S = 0; K = 0; max= 1000;
Начало цикла:
1 шаг
Вводим N = 23
(23 mod 2 = 1) и ((23 div 10) >=1) и ((23 div 10) <= 9) (Да)
(1 = 1) и ((2 >= 1) и (2 <= 9)) (Да)
S = 0 + 23
K= 1
1 = 1000(Нет)
23 = 0(Нет) Поэтому делаем следующий шаг
2 шаг
Вводим N = 32
(32 mod 2 = 1) и ((32 div 10) >=1) и ((32 div 10) <= 9) (Да)
(0 = 1) и ((3 >= 1) и (3 <= 9)) (Нет)
K= 2
2 = 1000(Нет)
32 = 0(Нет) Поэтому делаем следующий шаг
3 шаг
Вводим N = 11
(11 mod 2 = 1) и ((11 div 10) >=1) и ((11 div 10) <= 9) (Да)
(1 = 1) и ((1 >= 1) и (1 <= 9)) (Нет)
K= 3
S = 23 + 11
3 = 1000(Нет)
11 = 0(Нет) Поэтому делаем следующий шаг
4 шаг
Вводим N = 0
(0 mod 2 = 1) и ((23 div 10) >=1) и ((23 div 10) <= 9) (Да)
(0 = 1) и ((0 >= 1) и (0 <= 9)) (Нет)
K= 4
4= 1000(Нет)
0 = 0(да) Поэтому заканчиваем цикл.
Выводим S =34
6. Подведение итогов урока. Домашнее задание.
Источник
Циклы в Pascal: repeat, while, for.
Вы уже знаете, что существует три вида алгоритмов: линейный, разветвляющийся и циклический. Вы уже знаем, как реализовывать линейные и разветвляющиеся алгоритмы на Паскале. Приступим к изучению последнего типа алгоритмов.
В языке Pascal, как и в большинстве языков программирования, существует три типа циклических конструкций.
Любой цикл состоит из тела и заголовка. Тело цикла – это набор повторяющихся операторов, а условие – это логическое выражение, в зависимости от результата которого и происходит повторное выполнение цикла.
Возьмем одну задачу, которую будем решать, используя различные виды циклов.
Задача 1. Вывести все цифры от 1 до числа, введенного с клавиатуры.
While, или цикл с предусловием
while – это цикл, в котором условие стоит перед телом. Причем тело цикла выполняется тогда и только тогда, когда условие true; как только условие становится false, выполнение цикла прекращается.
While имеет формат: while do ; {Пока … делай ….}
Данный цикл подходит только для одного оператора, если же вы хотите использовать несколько операторов в своем коде, вам следует заключить их в операторные скобки – begin и end; .
Решение задачи.
- program example_while;
- var
- i, N: integer; { объявляем переменные }
- begin
- i := 1; { Присваиваем i значение 1 }
- readln(N); { Считываем последнее число }
- while i
- begin {Открываем операторные скобки}
- write(i, ‘ ‘); {Выводим i}
- Inc(i); {увеличиваем i на один.}
- end; { закрываем скобки }
- end.
Repeat, или цикл с постусловием
Repeat – полная противоположность while. Repeat – это цикл, в котором условие стоит после тела . Причем оно выполняется тогда и только тогда, когда результат условия false; как только логическое выражение становится true, выполнение цикла прекращается.
Repeat имеет формат:
repeat { повторяй … }
;
;
…
until {до…}
Begin и end не требуются.
Решение задачи.
- program example_repeat;
- var
- i, N: integer;{ объявляем переменные }
- begin
- i := 1; { Присваиваем i значение 1 }
- readln(N); { Считываем последнее число }
- repeat {после repeat не требуется begin и end }
- write(i, ‘ ‘); {Выводим i}
- Inc(i); {увеличиваем i на один.}
- until i = N + 1; {Например,i = 11,а N = 10. Цикл прекратится, так условие стало true.}
- end.
For, или цикл с параметром
For – это цикл, в котором тело выполняется заданное количество раз.
Существует две формы записи этого цикла:
Первая форма
for := to do ;
После каждой итерации значение будет увеличиваться на 1.
– это начальное значение счетчика. Это может быть переменная или число.
: как только значение станет больше , выполнение цикла прекратится.
Если требуется написать несколько операторов в теле цикла, используем begin и end.
И , и , и – переменные целого типа.
Чаще всего в качестве счетчика используется переменная i.
Вторая форма
- for := downto do ;
После каждой итерации значение будет уменьшатся на 1.
– это начальное значение счетчика.
: как только значение станет меньше , выполнение цикла прекратится.
Два важных примечания:
- Цикл повторяется, пока значение значение счетчика лежит в отрезке [значение ; конечное_значение].
- Изменять значение счетчика внутри тела нельзя!
Решение задачи:
- program example_for;
- var
- i, N: integer;
- begin
- read(N); {предположим, что мы ввели 10}
- for i := 1 to N do write(i, ‘ ‘); {количество итераций – 10 – 1 + 1 = 10}
- end.
Давайте разберем несколько задач.
For1. Даны целые числа K и N (N > 0). Вывести N раз число K.
Организовываем простой цикл от 1 до требуемого числа.
- program for1;
- var
- K, N, i: integer;
- begin
- read(K, N);
- for i := 1 to N do write(K, ‘ ‘); {Пишем К через пробел }
- end.
For2. Даны два целых числа A и B (A
Так как A – + 1.
- program for2;
- var
- A, B, i, count: integer;
- begin
- read(A, B);
- for i := A to B do write(i, ‘ ‘); {выписываем числа от меньшего к большему}
- count := B – A + 1; {считаем количество чисел}
- writeln;
- write( ‘Количество чисел – ‘, count);
- end.
For9. Даны два целых числа A и B (A
Организовываем такой же цикл, как и в предыдущей задаче, но одновременно суммируем квадраты всех чисел. Чтобы высчитать квадрат, используем функцию Sqr.
- program for9;
- var
- A, B, i, S: integer;
- begin
- read(A, B);
- S := 0; {PascalABC делает это автоматически, но если у вас другой компилятор советуем обнулять переменные вручную}
- for i := A to B do S := S + Sqr(i); {складываем все квадраты}
- writeln;
- write( ‘Сумма квадратов – ‘, S);
- end.
For13°. Дано целое число N (> 0). Найти значение выражения 1.1 – 1.2 + 1.3 – … (N слагаемых, знаки чередуются). Условный оператор не использовать.
Для того, чтобы поменять знак, каждую итерацию цикла меняем значение специальной переменной на противоположное.
- program for13;
- var
- N, A, i: integer;
- S: real;
- begin
- Write(‘N = ‘);
- readln(N);
- S := 1.1;
- A := 1; {Сначала положительное}
- for i := 2 to N do {первую итерацию цикла мы уже произвели, поэтому начинаем отсчет с 2}
- begin
- A := -A; {Теперь отрицательное}
- S := S + A * (1 + i / 10); {Складываем}
- end;
- Writeln(S:5:1); {Отдадим под дробную часть одно знакоместо}
- end.
While1°. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A.
Каждый раз вычитаем B из А, пока А – В >= 0.
- program while1;
- var
- A, B: integer;
- begin
- readln(A,B);
- while (A – B) >= 0 do A := A – B; {Пока разница положительная, вычитаем. Необходимо предусмотреть вариант с кратностью А и B, поэтому >=}
- write(A);
- end.
While4°. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести True, если не является – вывести False.
Действуем следующим образом: пока N делится нацело на три, делим N нацело. Затем, если N = 1 – число является степенью тройки; если N 1, тогда число – не степень тройки. Для того чтобы решить эту задачу, требуется знать, что такое div и mod, и как работают логические выражения.
- program while4;
- var
- N: integer;
- begin
- readln(N);
- while N mod 3 = 0 do N := N div 3; {Пока остаток от деления на три равен нулю, делим N нацело }
- writeln(N = 1); {логическое выражение}
- end.
Repeat .
Источник
Урок 33. Программирование циклов с заданным числом повторений.
Практическая работа № 9. Решение задач по разработке и выполнению программ в среде программирования Паскаль
Ключевые слова:
• while (цикл-ПОКА)
• repeat (цикл-ДО)
• for (цикл с параметром)
3.5.1. Программирование циклов с заданным условием продолжения работы
Цикл с заданным условием продолжения работы (цикл-ПОКА) программируется в языке Паскаль с помощью оператора while. Общий вид оператора:
while <условие> do <оператор>
Здесь:
<условие> – логическое выражение; пока оно истинно, выполняется тело цикла;
<оператор> – простой или составной оператор, с помощью которого записано тело цикла.
Запишем на языке Паскаль рассмотренный в п. 2.4.3 (пример 14) алгоритм получения частного q и остатка r от деления натурального числа х на натуральное число y без использования операции деления.
Каким будет результат выполнения программы при х = -10 и у = 3? Как вы можете объяснить этот результат?
3.5.2. Программирование циклов с заданным условием окончания работы
Цикл с заданным условием окончания работы (цикл-ДО) программируется в языке Паскаль с помощью оператора repeat. Общий вид оператора:
repeat <оператор1; оператор2; …; > until <условие>
Здесь:
<оператор1>; <оператор2>; … – операторы, образующие тело цикла;
<условие> – логическое выражение; если оно ложно, то выполняется тело цикла.
Запишем на языке Паскаль рассмотренный в п. 2.4.3 (пример 17) алгоритм решения задачи о графике тренировок спортсмена.
3.5.3. Программирование циклов с заданным числом повторений
Цикл с заданным числом повторений (цикл-ДЛЯ) программируется в языке Паскаль с помощью оператора for. Его общий вид:
for <параметр>:=<начальное_значение> to <конечное_значение> do <оператор>
Здесь:
<параметр> – переменная целого типа;
<начальное_значение> и <конечное_значение> – выражения того же типа, что и параметр, вычисляемые перед началом цикла;
<оператор> – простой или составной оператор – тело цикла.
При выполнении этого оператора после каждого выполнения тела цикла происходит увеличение на единицу параметра цикла; условием выхода из цикла является превышение параметром конечного значения.
Запишем на языке Паскаль рассмотренный в п. 2.4.3 (пример 19) алгоритм вычисления степени с натуральным показателем n для любого вещественного числа а.
3.5.4. Различные варианты программирования циклического алгоритма
Особенностью программирования является то, что для решения одной и той же задачи могут быть созданы разные программы. Вы могли убедиться в этом, программируя ветвления. Рассмотрим пример, показывающий, что и циклический алгоритм может быть запрограммирован разными способами.
Пример. Напишем программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введён ноль) и подсчёт количества введённых положительных и отрицательных чисел.
Так как здесь в явном виде задано условие окончания работы, то воспользуемся оператором repeat.
Имеющееся условие окончания работы можно достаточно просто преобразовать в условие продолжения работы – работа продолжается, пока n≠0. И мы можем воспользоваться оператором while:
В рассмотренном примере число повторений тела цикла заранее не известно, и поэтому оператор for здесь применить нельзя. Если число повторений тела цикла известно, то лучше воспользоваться оператором for. Вместе с тем любая задача, в которой число повторений тела цикла определено заранее, может быть запрограммирована с помощью любого из трёх рассмотренных выше циклов.
САМОЕ ГЛАВНОЕ
В языке Паскаль имеются три вида операторов цикла: while (цикл-ПОКА), repeat (цикл-ДО), for (цикл с параметром). Если число повторений тела цикла известно, то лучше воспользоваться оператором for; в остальных случаях используются операторы while и repeat.
Вопросы и задания
1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Используйте эти материалы при подготовке ответов на вопросы и выполнении заданий.
2. Дана последовательность операторов:
Сколько раз будет повторен цикл и какими будут значения переменных a, b, s после исполнения этой последовательности операторов?
3. Требовалось написать программу вычисления факториала числа n (факториал числа n есть произведение всех целых чисел от 1 до n). Программист торопился и написал программу неправильцо. Ниже приведён фрагмент его программы, в котором содержатся пять ошибок:
Найдите ошибки. Допишите необходимые операторы и выполните программу на компьютере.
4. Проанализируйте следующий цикл:
while a<b do
с:=а=b;
В чём его особенность?
5. Запишите на языке Паскаль программы решения задач № 25-29 из § 2.4. Используйте оператор while.
6. Дана последовательность операторов:
Сколько раз будет повторён цикл и какими будут значения переменных а, b, s после исполнения этой последовательности операторов?
7. Напишите программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введён ноль) и подсчёт суммы и среднего арифметического введённых положительных чисел. Используйте оператор repeat.
8. Напишите программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введён ноль) и определение максимального (наибольшего) из введённых чисел. Используйте оператор repeat.
9. Напишите программу вычисления наибольшего общего делителя двух целых чисел:
а) используйте оператор repeat;
б) используйте оператор while.
10. Сколько раз будет выполнен цикл?
а) for i:=0 to 15 do s:=s+l;
б) for i:=10 to 15 do s:=s+l;
в) for i:=-l to 1 do s:=s+l;
г)for i:=10 to 10 do s:=s+l;
д)k:=5;
for i:=k-l to k+1 do s:=s+l;
11. Напишите программу, которая 10 раз выводит на экран ваши имя и фамилию.
12. Напишите программу, выводящую на экран изображение шахматной доски, где чёрные клетки изображаются звёздочками, а белые – пробелами. Рекомендуемый вид экрана после выполнения программы:
13. Напишите программу, которая вычисляет сумму:
а) первых n натуральных чисел;
б) квадратов первых п натуральных чисел;
в) всех чётных чисел в диапазоне от 1 до n;
г) всех двузначных чисел.
14. Напишите программу, которая генерирует 10 случайных чисел в диапазоне от 1 до 20, выводит эти числа на экран и вычисляет их среднее арифметическое.
15. Запишите на языке Паскаль программы решения задач № 32, 33 из § 2.4. Используйте оператор for.
16. Напишите программу, которая выводит на экран таблицу степеней двойки (от нулевой до десятой). Рекомендуемый вид экрана после выполнения программы:
17. Напишите программу, которая выводит на экран таблицу умножения на n (n – целое число в диапазоне от 2 до 10, вводимое с клавиатуры).
18. Какой из трёх рассмотренных операторов цикла является, по вашему мнению, основным, т. е. таким, что им можно заменить два других? Обоснуйте свою точку зрения.
Электронное приложение к уроку
Презентация «Программирование циклических алгоритмов»
Презентация «Программирование циклических алгоритмов» (Open Document Format)
Свободное программное обеспечение:
- PascalABC
https://pascalabc.net/
Cкачать материалы урока
Источник
Дата: «__» __________ 20__г. класс ___________
На уроке должно быть «много» детей и «мало» учителя…
В. Н. Сорока-Росинский
Тема: «Решение задач на языке Паскаль с использованием операторов цикла»
Оборудование: компьютер, проектор, мультимедийная доска.
Программное обеспечение: ОС Windows 7 Professional, Microsoft Office (PowerPoint), MyTest; среда программирования ABC Pascal.
Педагогическая технология: «Обучение в сотрудничестве»
Прием: «Организация обучения в сотрудничестве в малых группах: индивидуальная работа в команде»
Тип урока: урок развивающего контроля
Развивающие методы и формы активизации познавательной деятельности обучающихся:
Метод Форма | проблемный | Алгоритмический | Программированный |
Индивидуально-обособленная | + | + | + |
Групповая | + | + | + |
Коллективная форма | + | + | + |
Методы и формы контроля
Метод Форма | самооценка | самопроверка | взаимопроверка |
Коллоквиум | |||
Рефлексивный | + | + | + |
Формирование УУД /регулятивные/
Регулятивные | На данном уроке: | Приемы формирования |
Способность личности к целеполаганию и построению жизненных планов во временной перспективе |
|
|
Развитие регуляции учебной деятельности |
|
предметом оценивания должны стать учебные действия учащегося их результаты, способы действия, способы учебного сотрудничества и собственные возможности осуществления деятельности |
Саморегуляция эмоциональных и функциональных состояний |
|
|
Цель
Деятельностная: формирование способности учащихся к осуществлению контрольной функции.
Образовательная: контроль и самоконтроль изученных понятий и алгоритмов разделу «Циклы»
Задачи
- Способствование восстановлению в памяти ранее изученного материала, который необходим для понимания нового материала, для успешной сдачи ОГЭ.
- Способствование формированию способности к принятию решения и ответственности за его последствия.
- Способствование активизации мыслительной деятельности учащихся, тем самым, мотивируя его на самостоятельную познавательную деятельность.
- Проверка практических умений и навыков обучающихся: применение разных видов циклов for…to…do; while; repeat…until для решения практических задач; находить программные ошибки; обобщать задачи по классам; видеть программный порядок, синтаксис; использования среды программирования ABC паскаль.
- Совершенствование навыков самостоятельной работы в группе, умения решать коллективную задачу.
- Развитие действий внутреннего контроля: использование приемов совместно-разделенной деятельности, организация само- и взаимоконтроля, формирование рефлексивности оценки и самооценки.
- Формирование у учащихся умения анализировать причины неудач в выполнении деятельности и ставить задачи на освоение тех звеньев действия, которые обеспечат его правильное выполнение.
- Способствование освоению обучающимися коммуникативных умений, а именно, умения определять свою личную позицию в группе, аргументировать свою точку зрения, формирование корректного отношения к чужому мнению, оказывать в сотрудничестве необходимую взаимопомощь.
Подготовительный этап
- Разделить класс на подгруппы (произвольно).
- Назначить консультантов.
- Подготовить раздаточный материал.
- Установить необходимое ПО.
Структура урока
- Мотивирование к учебной деятельности, 3 минуты.
- Постановка учебной задачи, 3минуты.
- Интеллектуально-преобразовательная деятельность, 25 минут.
- Рефлексия учебной деятельности на уроке (итог), 10 минут.
- Подведение итогов, 4 минуты.
Ход урока
- Мотивирование к учебной деятельности
Здравствуйте.
Изучение основ программирования связано с формированием целого ряда умений и навыков (организация деятельности, планирование, многих приемов умственной деятельности и т.д.), а главное приобщает вас к рациональному, творческому труду, готовит к будущей профессиональной деятельности, вы познаете азы профессии программиста (программирование бухгалтерских программ, офисное программирование – кадровые программы, обработка заказов, программирование дизайна, инженерное программирование, программирование компьютерных программ для пользователей, программирование искусственного разума и пр.). Изучаемая тема – возможно, это первые шаги к будущей профессии.
/Демонстрация презентации к уроку/
- Постановка учебной задачи
/по ходу работы ребята заполняют рейтинговые карты/
- Подготовительный этап:
Делим аудиторию на группы /по тематике: «Цикл с параметром», «Цикл с условием»/
for i:=1 to 3 do | for i:=1 to 3 do |
for i:=5 downto 1 do | for i:=5 downto 1 do |
for i:=1 to n do | for i:=1 to n do |
for i:=n downto 2 do | for i:=n downto 2 do |
for i:=100 downto 1 do | for i:=100 downto 1 do |
for i:=n downto 1 do | for i:=n downto 1 do |
i:=1; While x>6 do x:= x + 1 | i:=1; While x>6 do x:= x + 1 |
while (a | while (a |
i:=0; while n 0 do | i:=0; while n 0 do |
a := 4; b := 6; while a | a := 4; b := 6; while a |
a := 4; b := 6; repeat a := a + b; until a > b; | a := 4; b := 6; repeat a := a + b; until a > b; |
a := 4; b := 6; repeat a := a + b; until a | a := 4; b := 6; repeat a := a + b; until a |
Определяем эксперта (помогают учителю проверять и оценивать работу в группах)
/кто быстрее даст ответ на вопрос/
Сколько раз выполнится цикл и чему равно значение переменной а?
a := 1;
for i:=1 to 3 do a := a+1;
/3 раза, а=4/
- Интеллектуально-преобразовательная деятельность
/Ребята в группах получают задания, сами распределяют между собой, кто за выполнение какого задания будет отвечать/
Уровень А
Задание 1
Ответь на вопросы теста «Циклы» (повторение «Подготовка к ОГЭ»)
Ответы: 1.1; 2.2; 3.3; 4.2; 5.1
Задание 2
Написать программу, используя три вида циклов (цикл с параметром, цикл с постусловием, цикл с предусловием), в результате выполнения которой будет выведено значение 7!.
program FACT_1; Uses Crt; var i, fact: integer; begin fact:=1; for i:=1 to 7 do begin fact:= fact*i; end; writeln(fact:1); end. | program FACT_1; Uses Crt; var i, fact: integer; begin i:=1; fact:=1; repeat begin i := i + 1; fact:= fact*i; end; until i=7; writeln(fact:1); end. | program FACT_1; Uses Crt; var i, fact: integer; begin i:=1; fact:=1; while i begin fact:= fact*i; i := i + 1; end; writeln(fact:1); end. |
Уровень В
Задание 1
По программе определить исходную задачу, записать программный выход.
program zadacha;
const n=5;
var i, f: integer;
begin
i :=1; f:=1;
while i
begin
f:= f*i;
i:= i + 1;
end;
writeln(f);
end.
/Вычислите 5! используя оператор цикла с предусловием. Ответ 120/
program zadacha;
uses Crt;
const n=2;
var i, S: integer;
begin
i:=1; S:=1;
while i
begin
St:= 5*S;
i := i + 1;
end;
writeln(S);
end.
/Вычислите 52 используя оператор цикла с предусловием. Ответ 25/
program zadacha;
uses Crt;
var i, i2,i3: integer;
begin
for i:=3 downto 1 do
begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
end.
/Вывести на экран, в обратном порядке квадраты и кубы целых чисел от 3 до 1. /
Ответ
3 9 27
2 4 8
1 1 1
Задание 2
Собери программу, сформулируй задачу, что получится в результате запуска программы (докажи!)
program zadacha; |
uses crt; |
var i,n: integer; s: real; |
begin |
s:=0; writeln (‘Введите n’); |
readln (n); |
for i:=1 to n do |
s:=s+1/i; |
writeln(s:0:2); |
end. |
/Написать программу для вычисления суммы ряда:
, проверить при n = 2. Ответ 1,50/
Задание 3
Исправь программные ошибки, сформулировать задачу, проверить.
С ошибкой | Без ошибок | Задача |
1 | ||
Program Z_1; UsesCrt; Var k,n,p1,p2,s : Integer; Begin Writeln(‘Введите целое число’); Readln(n); For k:=10 To 99 Do p1:=kDiv10; p2:=kMod10; s:=p1+p2; If s=n Then Writeln(k); End End. | Program Z_1; Uses Crt; Var k,n,p1,p2,s : Integer; Begin Writeln(‘Введите целое числ’); Readln(n); For k:=10 To 99 Do Begin p1:=k Div 10; p2:=k Mod 10; s:=p1+p2; If s=n Then Writeln(k); End; Readln; End. | Составьте программу, которая будет выводить из чисел от 10 до 99 только те, сумма цифр которых будет равна вводимому с клавиатуры числу n. Проверка Введите целое число 4 13 22 31 40 |
2 | ||
program 2Z; Uses Crt; var i,St,: integer; s,y: real; begin s:=1; St:=1, Fact:=1; for i:=1 to 2 do begin Fact:=Fact*i; St:=St*2; S:=S+fact/st; Writeln (‘cos(‘,S:0:0′)’); begin y:= cos(s); Writeln (y:0:2, ‘ рад’); end; end. | program Z_2; Uses Crt; var i,St, Fact: integer; s,y: real; begin s:=1; St:=1; Fact:=1; for i:=1 to 2 do begin Fact:=Fact*i; St:=St*2; S:=S+fact/st; end; Writeln (‘cos(‘,S:0:0,’)’); begin y:= cos(s); Writeln (y:0:2, ‘ рад’); end; end. | Составьте программу для нахождения сумы ряда и проверьте ее работоспособность на компьютере. Ответ cos(2)
|
Уровень С
/Индивидуальные задания/
Задание 1
// Генерация больших простых чисел Uses Crt; var i,j,r,k: longint; {целый тип} f: boolean; {логический тип} d: longint; begin k:=0; {счетчик} d:=Random(1000000000); {генератор случайных чисел} for i:=d to d+1000 do {повторить определенную последовательность операторов в разных частях программы; заполнение массива} begin f:=true; {переменной присвоить значение “Истина”} j:=2; r:=round(sqrt(i)); {округляет число с плавающей запятой до целого значени} while f and (j if i mod j = 0 then f:=false {определение простого числа; если число не простое, то присвоить значение “Ложь”} else j:=j+1; {иначе, проверять следующее число} if f then begin write(i,’ ‘); Inc(k); {увеличение переменной на…} if k mod 5 = 0 then writeln; end; end; end. | Написать программу, которая будет выводить на экран произвольно большие простые числа в указанном диапазоне. |
Program Zadacha; Uses Crt; var m,v,p1,p2:real; Begin Begin m:=600; v:=400; p1:= 0.92; p2:= m/v; end; if p2>p1 then Writeln (‘Тело потонет в нефти, так как плотность тела больше плотности нефти, она равна ‘,p2:0:2); end. | Тело массой 600г имеет объем 400 см3. Потонет ли тело в нефти? |
Задание 2
Ответь на вопросы теста «Циклы» /Задания ОГЭ /
Определить значение переменной k после выполнения следующих фрагментов программы:
- k:=2; i:=5;
While i>2 do i:=i-1; k:=k+i*i;
- 31
- 13
- k:=2; i:=2;
Repeat i:=2*I; k:=k+i
Until i>5
- 14
- зацикливание
- f:=0; i:=0;
While i>2 do i:=i+1; f:=f+i*i;
- 5
- f:=1; i:=2;
Repeat i:= 2*I; f:=f+i
Until i>5
- 13
- зацикливание
- a := 4; b := 6;
while a
- 6
- зацикливание
- a := 4; b := 6;
repeat a := a + b; until a
- 6
- зацикливание
- a := 1;
for i:=1 to 3 do a := a+1;
- 4
- 1
- a := 1;
for i:=1 downto 3 do a := a+1;
- 1
- 3
- Укажите процесс, который демонстрирует работу циклического алгоритма:
- движение часовой стрелки
- направо пойдешь – коня потеряешь, налево пойдешь – ничего не найдешь
- Требуется подсчитать сумму натуральных чисел от 5 до 125. Какое условие нужно использовать в цикле While:
- i>125
- i
/Во время работы ребята помогают друг другу, эксперты тщательно проверяют результаты работы, сверяются с учителем, заполняют рейтинговые карты/
№п/п | Ф.И. | Уровень А | Уровень В | Уровень С | Оценка | Индивидуальные задания | Работа в группе |
1 | |||||||
2 | |||||||
3 | |||||||
4 | |||||||
5 | |||||||
6 | |||||||
7 | |||||||
8 | |||||||
9 | |||||||
10 | |||||||
11 | |||||||
12 |