Решение задач. Цикл с предусловием. Репникова Светлана Анатольевна Учитель информатики МБОУ «Марковская СОШ»
Задача 1. Ученик в первый день выучил 5 английских слов. В каждый следующий день он выучивал на 2 слова больше, чем в предыдущий. Сколько английских слов выучит ученик в 10 день занятий? Сколько всего слов выучит за 10 дней.
Обозначим через: D – количество дней; А – количество выученных за каждый день слов; S - количество слов выученных за все прошедшие дни.
Какие действия повторяются? Увеличивается количество выученных за каждый день слов на 2; Увеличивается номер дня; Увеличивается общее количество выученных слов.
До каких пор выполняются повторяющиеся действия? Пока количество, пройденных дней не достигнет 10. Пока количество, пройденных дней не достигнет 10.
Итак, как запишется условие при котором должны выполняться повторяющиеся действия (цикл)? D<10;
Program slova; Var a,d,s:integer; Begin A:=5; d:=1; s:=5; While d<10 do Begin D:=d+1; A:=a+2; S:=s+a; end; Writeln(‘ В 10 день ученик выучил ‘,a); Writeln(‘За 10 дней ученик выучил ‘,s); Readln End.
Как надо изменить программу, чтобы на экране выводились сообщения о том, сколько слов выучено за каждый пройденный день, а не только за десятый?
Задача 2. В первый день пловец проплыл 3 км. В каждый последующий день он проплывал на 10% больше, чем в предыдущий день. В какой по счёту день пловец начнёт проплывать более 5 км в день.
Обозначим через: D – номер дня; S - расстояние, которое проплывает пловец в очередной день.
Какие действия повторяются? Увеличивается путь, который проплывает каждый день пловец на 10% от предыдущего.
До каких пор повторяются указанные выше действия? Пока расстояние, которое проплывает пловец за определённый день не станет больше 5 км. Пока расстояние, которое проплывает пловец за определённый день не станет больше 5 км.
Назовите условие выполнения цикла? S<5
Program plovec; Var s:real; d:integer; Begin S:=3; d:=1; While s<5 do Begin d:=d+1; s:=s+0,1*s; End; Writeln(‘В ‘, d, ‘день пловец проплывёт больше 5 км’); Readln End.
Домашнее задание: 1.В первый день пловец проплыл 3км. В каждый последующий день он проплывал на 10% больше, чем в предыдущий. К какому дню он проплывет (суммарно) более 30 км? 2. Вычислите , где n натуральное число.
Обозначим через: D – номер дня; S - расстояние, которое проплывает пловец в очередной день. SUM – суммарное расстояние, за пройденные дни.
Program plovec; Var s,sum:real; d:integer; Begin S:=3; sum:=3; d:=1; While sum<=30 do Begin D:=d+1; s:=s+0.1*s; Sum:=sum+s; Readln End.
=2*2*2*…*2 (n раз) Обозначим: р – произведение двоек; I - количество множителей; n – показатель степени.
Ресурсы: Задачник-практикум часть1. Г.Семакин, Е.К. Хеннер. Андреева Е.В. «Методика обучения основам программирования на уроках информатики» Д.М.Ушаков, Т.А.Юркова «Паскаль для школьников» Алексеев Е.Р., Чеснокова О.В. «Турбо Паскаль 7.0» Фон слайдов Эркер.