Презентация "Программирование на языке Паскаль. Циклы"


Подписи к слайдам:
Слайд 1

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

  • Циклы
  • Ниязбекова Айгерим Жарылкасынкызы
  • Учитель информатики, I категории
  • Школа-гимназия №2 им. Г. Кайрбекова
  • Республика Казахстан, город Астана

  • Циклы
  • Цикл – это многократное выполнение одинаковой последовательности действий.
    • цикл с известным числом шагов
    • цикл с неизвестным числом шагов (цикл с условием)
  • Задача. Вывести на экран квадраты и кубы целых чисел от 1 до 8 (от a до b).
  • Особенность: одинаковые действия выполняются 8 раз.
  • Можно ли решить известными методами?
  • ?

  • Алгоритм
  • начало
  • i, i2, i3
  • конец
  • нет
  • да
  • i <= 8?
  • i := 1;
  • i := i + 1;
  • i2 := i * i;
  • i3 := i2 * i;
  • задать начальное значение переменной цикла
  • проверить, все ли сделали
  • вычисляем квадрат и куб
  • вывод результата
  • перейти к следующему i

  • Алгоритм (с блоком "цикл")
  • начало
  • i, i2, i3
  • конец
  • i2 := i * i;
  • i3 := i2 * i;
  • i := 1,8
  • блок "цикл"
  • тело цикла

  • Программа
  • program qq;
  • var i, i2, i3: integer;
  • begin
  • for i:=1 to 8 do begin
  • i2 := i*i;
  • i3 := i2*i;
  • writeln(i:4, i2:4, i3:4);
  • end;
  • end.
  • переменная цикла
  • начальное значение
  • конечное значение

  • Цикл с уменьшением переменной
  • Задача. Вывести на экран квадраты и кубы целых чисел от 8 до 1 (в обратном порядке).
  • Особенность: переменная цикла должна уменьшаться.
  • Решение:
  • for i:=8 1 do begin
  • i2 := i*i;
  • i3 := i2*i;
  • writeln(i:4, i2:4, i3:4);
  • end;
  • downto

  • Цикл с переменной
  • for <переменная> := <начальное значение> to
  • <конечное значение> do begin
  • {тело цикла}
  • end;
  • Увеличение переменной на 1:
  • for <переменная> := <начальное значение> downto
  • <конечное значение> do begin
  • {тело цикла}
  • end;
  • Уменьшение переменной на 1:

  • <number>
  • Цикл с переменной
  • Особенности:
    • переменная цикла может быть только целой (integer)
    • шаг изменения переменной цикла всегда равен 1 (to) или -1 (downto)
    • если в теле цикла только один оператор, слова begin и end можно не писать:
    • если конечное значение меньше начального, цикл (to) не выполняется ни разу (проверка условия в начале цикла, цикл с предусловием)
  • for i:=1 to 8 do
  • writeln('Привет');

  • Цикл с переменной
  • Особенности:
    • в теле цикла не разрешается изменять переменную цикла (почему?)
    • при изменении начального и конечного значения внутри цикла количество шагов не изменится:
  • n := 8;
  • for i:=1 to n do begin
  • writeln('Привет');
  • n := n + 1;
  • end;
  • нет зацикливания

  • Цикл с переменной
  • Особенности:
    • после выполнения цикла во многих системах устанавливается первое значение переменной цикла, при котором нарушено условие:
  • for i:=1 to 8 do
  • writeln('Привет');
  • writeln('i=', i);
  • for i:=8 downto 1 do
  • writeln('Привет');
  • writeln('i=', i);
  • i=9
  • i=0

  • Сколько раз выполняется цикл?
  • a := 1;
  • for i:=1 to 3 do a := a+1;
  • a = 4
  • a := 1;
  • for i:=3 to 1 do a := a+1;
  • a = 1
  • a := 1;
  • for i:=1 downto 3 do a := a+1;
  • a = 1
  • a := 1;
  • for i:=3 downto 1 do a := a+1;
  • a = 4

  • for i:=1 to 9 do begin
  • if ??? then begin
  • i2 := i*i;
  • i3 := i2*i;
  • writeln(i:4, i2:4, i3:4);
  • end;
  • end;
  • Как изменить шаг?
  • Задача. Вывести на экран квадраты и кубы нечётных целых чисел от 1 до 9.
  • Особенность: переменная цикла должна увеличиваться на 2.
  • Проблема: в Паскале шаг может быть 1 или -1.
  • Решение:
  • i mod 2 = 1
  • i2 := i*i;
  • i3 := i2*i;
  • writeln(i:4, i2:4, i3:4);
  • выполняется только для нечетных i
  • Что плохо?
  • ?

  • Как изменить шаг? – II
  • Идея: Надо вывести всего 5 чисел, переменная k изменяется от 1 до 5. Начальное значение i равно 1, с каждым шагом цикла i увеличивается на 2.
  • Решение:
  • ???
  • for k:=1 to 5 do begin
  • i2 := i*i;
  • i3 := i2*i;
  • writeln(i:4, i2:4, i3:4);
  • ???
  • end;
  • i := i + 2;
  • i := 1;

  • Как изменить шаг? – III
  • Идея: Надо вывести всего 5 чисел, переменная k изменяется от 1 до 5. Зная k, надо рассчитать i.
  • Решение:
  • k
  • 1
  • 2
  • 3
  • 4
  • 5
  • i
  • 1
  • 3
  • 5
  • 7
  • 9
  • i = 2k-1
  • for k:=1 to 5 do begin
  • ???
  • i2 := i*i;
  • i3 := i2*i;
  • writeln(i:4, i2:4, i3:4);
  • end;
  • i := 2*k – 1;

  • Задания
  • "4": Ввести a и b и вывести квадраты и кубы чисел от a до b.
  • Пример:
  • Введите границы интервала:
  • 4 6
  • 4 16 64
  • 5 25 125
  • 6 36 216
  • "5": Вывести квадраты и кубы 10 чисел следующей последовательности: 1, 2, 4, 7, 11, 16, …
  • Пример:
  • 1 1 1
  • 2 4 8
  • 4 16 64
  • ...
  • 46 2116 97336

  • Литература:
  • 1.Информатика в школе : Приложение к журналу «Информатика и образование» №5-2006-М: Образование и Информатика.
  • 2.Кашаев С.М., Шерстнева Л.В. Паскаль для школьников. Подготовка к ЕГЭ-М:БХВ-Петербург,2011-336с.
  • 3.Моргун А.Н., Кривель И.А. Программирование на языке Паскаль-Москва Вильямс,2 006-576с,