Циклы задачи 9 класс

Циклы задачи 9 класс thumbnail

Циклы в решении задач на Паскале

Цель: Обобщить и проконтролировать знание учащихся по теме «Циклические алгоритмы на языке Паскаль, используя While, Repeat, For».

Задачи:

  • Обобщить знания учащихся по теме «Операторы цикла с предусловием, с постусловием, с параметром»;

  • Проконтролировать знания и умения использовать различные операторы цикла для решения задач;

  • Развить умение учащихся в выборе оптимального решения для задач циклической структуры.

Методы обучения: объяснительно-иллюстративный, исследовательский, практический, дифференцированный.

Вид урока: обобщающий.

Оборудование и программное обеспечение:

  • компьютер;

  • проектор;

  • операционная система;

  • язык программирования Паскаль.

План урока:

  1. Организационный момент.

  2. Актуализация знаний.

  3. Обобщение материала.

  4. Выступление учеников с разработанными программами.

  5. Контроль знаний.

  6. Подведение итогов урока. Домашнее задание.

Ход урока

1. Организационный момент

Приветствие учителя.

2. Актуализация начальных знаний учащихся.

  • – Понятие циклический алгоритм мы знаем. Давайте вспомним, что мы понимали под понятием цикла?

  • – Давайте вспомним, что характерно для циклического алгоритма? (Команды, входящие в цикл выполняются несколько раз).

  • – Приведите примеры циклических алгоритмов. (“Сложение чисел”, “Произведение нескольких чисел”, и др.).

  • – Какие вы знаете способы записи алгоритмов? (словесная запись, словесно-формульная запись, запись в виде блок-схемы, на языке программирования).

  • – Сегодня Вы в своих выступлениях представите программы в которых используются циклические алгоритмы с операторами языка Паскаль While, For, Repeat.

3. Обобщение материала.

Цикл – процесс многократного повторения каких-либо действий.

При разработке программы циклической структуры выделяют следующие понятия:

  • параметр (переменная цикла) – величина, с изменением значения которой связано многократное выполнение цикла;

  • начальное и конечное значения параметра цикла;

  • шаг цикла – значение, но которое изменяется параметр цикла при каждом повторении;

  • действия, повторяющиеся в цикле, называются телом цикла.

Цикл организуют по определенным правилам. Цикл состоит из следующих блоков:

  • подготовки цикла;

  • тела цикла;

  • условия продолжения цикла.

В подготовку цикла входят действия, связанные с заданием исходных значений для параметра цикла.

В тело цикла входят многократно повторяющиеся действия для вычисления искомых величин и подготовка следующего значения параметра цикла.

В условии продолжения цикла определяется необходимость дальнейшего выполнения повторяющихся действий (тела цикла). Если параметр цикла не удовлетворяет поставленному условию, то выполнение цикла прекращается.

Язык Паскаль имеет три оператора, с помощью которых можно организовать циклическую структуру.

  1. Цикл с предусловием While (Пока).

  2. Цикл с постусловием Repeat (До).

  3. Цикл с параметром For (Для).

Обратите внимание, что можно использовать любой оператор цикла. Есть ограничения в использовании цикла For, шаг изменения параметра цикла должен быть 1 или -1. Если не известно сколько раз будет выполняться цикл, то используем While или Repeat.

  1. Представление учениками задач с циклами:

    1. Дано натуральное число 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.

  1. Даны действительное число а, натуральное число 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.

  1. Напишите программу, которая позволит определить количество дней в течении заданного периода, в которые не было прибыли, и максимальную выручку за этот период. Прибыль за день определяется как разность «выручка»-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.

  1. Контроль знаний.

Составьте программу, которая находит сумму двузначных нечетных чисел в заданной пользователем последовательности целых чисел. Решение задачи:

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; .

Читайте также:  Сколько должен длиться цикл у женщин

Решение задачи.

  1. program example_while;
  2. var
  3. i, N: integer; { объявляем переменные }
  4. begin
  5. i := 1; { Присваиваем i значение 1 }
  6. readln(N); { Считываем последнее число }
  7. while i
  8. begin {Открываем операторные скобки}
  9. write(i, ‘ ‘); {Выводим i}
  10. Inc(i); {увеличиваем i на один.}
  11. end; { закрываем скобки }
  12. end.

Repeat, или цикл с постусловием

Repeat – полная противоположность while. Repeat – это цикл, в котором условие стоит после тела . Причем оно выполняется тогда и только тогда, когда результат условия false; как только логическое выражение становится true, выполнение цикла прекращается.

Repeat имеет формат:

repeat { повторяй … }

;

;

until {до…}

Begin и end не требуются.

Решение задачи.

  1. program example_repeat;
  2. var
  3. i, N: integer;{ объявляем переменные }
  4. begin
  5. i := 1; { Присваиваем i значение 1 }
  6. readln(N); { Считываем последнее число }
  7. repeat {после repeat не требуется begin и end }
  8. write(i, ‘ ‘); {Выводим i}
  9. Inc(i); {увеличиваем i на один.}
  10. until i = N + 1; {Например,i = 11,а N = 10. Цикл прекратится, так условие стало true.}
  11. end.

For, или цикл с параметром

For – это цикл, в котором тело выполняется заданное количество раз.

Существует две формы записи этого цикла:

Первая форма

for := to do ;

После каждой итерации значение будет увеличиваться на 1.

– это начальное значение счетчика. Это может быть переменная или число.

: как только значение станет больше , выполнение цикла прекратится.

Если требуется написать несколько операторов в теле цикла, используем begin и end.

И , и , и – переменные целого типа.

Чаще всего в качестве счетчика используется переменная i.

Вторая форма

  1. for := downto do ;

После каждой итерации значение будет уменьшатся на 1.

– это начальное значение счетчика.

: как только значение станет меньше , выполнение цикла прекратится.

Два важных примечания:

  1. Цикл повторяется, пока значение значение счетчика лежит в отрезке [значение ; конечное_значение].
  2. Изменять значение счетчика внутри тела нельзя!

Решение задачи:

  1. program example_for;
  2. var
  3. i, N: integer;
  4. begin
  5. read(N); {предположим, что мы ввели 10}
  6. for i := 1 to N do write(i, ‘ ‘); {количество итераций – 10 – 1 + 1 = 10}
  7. end.

Давайте разберем несколько задач.

For1. Даны целые числа K и N (N > 0). Вывести N раз число K.

Организовываем простой цикл от 1 до требуемого числа.

  1. program for1;
  2. var
  3. K, N, i: integer;
  4. begin
  5. read(K, N);
  6. for i := 1 to N do write(K, ‘ ‘); {Пишем К через пробел }
  7. end.

For2. Даны два целых числа A и B (A

Так как A – + 1.

  1. program for2;
  2. var
  3. A, B, i, count: integer;
  4. begin
  5. read(A, B);
  6. for i := A to B do write(i, ‘ ‘); {выписываем числа от меньшего к большему}
  7. count := B – A + 1; {считаем количество чисел}
  8. writeln;
  9. write( ‘Количество чисел – ‘, count);
  10. end.

For9. Даны два целых числа A и B (A

Организовываем такой же цикл, как и в предыдущей задаче, но одновременно суммируем квадраты всех чисел. Чтобы высчитать квадрат, используем функцию Sqr.

  1. program for9;
  2. var
  3. A, B, i, S: integer;
  4. begin
  5. read(A, B);
  6. S := 0; {PascalABC делает это автоматически, но если у вас другой компилятор советуем обнулять переменные вручную}
  7. for i := A to B do S := S + Sqr(i); {складываем все квадраты}
  8. writeln;
  9. write( ‘Сумма квадратов – ‘, S);
  10. end.

For13°. Дано целое число N (> 0). Найти значение выражения 1.1 – 1.2 + 1.3 – … (N слагаемых, знаки чередуются). Условный оператор не использовать.

Для того, чтобы поменять знак, каждую итерацию цикла меняем значение специальной переменной на противоположное.

  1. program for13;
  2. var
  3. N, A, i: integer;
  4. S: real;
  5. begin
  6. Write(‘N = ‘);
  7. readln(N);
  8. S := 1.1;
  9. A := 1; {Сначала положительное}
  10. for i := 2 to N do {первую итерацию цикла мы уже произвели, поэтому начинаем отсчет с 2}
  11. begin
  12. A := -A; {Теперь отрицательное}
  13. S := S + A * (1 + i / 10); {Складываем}
  14. end;
  15. Writeln(S:5:1); {Отдадим под дробную часть одно знакоместо}
  16. end.

While1°. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A.

Каждый раз вычитаем B из А, пока А – В >= 0.

  1. program while1;
  2. var
  3. A, B: integer;
  4. begin
  5. readln(A,B);
  6. while (A – B) >= 0 do A := A – B; {Пока разница положительная, вычитаем. Необходимо предусмотреть вариант с кратностью А и B, поэтому >=}
  7. write(A);
  8. end.

While4°. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести True, если не является – вывести False.

Действуем следующим образом: пока N делится нацело на три, делим N нацело. Затем, если N = 1 – число является степенью тройки; если N 1, тогда число – не степень тройки. Для того чтобы решить эту задачу, требуется знать, что такое div и mod, и как работают логические выражения.

  1. program while4;
  2. var
  3. N: integer;
  4. begin
  5. readln(N);
  6. while N mod 3 = 0 do N := N div 3; {Пока остаток от деления на три равен нулю, делим N нацело }
  7. writeln(N = 1); {логическое выражение}
  8. 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.

Педагогическая технология: «Обучение в сотрудничестве»

Прием: «Организация обучения в сотрудничестве в малых группах: индивидуальная работа в команде»

Тип урока: урок развивающего контроля

Развивающие методы и формы активизации познавательной деятельности обучающихся:

Метод

Форма

проблемный

Алгоритмический

Программированный

Индивидуально-обособленная

+

+

+

Групповая

+

+

+

Коллективная форма

+

+

+

Методы и формы контроля

Метод

Форма

самооценка

самопроверка

взаимопроверка

Коллоквиум

Рефлексивный

+

+

+

Формирование УУД /регулятивные/

Регулятивные

На данном уроке:

Приемы формирования

Способность личности к целеполаганию и построению жизненных планов во временной перспективе

  • определенность временного интервала достижения целей;
  • проявление активности в достижении поставленных целей
  • использование приемов совместно-разделенной деятельности;
  • организация взаимоконтроля

Развитие регуляции учебной деятельности

  • представление о своих возможностях достижения цели определенной сложности;
  • степень уверенности в своей возможности осуществить определенную деятельность
  • поощрение действий самоорганизации и делегирования их учащемуся;
  • использование групповых коллективных форм работы;
  • развитие действий оценивания;
  • формирование рефлексивности оценки и самооценки;

предметом оценивания должны стать учебные действия учащегося их результаты, способы действия, способы учебного сотрудничества и собственные возможности осуществления деятельности

Саморегуляция эмоциональных и функциональных состояний

  • системная организация личностных особенностей
  • организовывать учебное сотрудничество на основе соблюдения принципов уважения личности учащегося, принятия, доверия, эмпатии и признания индивидуальности каждого ребенка

Цель

Деятельностная: формирование способности учащихся к осуществлению контрольной функции.

Образовательная: контроль и самоконтроль изученных понятий и алгоритмов разделу «Циклы»

Задачи

  1. Способствование восстановлению в памяти ранее изученного материала, который необходим для понимания нового материала, для успешной сдачи ОГЭ.
  2. Способствование формированию способности к принятию решения и ответственности за его последствия.
  3. Способствование активизации мыслительной деятельности учащихся, тем самым, мотивируя его на самостоятельную познавательную деятельность.
  4. Проверка практических умений и навыков обучающихся: применение разных видов циклов for…to…do; while; repeat…until для решения практических задач; находить программные ошибки; обобщать задачи по классам; видеть программный порядок, синтаксис; использования среды программирования ABC паскаль.
  5. Совершенствование навыков самостоятельной работы в группе, умения решать коллективную задачу.
  6. Развитие действий внутреннего контроля: использование приемов совместно-разделенной деятельности, организация само- и взаимоконтроля, формирование рефлексивности оценки и самооценки.
  7. Формирование у учащихся умения анализировать причины неудач в выполнении деятельности и ставить задачи на освоение тех звеньев действия, которые обеспечат его правильное выполнение.
  8. Способствование освоению обучающимися коммуникативных умений, а именно, умения определять свою личную позицию в группе, аргументировать свою точку зрения, формирование корректного отношения к чужому мнению, оказывать в сотрудничестве необходимую взаимопомощь.

Подготовительный этап

  1. Разделить класс на подгруппы (произвольно).
  2. Назначить консультантов.
  3. Подготовить раздаточный материал.
  4. Установить необходимое ПО.

Структура урока

  1. Мотивирование к учебной деятельности, 3 минуты.
  2. Постановка учебной задачи, 3минуты.
  3. Интеллектуально-преобразовательная деятельность, 25 минут.
  4. Рефлексия учебной деятельности на уроке (итог), 10 минут.
  5. Подведение итогов, 4 минуты.

Ход урока

  1. Мотивирование к учебной деятельности

Здравствуйте.

Изучение основ программирования связано с формированием целого ряда умений и навыков (организация деятельности, планирование, многих приемов умственной деятельности и т.д.), а главное приобщает вас к рациональному, творческому труду, готовит к будущей профессиональной деятельности, вы познаете азы профессии программиста (программирование бухгалтерских программ, офисное программирование – кадровые программы, обработка заказов, программирование дизайна, инженерное программирование, программирование компьютерных программ для пользователей, программирование искусственного разума и пр.). Изучаемая тема – возможно, это первые шаги к будущей профессии.

/Демонстрация презентации к уроку/

  1. Постановка учебной задачи

/по ходу работы ребята заполняют рейтинговые карты/

  1. Подготовительный этап:

Делим аудиторию на группы /по тематике: «Цикл с параметром», «Цикл с условием»/

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.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)

  • 0,42 рад

Уровень С

/Индивидуальные задания/

Задание 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 после выполнения следующих фрагментов программы:

  1. k:=2; i:=5;

While i>2 do i:=i-1; k:=k+i*i;

  1. 31
  2. 13
  1. k:=2; i:=2;

Repeat i:=2*I; k:=k+i

Until i>5

  1. 14
  2. зацикливание
  1. f:=0; i:=0;

While i>2 do i:=i+1; f:=f+i*i;

  1. 5
  1. f:=1; i:=2;

Repeat i:= 2*I; f:=f+i

Until i>5

  1. 13
  2. зацикливание
  1. a := 4; b := 6;

while a

  1. 6
  2. зацикливание
  1. a := 4; b := 6;

repeat a := a + b; until a

  1. 6
  2. зацикливание
  1. a := 1;

for i:=1 to 3 do a := a+1;

  1. 4
  2. 1
  1. a := 1;

for i:=1 downto 3 do a := a+1;

  1. 1
  2. 3
  1. Укажите процесс, который демонстрирует работу циклического алгоритма:
  1. движение часовой стрелки
  2. направо пойдешь – коня потеряешь, налево пойдешь – ничего не найдешь
  1. Требуется подсчитать сумму натуральных чисел от 5 до 125. Какое условие нужно использовать в цикле While:
  1. i>125
  2. i

/Во время работы ребята помогают друг другу, эксперты тщательно проверяют результаты работы, сверяются с учителем, заполняют рейтинговые карты/

<

№п/п

Ф.И.

Уровень А

Уровень В

Уровень С

Оценка

Индивидуальные задания

Работа в группе

1

2

3

4

5

6

7

8

9

10

11

12