Изучение нового материала
| Циклспредусловием–этоцикл,которыйповторяетсядотехпор,покаусловиевыполняется(истинно).Блок-схемацикласпредусловиемпредставленанарисунке1.
Рис.1.
ДляреализациицикласпредусловиемиспользуетсяоператорWhile.ВобщемвидеоператорWhileнаязыкепрограммированияПаскальможетбытьпредставлентак:
While<условие>doзаголовокцикла
Begin
<оператор_1>;телоцикла
<оператор_2>;
End;
Важнопомнить:
Еслиусловиесразуоказываетсяложным,циклспредусловиемневыполнитсяниразу!
Втелецикладолжныбытьоператоры,которыевкакой-томоментизменятзначениеусловия,сделавеголожным.Еслиэтогонеслучится,циклбудетбесконечным,тоестьпрограмма«зациклится».
Зациклившуюсяпрограммуследуетостановитьспомощьюкоманды
Программа->Завершить,иначеонабудетвыполнятьсябесконечно(точнее,довыключениякомпьютера).
Воператорахforиwhileточкасзапятойнеставитсянипередсловомdo,нипосленего!
Пример1.ВычислитьсуммупервыхNнатуральныхчисел.
programsumma_N_2;
vari,n,sum:integer;
begin
write('n=');{вводисходныхданныхсклавиатуры}
readln(n);{n-количествопервыхнатуральныхчисел}
sum:=0;{присвоимпеременнойsumначальноезначение0,}
i:=1;{апеременнойi-начальноезначение1}
whilei<=ndo{покаi<=nвыполнить}
begin
sum:=sum+i;{телоцикла}
i:=i+1;{переменнаяIменяетсявнутрицикла,иеевеличинаопределяеточередноеповторениециклаилизавершениеего}
end;
writeln('Sum=',sum);{выводрезультата}
end.
Результатвыполненияпрограммывслучаевводаn=10:
Пример2.Сколькослагаемыхдолжнобытьвсумме2+4+6+8+….,чтобыэтасуммаоказаласьбольшенекоторогоданногонатуральногочислаN.
Программарешениязадачиможетиметьвид:
ProgramKol_slag;
vari,x,sum,n:integer;{i-счетчикслагаемых,
впеременнуюxбудутзаписыватьсяслагаемые,
впеременнойsumбудетнакапливатьсясумма}
begin
x:=2;{первоеслагаемоеравно2}
i:=1;{начальноезначениесчетчикаслагаемыхравно1}
sum:=2;
write('n=');
readln(n);{вводчислаn}
whilesum<=ndo{покаsum<=nвыполнитьтелоцикла}
begin
x:=x+2;{следующееслагаемоена2большепредыдущего}
i:=i+1;{увеличениесчетчикаслагаемыхна1}
sum:=sum+x;{прибавлениеочередногослагаемогоксумме}
end;
writeln(i,'слагаемых');
end.
РезультатвыполненияпрограммыприN=30: CпомощьюоператораWhileможнорисоватьразличноеколичествографическихфигур.Например,заполнятьэкранкругамиразличнымспособом:вдольверхнегокраяэкрана,вдольнижнегокрая,вдольлевогокраяит.д..
Пример3.Нарисоватьрядзакрашенныхвзеленыйцветкруговрадиуса20пикселейвдольверхнегокраяэкранамонитора.
Программарешениязадачиможетиметьвид:
programkrugi;
usesgraphabc;
varx,y,r:integer;
begin
clearWindow(clViolet);
setBrushColor(clGreen);{устанавливаетзеленыйцветкисти}
x:=22;y:=22;r:=20;{начальныезначенияx,y,r}
whilex<660do
begin
circle(x,y,r);{рисуеточереднойкруг}
x:=x+40;{смещаеткоординатуxдляследующегокруга}
end;
end.
Спомощьюоператораwhileможнореализоватьимитациюдвиженияграфическихобъектов.
Пример4.Организоватьимитациюдвиженияшарикапоэкранумонитора.
Длятогочтобыграфическийобъектдвигалсяпоэкрану,необходимоорганизоватьповторениеследующихкоманд:
1)Нарисоватьобъект;
2)Организоватьвременнуюпаузу;
3)Стеретьобъект;
4)Изменитькоординатыобъекта.
Программарешениязадачиможетиметьвид:
programdvigenie;
usesgraphabc;
varx,y,r:integer;
begin
x:=22;y:=22;r:=20;{начальныекоординатыобъекта}
whilex<800do{повторениеследующихдействий}
begin
setBrushColor(clGreen);{задаемцветобъекта}
circle(x,y,r);{рисуемобъект}
Sleep(10);{паузавмиллисекундах}
setBrushColor(clWhite);{выбираемцветфона}
setPenColor(clWhite);{стираем(закрашиваемобъект}
circle(x,y,r);{цветомфона)}
x:=x+4;{изменяемкоординатыобъекта}
end;
end.
Реализуйтепрограммуdvigenieнакомпьютереиувидитерезультатеевыполнения.
Израссмотренныхвышепримеровможносделатьвывод:переменным,входящимвусловиезаголовкацикласпредусловиемдолжныбытьприсвоеныопределенныеначальныезначениядовходавцикл,автелецикладолжныбытьоператоры,которыеизменяютзначенияусловиядотехпор,покаононестанетложным.
Как переводится слово While?
В программировании оно означает «пока условие верно, нужно выполнять действия».
A ‘for’ loop is usually used when we repeat something for definite number of times.
A ‘while’ loop is used when a program needs to loop until a particular condition happens.
For example, while wheels of the train rotate, the train keeps moving. If they stop the train also will stop.
Блок-схема цикла с предусловием:
Общий вид оператора:
while (условие)
{
Блок действий;
}
Давайте попробуем, соблюдая перечисленные выше правила записи цикла с предусловием, составить блок-схему и записать код с использованием оператора while для решения задачи, которую мы решали на прошлом уроке (сумма чисел от 1 до 1000). #include
using namespace std;
int main()
{
setlocale(0, "");
int i = 0;
int sum = 0;
while (i < 1000)
{
i++;
sum += i; // краткая запись выражения sum=sum+i
}
cout << "Сумма чисел от 1 до 1000 = " << sum << endl;
return 0;
} Работа в парах. Написать программу, которая выводит на экран квадраты всех целых чисел от 1 до 10.
Вывести на экран все четные числа от 1 до 20
var k: integer;
Begin
k:=2;
while k<=20 do begin
writeln (k);
k := k+2;
end;
end. Маше надо решить 100 примеров. Она решила, что в первый день решит - 1 пример, во второй - 2, в третий - 3 и так далее. Сколько дней Маша будет решать примеры?
var p, sum: integer;
Begin
sum := 0;
p:=1;
while sum<=100 do begin
sum := sum+p;
p := p+1;
end;
writeln (p);
end.
| Ученики отвечают на вопросы, дают подробные пояснения к ответам:
Ученики выполняют задания, ответ записывают в тетрадь.
Выполняют самопроверку.
| Словесная оценка учителя
. Взаимооценивание
Стратегия «Стикер
| Критическое мышление.
Саморегулируемое обучение (самонаправленность в процессе работы над заданиями).
|