1 / 24

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

Программирование на языке Паскаль. Тема 4. Циклы. ?. Можно ли решить известными методами ?. Циклы. Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов цикл с неизвестным числом шагов (цикл с условием)

borka
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Программирование на языке Паскаль Тема 4. Циклы

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

  3. Циклы program qq; begin writeln('Привет'); writeln('Привет'); writeln('Привет'); writeln('Привет'); writeln('Привет'); end.

  4. ? ? Как отсчитать ровно 5 раз? Как запоминать, сколько раз уже сделали? Циклы program qq; begin { сделай 5 раз } writeln('Привет'); end. i:=i+1;

  5. Алгоритм начало еще не сделали ни одного раза i:=0; проверить, все ли сделали да i=5? конец нет вывод на экран Привет! i:=i+1; считаем очередной шаг

  6. ? Что получится? Циклы program qq; var i: integer; begin for i:=1 to 5 do writeln('Привет'); end. «Для всех iот 1 до 5 делай …» for i:=1 to 5 do Если в цикле более одного оператора: begin for i:=1 to 5 dobegin write('Привет'); writeln(', Вася!'); end; end;

  7. ? ? Можно ли решить известными методами? А если начальное и конечное значения вводятся с клавиатуры? Циклы Задача. Вывести на экран квадраты и кубы целых чисел от 1 до 8 (от aдо b). Особенность: одинаковые действия выполняются 8 раз. i:=1; { очередное число } i2:=i*i; { его квадрат } i3:=i2*i; { куб } writeln(i:4, i2:4, i3:4); i:=2; ...

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

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

  10. Программа 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. начальное значение переменная цикла конечное значение

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

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

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

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

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

  16. Как изменить шаг? Задача. Вывести на экран квадраты и кубы нечётных целых чисел от 1 до 9. Особенность: переменная цикла должна увеличиваться на 2. Проблема: в Паскале шаг может быть 1 или -1. Решение: выполняется только для нечетных i 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; i mod 2 = 1 i2 := i*i; i3 := i2*i; writeln(i:4, i2:4, i3:4);

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

  18. Как изменить шаг? – III Идея: Надо вывести всего 5 чисел, переменная kизменяется от 1 до 5.Знаяk, надо рассчитатьi. Решение: 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;

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

  20. Решение задания 1 program ff; var i,i2,i3,a,b:integer; begin writeln('Введите границы интервала а и b'); read(a,b); for i:=a to b do begin i2:=i*i; i3:=i2*i; writeln(i:4,i2:5,i3:5); end; end.

  21. Задания 3:Одна штука некоторого товара стоит 20,4 руб. Напечатать стоимости 2, 3, … , 20 штук этого товара. 4:Напечатать таблицу умножения на 7. Пример: 1х7=7 2х7=14 … 9х7=63.

  22. Решение задания 3 program ff; var i:integer; s,s1:real; begin s:=20.4; for i:=2 to 20 do begin s1:=i*s; writeln(i:4,s1:8:2); end; end.

  23. Решение задания 4 program fff; var i:integer; begin for i:=1 to 10 do begin writeln(i,'x7=',i*7); end; end.

  24. Домашнее задание 1. Напечатать таблицу перевода расстояний в дюймах в сантиметры для значений 10, 11, …, 22 дюйма (1 дюйм = 25,4 мм). 2. Напечатать таблицу умножения на 9. 1х9=9 2х9=18 … 9х9=81. 3. Вычислить число S=S1+S2; S1=1+2+3+...+N, S2=1*2*3*...*N. N ввести с клавиатуры.

More Related