Задачи на цикл с параметром

Здравствуйте. Оператор цикла с параметром используется в тех случаях, когда некоторое однообразное действие надо повторить определенное количество раз. Особенно, если это количество достаточно велико. Бывают же такие задачи, когда необходимо, например, вычислить сумму каких-либо величин, каждая из которых вычисляется по формуле. Ведь если непосредственно вычислять сумму 1 + 2 + 3 + . + 1000, то программа разрастется до невообразимых масштабов.

Оператор цикла с параметром в народе ещё называют "оператор For", и в Pascal он бывает двух типов (второй тип смотрите ниже). Первый записывается так:

Всё, что находится между for и do, называется заголовком цикла , после do — телом цикла . Переменная i зазывается параметром цикла и имеет порядковый тип (целые числа, логический тип, символы, перечислимый и диапазонный тип). Слова for, to и do — это служебные слова Pascal, которые использовать в своих программах для обозначения переменных нельзя. Индекс i , которым обозначаются номера действий в операторе цикла, изменяется от меньшего N1 к большему N2 (N1 ≤ N2). Первый номер N1 по значению не должен превышать второй N2, иначе цикл не запустится и ОПЕРАТОР ни разу не выполнится.

Важно помнить: ИЗМЕНЯТЬ ПАРАМЕТР ЦИКЛА i В ТЕЛЕ ЦИКЛА НЕЛЬЗЯ! — это вызовет ошибку.

Оператор цикла этого типа действует как:

— сначала индекс i приравнивается N1 — минимальному возможному значению;
— потом проверяется, не превышает ли i второго номера N2 (i ≤ N2). Если это условие выполняется, то идем на следующий пункт, иначе (то есть при i > N1 ) — выходим из цикла;
— выполняется ОПЕРАТОР в теле цикла;
— далее увеличивается i на 1, и повторяем со второго пункта (т.е. проверяем истинность условия i ≤ N2, выполняем оператор, увеличиваем i на 1, и т.д).

В роли начального значения N1 наиболее часто используют 1 или 0 (это зависит от задачи).

Приведем пример с вычислением упомянутой ранее суммой 1 + 2 + 3 + . + 1000 первых 1000 натуральных чисел. Поскольку нужно сложить числа от 1 до 1000 включительно, то было бы естественно изменять индекс i от 1 до 1000. Тогда на каждой итерации цикла (при каждом выполнении) искомую сумму, которую мы обозначим sum, будем увеличивать на i. Вот, что у нас получится.

После запуска программы вы должны увидеть результат: 500500. Что делает наша программа?

2 строка. Описываем переменные i (параметр цикла) и sum (конечная сумма) как целые;

5 строка. Начальному значению суммы sum присваиваем 0. Это называется инициализация начальной переменной ;

6 строка. Числа будем складывать от 1 до 1000;

7 строка. На каждой последующей итерации цикла к сумме прибавляем i;

8 строка. После выхода из цикла (когда будет i = 1000) выводим конечный результат суммы.

Решим ещё одну простенькую задачку:

Мы видим, что количество выводимых чисел равно 10, поэтому запускаем цикл от 1 до 10, и выводим число 20 оператором вывода write() . Обратите внимание, что величина индекса изменяется лишь в пределах [1, 10], поэтому не имеет смысла использовать целый тип integer — достаточно обойтись типом byte (8 бит, или 1 байт). Особенность этого примера в том, что код программы не содержит переменной i в теле цикла (напоминаю, тело цикла — часть программы после do) — мы просто выводили несколько раз число 20. Бывает, когда параметр цикла используется в теле цикла, но во многих простеньких программах его использование лишнее.

А вот пример простой задачи, когда параметр цикла используется:

Если промежуточное выводимое число обозначить n, то изменяя его с 12 по 25 включительно, выведем все числа. Только здесь нужно задействовать оператор вывода writeln — с переводом курсора на следующую строку.

И ещё один пример:

Вместо «крестика» (знак умножения) можете использовать что-либо другое например, клавиатурные «звездочку» или букву «x». После запуска программы у вас должно получится так:

Если вместо ОПЕРАТОРА в теле цикла необходимо выполнить несколько операторов, то их нужно заключить в операторные скобки BEGIN . END, и разделить между собой точкой с запятой (в конце последнего оператора, перед закрывающим end, точку с запятой ставить не обязательно). Образованая таким образом конструкция из нескольких операторов называется составным оператором :

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

2, 3 строки. Описываем x, t как целые, а y — вещественную;

6 строка. Изменяем x в указаных в условии пределах [4, 28];

8 строка. Предварительно вычисляем t, используя значение x;

9 строка. Вычисляем y, подставляя найденное ранее t;

10 строка. Выводим значения x и y.

Отличие этого цикла от первого только в том, что значение индекса i не увеличивается, а уменьшается (на это указывает английское слово down, означающе «вниз»). Таким образом, начальное значение N1 параметра цикла i должно быть НЕ МЕНЬШЕ конечного N2 (N1 ≥ N2), ибо в противном случае цикл ни разу не выполнится.

Читайте также:  Завис ютуб на телевизоре самсунг смарт тв

Для примера решим такую задачу:

Гармоническим рядом в математике называют ряд, составленный из чисел, обратных к натуральным: 1 + ½ + 1/3 + . + 1/n + . . По условию нужно сложить первые 1000000 (один миллион) членов, только мы это сделаем в обратоном по отношению к указанному выше порядке: 1/1000000 + 1/999999 + . + 1/3 + ½ + 1.

А вот как эта задача решается с циклом первого типа, посмотрите на странице for 10−14. Только нужно иметь ввиду, что, хотя гармонический ряд и является расходимым — его частичные суммы стремятся к бесконечности при неограниченном возрастании членов) — но растет гармонический ряд очень медленно.

Вообще, в каждом отдельном случае нужно решать, какой цикл с параметром использовать лучше — с возрастающим или убывающим параметром. В разделе Задачника в группе «for» есть много примеров на тему цикла с параметром, например, Функции с использованием факториала. А пока на этом все, если есть вопросы или пожелания, пишите в комментариях.

Изучить цикл с параметром. Проверить знания прошлого урока.

Воспитание умения слушать учителя.

Развитие познавательного интереса.

Проверка домашнего задания.

Объяснение нового материала.

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

Подведение итогов урока.

Проверка домашнего задания.

Постановка цели урока.

Объяснение нового материала.

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

for := to/downto do ; для до делать

параметр цикла — числовая переменная типа integer

начало, конец — арифметическое выражение

to — используется когда начало меньше конца

downto — используется когда начало больше конца

оператор — тело цикла, любой оператор, в том числе и составной

Параметру присваивается значение начало

Выполняется оператор — тело цикла.

Затем параметр сравнивается с концом.

Если параметр больше/меньше конца, то начинает работать следующий оператор за оператором цикла, в противном случае к параметру прибавляется/отнимается единица.

Снова выполняется оператор.

Так продолжается пока параметр не станет больше/меньше конца.

Рассмотрим применение цикла с параметром на конкретных примерах.

Пример 1. Сто раз написать свое имя на экране в строчку

For i: = 1 to 100 do

Пример 2.Вывести на экран таблицу перевода из градусов по шкале Цельсия в градусы по Фаренгейту, для значений от 15 до 30, шаг 1 градус. Формула перевода из Цельсия в ФаренгейтыF=(c*1.8)+32.

For c: = 15 to 30 do

Пример 3. Написать программу, которая выводит таблицу квадратов первых пяти целых положительных нечетных чисел в обратном порядке

Var x,y,i: integer;

Writeln(‘таблица квадратов нечетных чисел’);

Writeln(‘число’, ,’квадрат числа’);

For i: = 5 downto 1 do

Самостоятельная работа. Ребята за компьютерами решают следующие задачи:

Проверить, является ли целое число простым.

For i:=2 to n-1 do

If n mod i =0 then begin writeln(n,’не простое’);readkey; halt;end;

writeln (n, ‘простое’);

Написать программу, которая выводит на экран табл. умножения, например на 7.

For i:=1 to 10 do

Написать программу, которая выводит табличные значения функции у=x+2. Диапазон изменения аргумента от — 4 до 4, приращение аргумента — 0.5

Написать программу, которая определяет максимальное число из введенной последовательности положительных чисел. Завершение ввода — 0.

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

var n1,n2,nod: integer;

writeln ('Введите два целых числа');

if n1>n2 then n1:=n1-n2 else n2:=n2-n1;

writeln 'Наибольший общий делитель -',nod);

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

writeln('введите два числа'); readln(n1,n2);

for i:=n1*n2 downto 2 do

if (n1 mod i=0) and (n2 mod i=0) then nok:=i;

Домашнее задание:

Написать программу, которая выводит табличные значения функции у=х 2 +2. Диапазон изменения аргумента от — 4 до 4, приращение аргумента 1

Урок 4, 5. Цикл с предусловием

Цель урока: изучить оператор цикла WHILE языка программирования Pascal, синтаксис, семантику, а также научить учащихся использованию данного оператора при решении задач.

Задачи урока:

усвоение учащимися оператора цикла с предусловием и области его применения;

формирование умений и навыков записи оператора WHILE на языке программирования Pascal;

выработка навыков составления программ, реализующих циклические алгоритмы при решении задач;

развитие логического и алгоритмического мышления учащихся;

развитие у учащихся познавательной активности;

развитие памяти и внимания;

развитие коммуникационной компетентности у учащихся;

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

привитие учащимся навыков самостоятельной работы;

воспитание бережного отношения к компьютерной технике;

Тип урока: урок изучения нового материала.

Формы и методы обучения: словесный, наглядный, практический, проблемный — фронтальный опрос, мозговой штурм, индивидуальная работа, работа на компьютере.

Оснащение урока: компьютерная презентация «Оператор цикла WHILE», мультимедийный проектор, компьютеры с инсталлированным на них пакетом Turbo Pascal, дидактический раздаточный материал.

Читайте также:  Как восстановить код восстановления steam

План урока

Оргмомент. Проверка домашнего задания

Актуализация знаний и умений учащихся

Презентация нового материала

Закрепление изученного материала

Работа на компьютерах

Заключение Задание на дом

Ход урока

2. Вводное слово.Подавляющее большинство задач с циклами можно решать разными способами, используя при этом один из трех операторов цикла. Часто решения, использующие различные операторы цикла, оказываются равноценными. В некоторых случаях все же предпочтительнее использовать какой-то один из операторов. Сегодня на уроке мы познакомимся с одним из таких операторов — оператором цикла WHILE. Цикл, который реализуется данным оператором, называют также циклом с предусловием. Почему это так, в каких случаях применяется данный оператор, и каков формат записи этого оператора вы узнаете не сегодняшнем уроке.

3.Актуализация знаний и умений учащихся.Актуализация знаний и умений учащихся осуществляется во время фронтального опроса, в ходе, которого им предстоит ответить на следующие вопросы:

Дайте определение циклического алгоритма.

Перечислите основные структуры циклического алгоритма.

Приведите примеры циклических алгоритмов.

Запишите формат оператора цикла с параметром, цикла FOR.

Расскажите, как выполняется оператор цикла FOR.

Что следует знать, используя, оператор цикла FOR.

Чему будет равен x после выполнения инструкций?

For i:= −5 to 0 do

Что будет выведено на экран в результате выполнения инструкций?

For i:=1 to N do X:=i;

9.Сколько звездочек будет выведено на экран в результате выполнения инструкций?

For j:=1 to 5 write (‘*’);

4. Презентация нового материала. Решите следующую задачу: Распечатать квадраты чисел, находящихся в диапазоне от 0 до 1 с шагом 0,2. Решая поставленную задачу, в процессе рассуждений учащиеся должны сделать вывод о том, что изученный ими ранее оператор цикла с параметром (оператор FOR) не позволяет решить задачу, поскольку он изменятся с шагом 1 или −1. Учащиеся предполагают, что для решения поставленной задачи им нужно использовать какой-то другой оператор цикла.

Для этого учащимся предлагается прослушать интерактивный учебный курс «Основы программирования на Turbo Pascal» — Введение в Turbo PascalОператор цикла While, составить опорный конспект — записать формат и блок-схему оператора в тетрадь и ответить на вопросы:

В каких случаях используется оператор цикла WHILE?

Почему цикл, записанный с помощью оператора WHILE, называют циклом с предусловием?

Можно ли данный оператор цикла назвать универсальным?

Принцип выполнения оператора WHILE и примеры решения некоторых задач (включая задачу о квадратах чисел, предложенную учащимся для решения в начале рассмотрения темы) учитель демонстрирует в презентации «Оператор цикла WHILE»:

WHILE Условие выполнения цикла DO Тело цикла

Оператор цикла WHILE состоит из заголовкаителацикла. Ключевые словаWHILE и DOобозначают «до тех пор, пока» и «выполняй» соответственно.

Проверка условия выполнения цикла производится в самом начале оператора — если значение условия истинно, то выполняется тело цикла и снова вычисляется выражение условия выполнения цикла. Так продолжается до тех пор, пока значение условия выполнения цикла не станет ложным.

число повторений операторов цикла WHILE определяется в ходе работы программы и как, правило, заранее неизвестно;

в операторе цикла WHILE точка с запятой никогда не ставится после зарезервированного слова DO;

для успешного завершения цикла WHILE в его теле обязательно должны присутствовать инструкции, оказывающие влияние на условие выполнения инструкций цикла;

инструкции тела цикла WHILE вообще могут быть не выполнены, если проверяемое условие ложно с самого начала;

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

Вернемся к задаче — распечатать квадраты чисел, находящихся в диапазоне от 0 до 1 с шагом 0,2. Составим блок-схему и программу решения задачи:

var k, s : integer; begin s := 0; while s 0 do

begin k := k + 1; s := s + r; write (‘введите рост школьника’); readln ®; end;

c := s/k; writeln (‘средний рост школьников’,c) readln; end.

5. Закрепление изученного материала. Для закрепления изученного материала учащимся предлагается выполнить комментированные упражнения. Комментирование действий помогает учителю обнаруживать типичные ошибки и вносить коррективы в действия учеников.

Составьте блок-схему и программу решения задач:

Распечатать произведения чисел А и В, изменяющихся от 17 и −25 с шагом −3 и 5 соответственно до тех пор, пока это произведение — отрицательное число.

Сколько слагаемых должно быть в сумме 1 + ½ + 1/3 + …+ 1/N, чтобы сумма оказалась больше 5.

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

Вариант 1.

Температура С в градусах Цельсия изменяется от 0 до 100 с шагом 5. Напечатать таблицу перевода температуры из градусов Цельсия в градусы Фаренгейта (F). Формула перевода: F = 1,8 C + 32. Составьте блок-схему и программу решения задачи.

Составьте таблицу значений функции y = 5x — 2 на отрезке [1; 20] с шагом b = 2.

Читайте также:  Жениться на вдове с ребенком

*В первый день пловец проплыл 3 км. В каждый следующий день он проплывал на 10% больше, чем в предыдущий.

а) В какой по счету день пловец начнет проплывать более 5 км?

б) К какому дню он суммарно проплывет более 30 км?

Вариант 2.

Напечатать таблицу соответствия между весом в фунтах и весом в кг для значений от 1 до 10 фунтов с шагом 0,5 фунта. Формула перевода: 1 фунт = 400 г. Составьте блок-схему и программу решения задачи.

Составьте таблицу значений функции y = 5×2 — 2x + 1 на отрезке [-5; 5] с шагом b = 2.

*Урожай яблок в 1990 году составил 20 тонн. Далее каждые два года урожай уменьшался на 20%.

а) Начиная с какого года, будет собрано менее 5 тонн?

б) В каком году суммарный урожай яблок превысит 90 тонн?

Вариант 3.

Напечатать таблицу перевода расстояний из дюймов в сантиметры для значений от 1 до 10 дюймов с шагом 0,5 дюйма. Формула перевода: 1дюйм = 2,54 см.

Составьте таблицу значений функции y = 4×2 — 5x — 10 на отрезке [-9; 9] с шагом b = 3.

*Концентрация хлорной извести в бассейне V м3 составляет 10 г/л. Через одну трубу в бассейн вливают чистую воду со скоростью Q м3/час, через другую трубу с такой же скоростью вода выливается. При условии идеального перемешивания концентрация хлорной извести изменятся по закону C = C0e-Qt/V , где t — время, C0 — начальная концентрация.

а) Определить, через какое время концентрация хлорной извести в бассейне достигнет безопасной для человека величины. Задачу решить при Q = 150 м3/час, V = 10000 л, C0 = 10 г/л, t изменяется с шагом 0,5.

б) Напечатать таблицу изменения концентрации хлорной извести для интервала времени от 0 до 5 часов с шагом 0,5 часа.

7. Заключение. Подводятся итоги уроки, анализируется и оценивается работа каждого ученика.

Идёт приём заявок

Подать заявку

Для учеников 1−11 классов и дошкольников

Задание 1. Сто раз написать свое имя на экране в строчку

For i: = 1 to 100 do begin

Задание 2. Вывести на экран таблицу перевода из градусов по шкале Цельсия в градусы по Фаренгейту, для значений от 15 до 30, шаг 1 градус. Формула перевода из Цельсия в Фаренгейты F =( c *1.8)+32.

For c: = 15 to 30 do

Задание 3 . Написать программу, которая выводит на экран табл. умножения, например на 7.

For i:=1 to 10 do

Составьте программу, которая выводит на экран таблицу перевода 5, 6, 7, … 25 евро в рубли. Курс евро вводится с клавиатуры.

Введите курс евро: 34.71

5 евро = 173.55 руб.

6 евро = 208.26 руб.

7 евро = 242.97 руб.

8 евро = 277.68 руб .

9 евро = 312.39 руб .

Program evro;
var a,b,i: integer;
begin
writeln (' Введите курс евро ');
readln (a);
for i:=5 to 25 do
begin
b:=i*a;
writeln (i,' евро =',b,' рублей ');
end;
end.

Задание 5. Составьте программу (оператор цикла) для нахождения суммы по следующей формуле: S= (x*x+x)/a*x (при x от 3 до 19)

Задание 6 Составить программу в pascal для решения следующей задачи (оператор цикла): Известный пират Флинт положил некоторую сумму S в банк под 3 % годовых. Выведите на экран, через сколько лет сумма превысит 1,5*S. Начальное значение S вводится с клавиатуры.

Задание 7. Составить программу для решения следующей задачи: Приближенно можно считать, что скорость охлаждения горячего чая, налитого в стакан, пропорциональна разности между его температурой и температурой воздуха. За 1 минуту температура чая снижается на 3 % от разности этих температур. Вывести на экран температуру чая по истечении каждой минуты в течении 15 минут. Начальная температура воздуха — 20 градусов, начальная температура чая — 100.

Через 0 мин. — 100 градусов

Через 1 мин. — 97,6 градусов

Через 2 мин. — 95,3 градусов

Через 3 мин. — 93,1 градусов

  • Калина Елена АлександровнаНаписать 1806 12.02.2018

Номер материала: ДБ-1166123

    12.02.2018 1421
    12.02.2018 611
    12.02.2018 240
    12.02.2018 500
    12.02.2018 368
    12.02.2018 794
    12.02.2018 502
    12.02.2018 103

Не нашли то что искали?

Вам будут интересны эти курсы:

Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение редакции может не совпадать с точкой зрения авторов.

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

Оцените статью
Adblock detector