Задачи для цикла с оператором для с решением
Решенные задачи Pascal: операторы цикла
Pascal операторы цикла — Repeat
Repeat 1: Даны положительные числа A и B (A>B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти количество отрезков B, размещенных на отрезке A.
Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var a,b,temp,c:integer; flag: boolean; begin writeln(‘A=’); readln(a); writeln(‘B=’); readln(b); temp:=a; repeat temp:=temp-b; inc(c); until temp-b>=0; writeln(‘result: ‘,c); end. |
Pascal операторы цикла — While
While 1: Определите значение переменной P после выполнения следующего фрагмента программы:
1 2 3 4 5 | P:=1; i:=3; while i <= 9 do begin P := P * (i div 3); i := i + 1; end; |
Варианты:
1) 1
2) 3
3) 9
4) 24
Проверить:
While 2: Определите значение переменной S после выполнения следующего фрагмента программы:
1 2 3 4 5 | S:=0; i:=7; while i > 1 do begin S := S + i div 2; i := i – 1; end; |
Варианты:
1) S = 0
2) S = 7
3) S = 12
4) S = 24
Проверить:
While 3: Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а также остаток от этого деления.
Решение данного задания смотрите в видео уроке по Паскалю:
While 4: Дано целое число N (> 0). С помощью операций деления нацело и взятия остатка от деления определить, имеется ли в записи числа N цифра «2». Если имеется, то вывести TRUE, если нет — вывести FALSE.
Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var number:integer; flag: boolean; begin writeln(‘введите целое число (number>0) number=’); readln(number); flag:=false; while (number div 10)>0 do begin if (number mod 10) = 2 then flag:=true; number:=number div 10; end; writeln(flag); end. |
While 5:
Дано целое число N (>1). Найти наибольшее целое число K, при котором выполняется неравенство 3K<N
* Из задачника М. Э. Абрамян (While10)
Предлагаем посмотреть разбор задачи на видео:
While 6:
Дано число A (>1). Вывести наибольшее из целых чисел K, для которых сумма 1+1/2+…+1/K будет меньше A, и саму эту сумму
* Из задачника М. Э. Абрамян (While14)
Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var Temp:Real; A,K :Integer; begin Write(‘Введите A: ‘); Readln(A); K:=0; Temp:=0; while Temp<=A do begin inc(K,1); Temp:=Temp+1/K; end; Writeln(K-1,’ ‘,Temp-1/K); end. |
While 7:
Дано целое число K и набор ненулевых целых чисел; признак его завершения — число . Вывести количество чисел в наборе, меньших K
* Из задачника М. Э. Абрамян (Series14)
Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var i,R,K:Longint; begin write(‘Введите K : ‘); readln(K); R:=1; i:=0; while(R<>0) do begin write(‘Введите число из набора: ‘); Readln(R); if R<K then i:=i+1; end; i:=i-1; Writeln(i); readln; end. |
While 8:
Спортсмен-лыжник начал тренировки, пробежав в первый день 10 км. Каждый следующий день он увеличивал длину пробега на P процентов от пробега предыдущего дня (P — вещественное, 0<P<50). По данному P определить, после какого дня суммарный пробег лыжника за все дни превысит 200 км, и вывести найденное количество дней K (целое) и суммарный пробег S (вещественное число).
* Из задачника М. Э. Абрамян (While16)
Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var P, S, D:Real; K :Integer; begin Write(‘Введите процент: ‘); Readln(P); K:=1; D:=10; S:=10; while S<=200 do begin inc(K,1); D:=D+D*P/100; S:=S+D; end; Writeln(K,’ ‘,S); end. |
Pascal операторы цикла — For
For 1: Дано вещественное число — цена 1 кг конфет. Вывести стоимость 0.1, 0.2, …, 1 кг конфет.
* Из задачника М. Э. Абрамян
Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 | var c,m:real; i:integer; begin writeln(‘Цена?’); readln(c); m:=0.1; for i := 1 to 10 do begin writeln(‘ price of ‘,m, ‘ kg = ‘,c*m); m:=m+0.1; end; end. |
For 2: Даны два целых числа A и B ( A<B ). Вывести в порядке убывания все целые числа, расположенные между A и B (не включая числа A и B), а также количество N этих чисел.
* Из задачника М. Э. Абрамян
Проверить:
1 2 3 4 5 6 7 8 9 10 11 | var a, b, i: integer; begin writeln(‘A:’); readln(a); writeln(‘B:’); readln(b); for i:= b-1 downto a+1 do write(i:3 ); writeln; writeln(‘kolvo: ‘,b-a-1); end. |
For 3:
Дано целое число N>0. Найти сумму
* Из задачника М. Э. Абрамян (For11)
Проверить:
1 2 3 4 5 6 7 8 9 | var N, Rez,i :Integer; begin Write(‘Введите N: ‘); Readln(N); rez:=0; For i:=0 to N do Rez:=Rez+sqr(N+i); Writeln(Rez); end. |
Сейчас предлагаем решить сложную олимпиадную задачу на Паскале:
Пять делителей: Найти сумму всех чисел от 1 до заданного n, имеющих ровно пять делителей. Единица и само число входят в число его делителей
Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var c,n,s,k,i:integer; begin c:=0; s:=0; readln(n); for i:=2 to n do begin k:=i; while k>0 do begin if i mod k = 0 then c:=c+1; k:=k-1; end; if c= 5 then s:=s+i; c:=0; end; writeln(s); end. |
Источник
3 972
Сборник примеров задач с решениями при использовании команды цикла For
Вывод на экран
Спросить имя пользователя и вывести его на экран 10 раз.
Спросить имя пользователя и вывести его на экран Р раз, указывая порядковый номер вывода.
Вывести на экран числа от -5 до 15 через пробел
Вывести на экран числа от 1 до А (A>1)
Вывести на экран числа от -A до А
Вывести на экран числа от А до В
Вывести на экран все цифры
Вывести на экран квадратный корень чисел от 1 до А. (A>1)
Вывести на экран квадраты чисел от А до В
Вывести на экран все 2-ух цифровые числа
Вывести на экран все отрицательные цифры
Вывести на экран все отрицательные 2-ух цифровые числа
Вывести на экран 2-ух цифровые числа от А до В по 4 в строке 1 способ (не всегда правильный)
Вывести на экран 2-ух цифровые числа от А до В по 4 в строке (2 способ)
Вывести на экран таблицу умножения на А
Вывод числовых последовательностей
Вывести на экран через пробел нечетные числа от 1 до 50
Вывести на экран четные числа от 2 до 60 по 5 в строке
Вывести на экран 2-ух цифровые числа кратные 5
Вывести на экран 2-ухцифровые числа кратные Н
Вывести на экран 2-ухцифровые числа кратные Н с промежутка (А..В)
Вывести на экран 2-ух цифровые числа у которых сумма цифр равна 9
Вывести на экран 2-ух цифровые числа у которых сумма цифр не равна 5
Вывести на экран 3-ох цифровые числа у которых сумма цифр равна произведению
Нахождение значения функции
Распечатать таблицу значений Y=x*x на промежутке от -10 до 10
Распечатать таблицу значений Y=3*x-5 на промежутке от -A до A
Распечатать таблицу значений Y=3*x-5 на промежутке от A до B
Функция Промежуток [-5;5]
Функция Промежуток [a;b]
Нахождение сумм числовых последовательностей
Найти суму чисел от 1 до 100
Найти суму парных двухцифровых чисел и вывести результаты промежуточных вычислений
Найти суму 2-ух цифровых чисел на промежутке от А до В
Найти суму непарных 3-oх цифровых чисел}
Найти суму чисел не кратных 3 на промежутке от 1 до А
Найти суму чисел кратных Н на промежутке от -А до А
Найти суму чисел не кратных Н на промежутке от А до В
Найти суму корней из чисел от 1 до Н
Найти суму кубов из чисел от A до B
Нахождение колличеств чисел
Найти количество парных двухцифровых чисел
Найти количество непарных 3-oх цифровых чисел
Найти количество цифр не кратных 3 от А до В
Найти количество чисел кратных Н на промежутке от -А до А
Найти количество чисел не кратных Н на промежутке от А до В
Нахождение произведения числовых последовательностей
Найти произведение чисел от 1 до 10
Найти произведение двухцифровых чисел кратных 20
Найти произведение 2-ух цифровых чисел на промежутке от А до В c выводом промежуточных вычислений
Найти произведение цифр не кратных 3
Найти произведение чисел кратных Н на промежутке от -А до А
Найти произведение чисел не кратных Н на промежутке от А до В c промежуточными вычислениями
Среднее арифметическое числовых последовательностей
Найти среднее арифметическое чисел от 1 до 100 c точностью 2 знака после запятой
Найти среднее арифметическое парных 2-ух цифровых чисел
Найти среднее арифметическое 2-ух цифровых чисел на промежутке от А до В (A>10, BB)
Найти среднее арифметическое трёхцифровых чисел кратных 100 с выводом промежуточных результатов
Найти среднее арифметическое цифр не кратных 3
Найти среднее арифметическое чисел не кратных Н на промежутке от -А до А
Найти среднее арифметическое чисел кратных Н на промежутке от А до В
Нахождение сумм и произведений значений функции
Найти суму значений функции на промежутке от А до В
Y=x*x
Функция
Функция
Найти произведение значений функции на промежутке от А до В
Y=x*x
Функция
Функция
Найти среднее арифметическое значений функции на промежутке от А до В
Y=x*x
Функция
Функция
Найти минимальное значение функции на промежутке от А до В
Y=x*x
Функция
Функция
Найти максимальное значение функции на промежутке от А до В
Y=x*x
Функция
Функция
Найти разницу между максимальным и минимальным значением функции на промежутке от А до В
Y=x*x
Функция
Функция
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Цели урока:
- Рассмотреть решение задачи с использованием различных видов циклов.
- Сформировать умение решать задачи с использованием циклов.
- Способствовать развитию таких мыслительных операций, как анализ, синтез,
обобщение. - Развитие познавательного интереса.
План урока:
- Постановка цели урока.
- Актуализация знаний и умений учащихся.
- решение задач.
- Домашняя работа.
- Подведение итогов урока.
Ход урока
I. Постановка цели урока.
Освоив, операторы присваивания и научившись пользоваться условным оператором
IF, теоретически можно написать любую программу. Но в нашей повседневной жизни
мы очень часто встречаемся с процессами, которые повторяются во времени
несколько раз. Например: прорастание растения из семечки, смена времён года,
смена времени суток, покраска забора, укладка кирпича и т.д. Гораздо удобнее в
этих случаях использовать циклы. Циклы позволяют существенно упростить алгоритм
и текст программы, сделать программу изящной, гибкой, более привлекательной.
Сегодня на уроке мы будем решать такие задачи и убедимся в этом сами.
II. Актуализация знаний и умений учащихся.
Но прежде чем мы перейдём к решению задач, давайте вспомним с вами, какие
циклы вы знаете?
В чём отличительная черта цикла While?
В чём отличительная черта цикла Repeat?
В чём отличительная черта цикла с параметром?
Ответы учащихся сопровождаются демонстрацией слайдов №№ 2-8 презентации к
уроку см. Приложение.
III. Решение задач.
Задача:
Гражданин 1 марта открыл счёт в банке, вложив 1000 рублей. Через каждый месяц
размер вклада увеличивается на 2% от имеющейся суммы. Определить:
Сумму вклада через один, два, …, двенадцать месяцев.
Текст задачи выводится на экран слайд презентации № 9.
1. Анализ условия:
- Что нам известно?
- Что надо найти?
- Сколько переменных используется в задаче?
- Какие переменные мы будем вводить, а какие рассчитывать?
- К какому типу относятся переменные вводимые с клавиатуры?
- Если эти переменные относятся к вещественному типу, то какой результат
мы получим? - Как мы обозначим переменные?
Проанализировав условие данной задачи, мы можем записать описательную часть
программы на языке Pascal.
Слайд презентации № 10.
2. Построение математической модели решения:
Первоначальный вклад а0=1000
1 месяц: а1=а0+а0*0,02
2 месяц: а2=а1+а1*0,02
—————————-
10 месяц: а10=а9+а9*0,02
Общий случай: an=an-1+an-1*0,02
Слайд презентации № 11.
3. Составление алгоритма решения:
Слайд презентации № 12.
4. Запись программы:
Program vklad;
Var i: integer;
a: real;
Begin Writeln (‘введите значение первоначального вклада’);
Readln (а);
For i:=1 to 12 do
begin a:= a + a*0,02;
writeln (a); end;
end.
Слайд презентации № 13.
А теперь запишите данную программу с помощью цикла ДО или цикла
ПОКА кому как удобнее.
Цикл до:
Program vklad;/
Var i: integer;
a: real;
Begin Writeln (‘введите значение первоначального вклада’);
Readln (а);
i:=1;
repeat
a:= a+a*0,02;
writeln (a);
i:=i+1;
until i>12;
end.
Цикл пока:
Program vklad;
Var i: integer;
a: real;
Begin Writeln (‘введите значение первоначального вклада’);
Readln (а);
i:=1;
while i<=12 do
begin a:= a+a*0,02;
writeln (a);
i:=i+1; end;
end.
Слайд презентации № 14.
IV. Домашняя работа.
Решите задачу, используя цикл на ваше усмотрение.
Одноклеточная амёба каждые 3 часа делится на 2 клетки. Определить, сколько
будет клеток через 3, 6, 9, …, 24 часа.
Слайд презентации № 15.
Источник
Цели:
Образовательные: закрепить понятие оператора цикла со счётчиком решением задач.
Развивающие:
- развить навыки использования среды программирования Pascal ABC;
- развить умение отправления решённых задач с помощью программы Clnt на сервер для тестирования;
- развить логическое мышление и активность работы учащихся.
Воспитательные:
- формировать навык командной работы;
- формировать у учащихся объективную самооценку;
- пробудить интерес к обучению.
Задачи учителя для создания успеха на уроке:
- наладить работу локальной сети;
- разместить на ученических компьютерах программу Clnt для отправки задач на сервер;
- на всех компьютерах установить среду программирования Pascal ABC;
- на сервере подготовить пакет программ Executor для автоматического тестирования задач;
- учительский компьютер оснастить мултимедийным проектором;
- провести физкультминутку для снятия усталости плеч, шеи, позвоночника и глаз;
- создать на уроке атмосферу доброжелательности и сотрудничества;
- подготовить дипломы для награждения победителей и сертификаты для участников.
Форма организации учебно-познавательной деятельности:практическая работа.
Оборудование:
- компьютерный класс с локальной сетью;
- компьютер учителя, оснащённый мультимедийным проектором;
- карточки с условиями задач;
- легкая музыка.
Программное обеспечение:
- Электронный учебник «Вычислительная математика и программирование»
- Пакет программ MS Office -2003,
- среда программирования Pascal ABC,
- электронная презентация «Циклы в языке Turbo Pascal»,
- Полный курс обучения языку программирования. Конструкции языка. Циклические алгоритмы,
- пакет программ Executor для тестирования решённых задач.
Межпредметная связь: математика, русский язык.
Интернет-ресурсы:
- https://www.acmtest.ru/
- Executor – автоматизированная сетевая тестирующая система для проведения турниров по программированию по правилам ACM. Версия 2.299
- https://sunschool.math.rsu.ru/pabc/
- Система Pascal ABC основана на языке Delphi Pascal и призвана осуществить постепенный переход от простейших программ к модульному, объектно-ориентированному, событийному и компонентному программированию.
- https://www.pascaler.ru/links.html
- Полный курс обучения языку программирования Турбо Паскаль.
Литература для учащихся:
- Информатика. Задачник-практикум в 2 т./Под ред. И.Г. Семакина, Е. К. Хеннера: Том 1. – Лаборатория Базовых знаний, 2001. – 304.: ил.
- Информатика и ИКТ: учебник для 9 класса/ И. Г. Семакин, Л. А. Залогова, С. В. Русаков, Л. В. Шестаков. – М.:БИНОМ. Лаборатория знаний, 2008 -359 с.:ил.
Литература для учителя:
- Информатика. Л. З. Шауцукова
- Турбо Паскаль. /С.А. Немнюгин – СПб: Издательство «Питер», 2000. – 496 с.: ил.
- Pascaler. Полный курс обучения языку программирования,
Структура урока
№ | Этапы урока | Время (мин.) | Приёмы и методы |
1 | Организационный момент | 1 | Приветствие учителя |
2 | Постановка образовательной задачи | 1 | Объявление учителем темы урока. |
3 | Повторение понятия цикла со счётчиком | 5 | Повторение с учащимися |
4 | Повторение правил отправки задач на сервер для тестирования | 3 | Мастер-класс “Решение и отправка задач на сервер” (Приложение 2) |
5 | Решение задач | 15 | Решение задач учащимися за компьютерами и отправка решений на сервер. (Приложение 2) |
6 | Физкультминутка | 2 | Выполнение вместе с учащимися упражнений для глаз для снятия перенапряжения. (Приложение 3) |
7 | Решение задач | 13 | Решение задач учащимися за компьютерами и отправка решений на сервер. (Приложение 2) |
8 | Подведение итогов урока | 3 | С помощью мультимедийного проектора проектировать результаты поступления на сервер. Расставить оценки учащимся за урок. (Приложение 2), (Приложение 4) |
9 | Домашнее задание | 2 | Решить задачи. (Приложение 1) |
Ход урока
1. Организационный момент
Учитель: Добрый день, ребята. Я очень рада вас всех видеть. А сейчас посмотрим, друг другу в глаза, улыбнёмся, пожелаем удачи и начнем наш урок. Садитесь. Дежурный, сообщите, пожалуйста, все ли в классе?
Ученик: В классе отсутствующих нет.
Учитель: Спасибо, садитесь. Для сегодняшнего урока вам необходимо подготовить тетради, ручки, электронные носители и дневники. Положите все эти предметы на стол.
2. Постановка образовательной задачи.
Учитель: Откройте тетради и запишите сегодняшнее число 18.12.2008 и тему урока «Циклы со счётчиком. Решение задач». Эпиграфом нашего урока я взяла слова известного французского писателя – лингвиста Гюстава Гийома “Дорогу осилит идущий, а информатику – мыслящий”
Выделила следующие цели:
Образовательные:
- закрепить понятие оператора цикла со счётчиком решением задач.
Развивающие:
- развить умение использования программы Executor для тестирования задач на сервере;
- развить логическое мышление и активность работы учащихся.
Воспитательные:
- формировать навык командной работы и объективную самооценку;
- пробудить интерес к программированию.
3. Повторение понятия цикла со счётчиком
На прошлом уроке мы изучили тему: «Циклы со счётчиком». Давайте вспомним, как записываются такие циклы при составлении программ?
Приложение 1
Ученик: В первой задаче числа, начиная от 10 до 1 с шагом -1 возводят в квадрат и печатают полученные значения.
Ученик: Во второй задаче находит сумму чисел, начиная от 5 до 10 с шагом +1 и печатает полученное значение.
Учитель: Молодцы, верно догадались.
4. Повторение правил отправки задач на сервер для тестирования
Учитель: Ребята, завтра, 19 декабря, состоится 3 республиканская командная дистанционная олимпиада по программированию. Чтобы закрепить процесс работы с пакетом программы Executor, на этом уроке решённые задачи будем отправлять на сервер для тестирования. В конце урока подведём итоги. Узнаем, какая команда больше всех набрала баллов. Победители получат дипломы, а участники – сертификаты. До начала турнира, давайте вспомним использования программы Clnt. Необходимо открыть программу Clnt. Наладить соединение с сервером. IP адрес сервера: 192.168.1.30. Порт не меняем. Войти в систему, выбрать номер своей команды. Написать пароль. Создать папку For на Рабочем столе и сохранять там все решённые задачи. По мере решения отправляйте задачи на сервер для тестирования.
Учитель: Если нет вопросов, приступите к работе.
5. Решение задач
Учащиеся занимают места за компьютерами, настраивают связь с сервером и начинают решать задачи. Звучит тихая музыка.
For7. (В №4) Даны два целых числа A и B (A < B). Найти сумму всех целых чисел от A до B включительно.
Входные данные: ввести два целых числа A, B (1<=A,B<=100).
Выходные данные: вывести сумму всех целых чисел от A до B включительно.
For8. (В №1) Даны два целых числа A и B (A < B). Найти произведение всех целых чисел от A до B включительно.
Входные данные: ввести два целых числа A, B (1<=A,B<=10).
Выходные данные: вывести произведение всех целых чисел от A до B включительно.
For9. (В №2) Даны два целых числа A и B (A < B). Найти сумму квадратов всех целых чисел от A до B включительно.
Входные данные: ввести два целых числа A, B (1<=A,B<=10).
Выходные данные: вывести сумму квадратов всех целых чисел от A до B включительно.
For10. (В №3) Дано целое число N (> 0). Найти сумму 1 + 1/2 + 1/3 + … + 1/N (вещественное число).
Входные данные: ввести целое число N (1<=n<=20).
Выходные данные: вывести сумму 1 + 1/2 + 1/3 + … + 1/N с точностью до 4 цифр в дробной части. (Приложение 5)
5. Физкультминутка
Через 15 минут работы за компьютерами выполняют все вместе с учителем упражнения для снятия усталости плеч, спины, мышц шеи и глаз.
Учитель: Ребята, вы уже сидите за компьютерами 15 минут, наверное, устали ваши глаза. Давайте выполним упражнения для глаз, спины, шеи.
- Открытыми глазами медленно, в такт дыханию, плавно рисуйте глазами “восьмерку” в пространстве: по горизонтали, по вертикали, по диагонали. Повторить 5-7 раз в каждом направлении.
- Голову слегка запрокиньте назад. Преодолевая сопротивление напряженных мышц шеи, прижмите подбородок к яремной ямке. Выполните упражнение не менее 5 раз.
- Голову и плечи держите прямо. Медленно поверните голову максимально вправо (5 раз). Столько же раз выполните движение влево.
- И.п. – сидя на стуле. Заведите руки за голову – вдох, максимально прогнитесь назад 3 – 5 раз, опираясь лопатками о спинку стула – выдох.
6. Решение задач
Приложение 6
7. Подведение итогов урока
Учитель: Ребята, на этом работу за компьютерами закончим. Для подведения итогов, займите места за партами. Программа Executor проверила ваши работы. 1 место заняла команда 02, 1 место – 05, 3 место – 09. Эти учащиеся получат дипломы, а все остальные – сертификаты.
8. Домашнее задание
For11. Дано целое число N (> 0). Найти сумму N2 + (N + 1)2 + (N + 2)2 + … + (2·N)2 (целое число).
Входные данные: ввести целое число N (1<=n<=10).
Выходные данные: вывести сумму N2 + (N + 1)2 + (N + 2)2 + … + (2·N)2 (целое число).
Приложение 1 (Презентация для повторения)
Приложение 2 (Материалы для проведения соревнования по программированию)
Приложение 3 (Презентация физкультминутка)
Приложение 4 (Диплом для награждения призёров)
Приложение 5 (Условия задач)
Источник