Тема: Циклы в Паскале.
учебно-методический материал по информатике и икт (9 класс) на тему
Презентация и подборка задач на циклы While, Repeat, For.
Скачать:
Вложение | Размер |
---|---|
tsikly.ppt | 400.5 КБ |
tsikly_v_pascal.docx | 65.5 КБ |
tsikly_zadachi.doc | 29.5 КБ |
Предварительный просмотр:
Подписи к слайдам:
Найти все двузначные числа, кратные 7. Начало Конец k:=1 4 K < =99 k:=k+ 7 Вывести k + - При использовании логических циклов необходимо всегда заботиться о том, чтобы переменная, использующаяся в условии завершения цикла, каким-то образом обязательно изменялась в теле цикла. Это может быть команда присваивания ( как в данной программе) или команда ввода.
Начало Конец sum:=0 k:=1 sum<= 10 Sum:=sum+1/k k:=k+1 Kolichestvo elementov =k + - При каком количестве слагаемых последовательности их сумма превысит 10?
ЦИКЛ С ПАРАМЕТРОМ Цикл с параметром – повторное выполнение тела цикла, пока целочисленный параметр ( i ) пробегает множество всех значений от начального ( In ) до конечного ( Ik ) : I := In, Ik тело цикла
ВЫЧИСЛИТЬ ввод n S:=0 i:= 1 ,n S:=S+sqr(i) конец вывод S начало
Составить блок-схему: Найдите сумму чисел от 1 до n . (n – вводится с клавиатуры) Составить блок-схему: Найдите сумму четных чисел от 1 до n . Составить блок-схему: вводятся с клавиатуры целые числа и суммируются, до тех пор пока не будет введен 0. В первый час работы рабочий изготавливает а деталей, за каждый последующий час – на d деталей больше. Сколько деталей будет изготовлено за n часов? Задачи
1. Вычислить среднее арифметическое 5 чисел, вводимых с клавиатуры. 2. Даны три действительных числа. Возвести в квадрат четные числа, и в четвертую степень — нечетные.
Предварительный просмотр:
Циклы в Pascal: repeat, while, for.
Вы уже знаете, что существует три вида алгоритмов: линейный, разветвляющийся и циклический. Вы уже знаем, как реализовывать линейные и разветвляющиеся алгоритмы на Паскале. Приступим к изучению последнего типа алгоритмов.
В языке Pascal, как и в большинстве языков программирования, существует три типа циклических конструкций.
Любой цикл состоит из тела и заголовка. Тело цикла — это набор повторяющихся операторов, а условие — это логическое выражение, в зависимости от результата которого и происходит повторное выполнение цикла.
Возьмем одну задачу, которую будем решать, используя различные виды циклов.
Задача 1. Вывести все цифры от 1 до числа, введенного с клавиатуры.
While, или цикл с предусловием
while — это цикл, в котором условие стоит перед телом. Причем тело цикла выполняется тогда и только тогда, когда условие true; как только условие становится false, выполнение цикла прекращается.
While имеет формат: while < условие> do <оператор 1>; {Пока … делай ….}
Данный цикл подходит только для одного оператора, если же вы хотите использовать несколько операторов в своем коде, вам следует заключить их в операторные скобки — begin и end; .
Решение задачи.
- program example_while;
- var
- i, N: integer; { объявляем переменные }
- begin
- i := 1; { Присваиваем i значение 1 }
- readln(N); { Считываем последнее число }
- while i <= N do {Как только i станет больше N, цикл прекратится (можно было бы написать просто <, но пришлось бы добавлять 1 к N) }
- begin {Открываем операторные скобки}
- write(i, ' '); {Выводим i}
- Inc(i); {увеличиваем i на один.}
- end; { закрываем скобки }
- end.
Repeat, или цикл с постусловием
Repeat — полная противоположность while. Repeat — это цикл, в котором условие стоит после тела . Причем оно выполняется тогда и только тогда, когда результат условия false; как только логическое выражение становится true, выполнение цикла прекращается.
Repeat имеет формат:
repeat { повторяй … }
<оператор 1>;
< оператор 2>;
…
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 <счетчик1> := <значение1> to <конечное_значение> do <оператор1>;
После каждой итерации значение <счетчик1> будет увеличиваться на 1.
<значение1> — это начальное значение счетчика. Это может быть переменная или число.
<конечное_значение> : как только значение <счетчик1> станет больше <конечное_значение>, выполнение цикла прекратится.
Если требуется написать несколько операторов в теле цикла, используем begin и end.
И <счетчик1>, и <конечное_значение>, и <значение1> — переменные целого типа.
Чаще всего в качестве счетчика используется переменная i.
Вторая форма
- for <счетчик2> := <значение2> downto <конечное_значение> do <оператор1>;
После каждой итерации значение <счетчик2> будет уменьшатся на 1.
<значение2> — это начальное значение счетчика.
<конечное_значение> : как только значение <счетчик2> станет меньше <конечное_значение>, выполнение цикла прекратится.
Два важных примечания:
- Цикл повторяется, пока значение значение счетчика лежит в отрезке [значение ; конечное_значение].
- Изменять значение счетчика внутри тела нельзя!
Решение задачи:
- 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 < B). Вывести в порядке возрастания все целые числа, расположенные между A и B (включая сами числа A и B), а также количество N этих чисел.
Так как A < B, то цикл должен будет выводить все числа от А до B. Чтобы сосчитать количество чисел, используем формулу: <конечное_значение> — <начальное_значение> + 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 < B). Найти сумму квадратов всех целых чисел от A до B включительно.
Организовываем такой же цикл, как и в предыдущей задаче, но одновременно суммируем квадраты всех чисел. Чтобы высчитать квадрат, используем функцию 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 .
Предварительный просмотр:
Задачи на циклы.
- Напишите программу вывода всех четных чисел от 2 до 100 включительно. (2 балла)
- Составьте программу, вычисляющую сумму квадратов всех чисел от 1 до N. (1 балл)
- Напишите программу, определяющую сумму всех нечетных чисел от 1 до 99. (2 балла)
- Составьте программу, подсчитывающую количество цифр вводимого вами целого неотрицательного числа. Можно использовать операцию целочисленного деления. (3 балла)
- Вычислите сумму квадратов N четных натуральных чисел. (2 балла)
- Вычислить: 1+2+4+8+…+210 (3 балла)
- Вычислить: (1+2)*(1+2+3)*…*(1+2+…+10) (3 балла)
- В бригаде, работающей на уборке сена, имеется N косилок. Первая из них работала M часов, а каждая следующая на 10 минут больше, чем предыдущая. Сколько часов проработала вся бригада? (2 балла)
- В ЭВМ вводятся по очереди данные о росте N учащихся класса. Определить средний рост учащихся в классе. (1 балл)
- Составьте программу вычисления степени числа A с натуральным показателем N. (3 балла)
- Составьте программу, вычисляющую A*B, не пользуясь операцией умножения. А и B любое натуральное число. (2 балла)
- Для заданного числа N составьте программу вычисления суммы S=1+1/2+1/3+1/4+…+1/N, где N – натуральное число. (2 балла)
- Каждая бактерия делится на две в течение одной минуты. В начальный момент имеется одна бактерия. Составьте программу, которая рассчитывает количество бактерий на заданное вами целое значение момента времени (15 минут, 7 минут и т.п.). (2 балла)
- Вывести на экран кубы целых чисел от A до B. (1 балл)
- Найти сумму n-го количества элементов ряда 1, -0.5, 0.25, -0.125, … (2 балла)
- Вывести все квадраты натуральных чисел, не превосходящие данного числа N. Пример: N=50 | 1 4 9 16... (1 балл)
- Вывести на экран ряд чисел Фибоначчи, состоящий из n элементов. Числа Фибоначчи – это элементы числовой последовательности: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …, в которой каждое последующее число равно сумме двух предыдущих. (2 балла)
- Найти сумму целых чисел от N до M. (1 балл)
- Даны натуральные числа от 20 до 50. Напечатать те из них, которые делятся на 3, но не делятся на 5. (3 балла)
- Найти произведение двузначных нечетных чисел кратных 13. (3 балла)
- Даны действительное число а и натуральное число n. Вычислить: a(a+1)...(a+n-1). (2 балла)
- Составьте программу, выводящую на экран квадраты чисел от 10 до 20. (2 балла)
- Бизнесмен взял ссуду m тысяч рублей в банке под 20% годовых. Через сколько лет его долг превысит s тысяч рублей, если за это время он не будет отдавать долг? (3 балла)
По теме: методические разработки, презентации и конспекты
Урок информатики на тему "Циклы с постусловием в Турбо Паскале"
Конспект урока...
язык паскаль. Практикум по теме "Циклы" для 9 класса
язык паскаль. Практикум по теме "Циклы" для 9 класса...
Конспект урока по теме "Циклы в Паскале"
Конспект урока по информатике "Циклы в Паскале" предназначен для учащихся 9 класс....
Самостоятельная работа по теме "Циклы в Паскале"
В самостоятельной работе проверяются умения учащихся анализировать работу циклов, написание программы на языке программирования Паскаль с использованием циклов....
Тест по теме "Циклы на языке программирования Паскаль"
Тест состоит из 10 вопросов разного уровня сложности. Проверка осуществляется в конце теста и выводятся статистические данные по количеству правильныхи неправильных ответов. По результатам теста выста...
Контрольная работа по теме "Циклы в языке Паскаль"
Контрольная работа содержит 4 варианта проверяет знания "базовая структура Цикл" и "запись циклов на языке Паскаль"...
Операторы цикла на Паскале. Цикл с предусловием
Конспект урока "Операторы цикла на Паскале. Цикл с предусловием"....