Презентация "Программирование циклических алгоритмов начала программирования" 9 класс


Подписи к слайдам:
Презентация PowerPoint

  • ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ
  • НАЧАЛА ПРОГРАММИРОВАНИЯ

  • Ключевые слова
  • while ( цикл-ПОКА)
  • repeat (цикл-ДО)
  • for (цикл с параметрами)

  • Программирование циклов с заданным условием продолжения работы
  • Общий вид оператора:
  • while <условие> do <оператор>
  • Здесь:
  • <условие> - логическое выражение; пока оно истинно, выполняется тело цикла;
  • <оператор> - простой или составной оператор, с помощью которого записано тело цикла.
  • Тело цикла
  • Условие
  • да
  • нет

  • да
  • нет
  • Начало
  • Список данных
  • x, y, r, q - цел
  • x, y
  • r:=x
  • q:=0
  • r >=y
  • r:= r - y
  • q:= q +1
  • Конец
  • r, q
  • program n_14;
  • var x, y, q, r: integer;
  • begin
  • writeln ('Частное и остаток');
  • write ('Введите делимое x>>');
  • readln (x);
  • write ('Введите делитель y>>');
  • read (y);
  • r:=x;
  • q:=0;
  • while r>=y do
  • begin
  • r:=r-y;
  • q:=q+1
  • end;
  • writeln ('Частное q=', q);
  • writeln ('Остаток r=', r)
  • end.

  • Программирование циклов с заданным условием окончания работы
  • Общий вид оператора:
  • repeat <оператор1; оператор2; …; > until <условие>
  • Здесь:
  • <оператор1>; <оператор2>; … - операторы, образующие тело цикла;
  • <условие> - логическое выражение; если оно ложно, то выполняется тело цикла.
  • Тело цикла
  • Условие
  • да
  • нет

  • program n_15;
  • var i: integer; x: real;
  • begin
  • writeln ('График тренировок');
  • i:=1;
  • x:=10;
  • repeat
  • i:=i+1;
  • x:=x+0.1*x;
  • until x>=25;
  • writeln ('Начиная с ', i, '-го дня спортсмен будет пробегать 25 км')
  • end.
  • Конец
  • да
  • нет
  • Начало
  • Список данных
  • i – цел
  • x- вещ
  • i := 1
  • x := 10
  • x>= 25
  • i := i +1
  • x := x +0.1*x
  • i

  • Программирование циклов с заданным числом повторений
  • Общий вид оператора:
  • for <параметр>:=<начальное_значение>
  • to <конечное_значение> do <оператор>
  • Здесь:
  • <параметр> - переменная целого типа;
  • <начальное_значение> и <конечное_значение> - выражения того же типа, что и параметр;
  • <оператор> - простой или составной оператор - тело цикла.
  • После каждого выполнения тела цикла происходит увеличение на единицу параметра цикла; условие выхода из цикла - превышение параметром конечного значения.
  • Тело цикла
  • i = i1, i2

  • program n_16;
  • var i,n:integer;a,y:real;
  • begin
  • writeln ('Возведение в степень');
  • write ('Введите основание a>>');
  • readln (a);
  • write ('Введите показатель n>>');
  • readln (n);
  • y:=1;
  • for i:=1 to n do y:=y*a;
  • writeln ('y=', y)
  • end.
  • Конец
  • Начало
  • Список данных
  • i, n – цел
  • a, y- вещ
  • y := 1
  • y := y * a
  • y
  • a, n
  • i = 1, n

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

  • program n_17;
  • var n, k1, k2: integer;
  • begin
  • k1:=0;
  • k2:=0;
  • repeat
  • write ('Введите целое число>>');
  • readln (n);
  • if n>0 then k1:=k1+1;
  • if n<0 then k2:=k2+1;
  • until n=0;
  • writeln ('Введено:');
  • writeln ('положительных чисел – ', k1);
  • writeln ('отрицательных чисел – ', k2)
  • end.
  • да
  • нет
  • n
  • n > 0
  • Начало
  • Список данных
  • n, k1, k2 - цел
  • n < 0
  • n = 0
  • k1, k2
  • Конец
  • k1:=0
  • k2:=0
  • k1:=k1+1
  • k2:=k2+1
  • да
  • да
  • нет
  • нет

  • Ввод осуществляется до тех пор, пока не будет введён ноль.
  • Работа продолжается, пока n 0.
  • Воспользуемся оператором while:
  • program n_18;
  • var n, k1, k2: integer;
  • begin
  • k1:=0;
  • k2:=0;
  • while n<>0 do
  • begin
  • writeln ('Введите целое число>>');
  • read (n);
  • if n>0 then k1:=k1+1;
  • if n<0 then k2:=k2+1;
  • end;
  • writeln ('Введено:');
  • writeln ('положительных – ', k1);
  • writeln ('отрицательных – ', k2)
  • end.
  • да
  • n > 0
  • да
  • нет
  • n
  • Начало
  • Список данных
  • n, k1, k2 - цел
  • n <> 0
  • k1, k2
  • Конец
  • k1:=0
  • k2:=0
  • k1:=k1+1
  • k2:=k2+1
  • нет

  • Самое главное
  • В языке Паскаль имеются три вида операторов цикла:
  • while цикл-ПОКА)
  • repeat (цикл-ДО)
  • for (цикл с параметром).
  • Если число повторений тела цикла известно, то лучше воспользоваться оператором for; в остальных случаях используются операторы while и repeat.

  • Вопросы и задания
  • Дана последовательность операторов:
  • a:=1;
  • b:=2;
  • while a+b<8 do
  • begin
  • a:=a+1;
  • b:=b+2;
  • end;
  • s:=a+b
  • Сколько раз будет повторен цикл и какими будут значения переменных a, b, s после исполнения этой последовательности операторов?
  • Пример входных данных
  • Пример выходных данных
  • Введите n> 5
  • 5! = 120
  • Введите n> 6
  • 6! = 720
  • Требовалось написать программу вычисления факториала числа n (факториал числа n есть произведение всех целых чисел от 1до n).
  • Программист торопился и написал программу неправильно.
  • Ниже приведён фрагмент его программы, в котором содержится пять ошибок:
  • k:=1;
  • f:=0;
  • while k<n do
  • f:=f*k;
  • k:=k+1
  • Найдите ошибки. Допишите необходимые операторы.
  • Проанализируйте следующий цикл:
  • while a<b do
  • c:=a=b;
  • В чём его особенность?
  • Дана последовательность операторов:
  • a:=1;
  • b:=1;
  • repeat
  • a:=a+1;
  • b:=b*2;
  • until b>8;
  • s:=a+b
  • Сколько раз будет повторён цикл и какими будут значения переменных a, b, s после исполнения этой последовательности операторов?
  • Напишите программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введён ноль) и подсчёт суммы и среднего арифметического введённых положительных чисел.
  • Используйте оператор repeat.
  • Напишите программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введён ноль) и определение максимального (наибольшего) из введённых чисел.
  • Используйте оператор repeat.
  • Напишите программу вычисления наибольшего общего делителя двух целых чисел:
  • а) используйте оператор repeat;
  • б) используйте оператор while.
  • Сколько раз будет выполнен цикл?
  • а) for i:=0 to 15 do s:=s+1;
  • б) for i:=10 to 15 do s:=s+1;
  • в) for i:=-1 to 1 do s:=s+1;
  • г) for i:=10 to 10 do s:=s+1;
  • д) k:=5;
  • for i:=k-1 to k+1 do s:=s+1;
  • Напишите программу, которая 10 раз выводит на экран
  • ваши имя и фамилию.
  • Напишите программу, выводящую на экран изображение шахматной доски, где чёрные клетки изображаются звёздочками, а белые - пробелами. Рекомендуемый вид экрана после выполнения программы представлен ниже:
  • * * * *
  • * * * *
  • * * * *
  • * * * *
  • * * * *
  • * * * *
  • * * * *
  • * * * *
  • Напишите программу, которая вычисляет сумму:
  • а) первых n натуральных чисел;
  • б) квадратов первых n натуральных чисел;
  • в) всех чётных чисел в диапазоне от 1 до n;
  • г) всех двузначных чисел.
  • Напишите программу, которая генерирует 10 случайных чисел в диапазоне от 1 до 20, выводит эти числа на экран и вычисляет их среднее арифметическое.
  • Напишите программу, которая выводит на экран таблицу степеней двойки (от нулевой до десятой).
  • Рекомендуемый вид экрана после выполнения программы представлен ниже:
  • Таблица степеней двойки:
  • 0 1
  • 1 2
  • 2 4
  • 3 8
  • 4 16
  • 5 32
  • 6 64
  • 7 128
  • 8 256
  • 9 512
  • 10 1024
  • Пример входных данных
  • Пример выходных данных
  • Введите n> 5
  • 5 x 2 = 10
  • 5 x 3 = 15
  • 5 x 4 = 20
  • 5 x 5 = 25
  • 5 x 6 = 30
  • 5 x 7 = 35
  • 5 x 8 = 40
  • 5 x 9 = 45
  • 5 x 10 = 50
  • Напишите программу, которая выводит на экран таблицу умножения на n (n - целое число в диапазоне от 2 до 10, вводимое с клавиатуры).
  • Какой из трёх рассмотренных операторов цикла является, по вашему мнению, основным, т. е. таким, что им можно заменить два других?
  • Обоснуйте свою точку зрения.

  • Опорный конспект
  • while (цикл-ПОКA)
  • repeat (цикл-ДО)
  • for (цикл с параметром).
  • Число повторений
  • цикла известно
  • В языке Паскаль имеются три вида операторов цикла:
  • Число повторений
  • цикла неизвестно