«Осень 2024»

Решение задач. Цикл с предусловием.

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

Олимпиады: Информатика 1 - 11 классы

Содержимое разработки

Решение задач.  Цикл с предусловием. Информатика. 8 класс. учитель информатики Ефименко Е. М.

Решение задач. Цикл с предусловием.

Информатика. 8 класс.

учитель информатики Ефименко Е. М.

Игра «Я умею считать до …»

Игра «Я умею считать до …»

  • 1 этап – от 1 до 10
  • 2 этап – от 11 до 20
  • 3 этап – числа кратные 5
  • 4 этап - четные числа в порядке убывания
  • 5 этап – простые числа
Задача 1.

Задача 1.

  • Ученик в первый день выучил 5 английских слов.
  • В каждый следующий день он выучивал на 2 слова больше, чем в предыдущий.
  • Сколько английских слов выучит ученик в 10 день занятий?
  • Сколько всего слов выучит за 10 дней.
Program slova Program slova; Var A,D,S:integer; Обозначим через: D – количество дней; А – количество выученных за каждый день слов; S - количество слов выученных за все прошедшие дни.  A, D, S S:=0 A:=5 D:=1

Program slova

  • Program slova;
  • Var A,D,S:integer;
  • Обозначим через:
  • D – количество дней;
  • А – количество выученных за каждый день слов;
  • S - количество слов выученных за все прошедшие дни.

A, D, S

S:=0

A:=5

D:=1

Какие действия повторяются? Увеличивается количество выученных за каждый день слов на 2; Увеличивается номер дня; Увеличивается общее количество выученных слов.   A:=A+2 D:=D+1 S:=S+A До каких пор выполняются  повторяющиеся действия? Пока количество, пройденных дней не достигнет 10. D<=10

Какие действия повторяются?

  • Увеличивается количество выученных за каждый день слов на 2;
  • Увеличивается номер дня;
  • Увеличивается общее количество выученных слов.

A:=A+2

D:=D+1

S:=S+A

До каких пор выполняются

повторяющиеся действия?

  • Пока количество, пройденных дней не достигнет 10.

D

Начало A, D, S Как запишется условие при котором должны выполняться повторяющиеся действия?   S:=0 A:=5 D:=1 - Цикл с предусловием D+ A:=А+2 D:=D+1 S:=S+a S Kонец

Начало

A, D, S

  • Как запишется условие при котором должны выполняться повторяющиеся действия?

S:=0

A:=5

D:=1

-

Цикл

с предусловием

D

+

A:=А+2

D:=D+1

S:=S+a

S

Kонец

Н S:=0 Program slova; Var A,D,S:integer; Begin A:=5; D:=1; S:=5; While D Begin  D:=D+1;  A:=A+2;  S:=S+A; end; Writeln(‘ В 10 день ученик выучил ‘,A); Writeln(‘За 10 дней ученик выучил ‘,S); Readln End. A:=5 D:=1 - D+ A:=А+2 D:=D+1 S:=S+a S K

Н

S:=0

Program slova;

Var A,D,S:integer;

Begin

A:=5; D:=1; S:=5;

While D

Begin

D:=D+1;

A:=A+2;

S:=S+A;

end;

Writeln(‘ В 10 день ученик выучил ‘,A);

Writeln(‘За 10 дней ученик выучил ‘,S);

Readln

End.

A:=5

D:=1

-

D

+

A:=А+2

D:=D+1

S:=S+a

S

K

Program slova; Var A,D,S:integer; Begin A:=5; D:=1; S:=5; While D Begin  D:=D+1;  A:=A+2;  S:=S+A; Writeln( ‘В’, A , ‘день ученик выучил’ , A); end; Writeln(‘ В 10 день ученик выучил ‘,A); Writeln(‘За 10 дней ученик выучил ‘,S); Readln End.

Program slova;

Var A,D,S:integer;

Begin

A:=5; D:=1; S:=5;

While D

Begin

D:=D+1;

A:=A+2;

S:=S+A;

Writeln( ‘В’, A , ‘день ученик выучил’ , A);

end;

Writeln(‘ В 10 день ученик выучил ‘,A);

Writeln(‘За 10 дней ученик выучил ‘,S);

Readln

End.

  • Как надо изменить программу, чтобы на экране выводились сообщения о том, сколько слов выучено за каждый пройденный день, а не только за десятый?
Как решать задачи? Запомните! Внимательно прочитайте задачу. Определите известные величины, их тип. Что надо найти? Тип величины? Выясните, как между собой связаны все эти величины. Запишите краткое условие задачи. Составьте план решения задачи (блок-схему). Запишите решение задачи – программу. Проверти правильность. Ответьте на вопрос:  Можно решить задачу другим способом?

Как решать задачи?

Запомните!

Внимательно прочитайте задачу.

Определите известные величины, их тип. Что надо найти? Тип величины?

Выясните, как между собой связаны все эти величины. Запишите краткое условие задачи.

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

Запишите решение задачи – программу.

Проверти правильность. Ответьте на вопрос:

Можно решить задачу другим способом?

Задача 2. 5 км 0 км 3 км

Задача 2.

5 км

0 км

3 км

  • В первый день пловец проплыл 3 км.
  • В каждый последующий день он проплывал на 10% больше, чем в предыдущий день.
  • В какой по счёту день пловец начнёт проплывать более 5 км в день.
Обозначим через: D – номер дня; S - расстояние, которое проплывает пловец в очередной день. S:=3; D:=1; D:=D+1; S:=S+0,1*S; Какие действия повторяются? Увеличивается номер дня; Увеличивается путь, который проплывает каждый день пловец на 10% от предыдущего. 5 км 0 км 3 км

Обозначим через:

D – номер дня;

S - расстояние, которое проплывает пловец в очередной день.

S:=3; D:=1;

D:=D+1;

S:=S+0,1*S;

Какие действия повторяются?

  • Увеличивается номер дня;
  • Увеличивается путь, который проплывает каждый день пловец на 10% от предыдущего.

5 км

0 км

3 км

До каких пор повторяются указанные выше действия? Пока расстояние, которое проплывает пловец за определённый день не станет больше 5 км.  Назовите условие выполнения цикла?  S
  • До каких пор повторяются указанные выше действия?
  • Пока расстояние, которое проплывает пловец за определённый день не станет больше 5 км.
  • Назовите условие выполнения цикла?
  • S

5 км

0 км

3 км

Program plovec; Var s:real;  d:integer; Begin S:=3; D:=1; While S Begin  D:=D+1;  S:=S+0,1*S; End; Writeln(‘В ‘, D, ‘день пловец проплывёт больше 5 км’); Readln End. Н S:=3 D:=1 - S+ S:=S+0,1*S D:=D+1 D K

Program plovec;

Var s:real;

d:integer;

Begin

S:=3; D:=1;

While S

Begin

D:=D+1;

S:=S+0,1*S;

End;

Writeln(‘В ‘, D, ‘день пловец проплывёт больше 5 км’);

Readln

End.

Н

S:=3

D:=1

-

S

+

S:=S+0,1*S

D:=D+1

D

K

Задача 3. Вычислите , где n натуральное число. =2*2*2*…*2 (n раз) Обозначим: P – произведение двоек; i - количество множителей; n – показатель степени

Задача 3.

Вычислите , где n натуральное число.

=2*2*2*…*2 (n раз)

Обозначим:

P – произведение двоек;

i - количество множителей;

n – показатель степени

Н n Program tvo; Var n,P,i:integer; Begin Writeln(‘ Укажите степень числа 2 ‘); Readln (n); P:=1; i:=1; While i Begin  P:=P*2;  i:=i+1; end; Writeln(‘ 2 в степени‘,n, ‘равно‘, P); Readln End. P:=1 i:=1 - i+ P:=P*2 i:=i+1 P K

Н

n

Program tvo;

Var n,P,i:integer;

Begin

Writeln(‘ Укажите степень числа 2 ‘);

Readln (n);

P:=1; i:=1;

While i

Begin

P:=P*2;

i:=i+1;

end;

Writeln(‘ 2 в степени‘,n, ‘равно‘, P);

Readln

End.

P:=1

i:=1

-

i

+

P:=P*2

i:=i+1

P

K

Зачем?

Зачем?

Единицы измерения информации

Единицы измерения информации

Задача 4. Организовать имитацию движения шарика по экрану монитора.  Для того чтобы графический объект двигался по экрану, необходимо организовать повторение следующих команд: 1)     Нарисовать объект; 2)     Организовать временную паузу; 3)     Стереть объект; 4)     Изменить координаты объекта.  

Задача 4.

  • Организовать имитацию движения шарика по экрану монитора.

Для того чтобы графический объект двигался по экрану, необходимо организовать повторение следующих команд:

1)     Нарисовать объект;

2)     Организовать временную паузу;

3)     Стереть объект;

4)     Изменить координаты объекта.

 

Задача 4.   Программа решения задачи может иметь вид: program dvigenie;  uses graphabc;  var x,y,r:integer; begin  x:=22; y:=22; r:=20; { начальные координаты объекта}  while x begin  setBrushColor(clGreen); { задаем цвет объекта}  circle(x,y,r); { рисуем объект}  Sleep (10); { пауза в миллисекундах}  setBrushColor(clWhite); { выбираем цвет фона}  setPenColor (clWhite); { стираем (закрашиваем объект}  circle(x,y,r); { цветом фона)}  x:=x+4; { изменяем координаты объекта}  end;  end.

Задача 4.

  Программа решения задачи может иметь вид:

program dvigenie;

uses graphabc;

var x,y,r:integer;

begin

x:=22; y:=22; r:=20; { начальные координаты объекта}

while x

begin

setBrushColor(clGreen); { задаем цвет объекта}

circle(x,y,r); { рисуем объект}

Sleep (10); { пауза в миллисекундах}

setBrushColor(clWhite); { выбираем цвет фона}

setPenColor (clWhite); { стираем (закрашиваем объект}

circle(x,y,r); { цветом фона)}

x:=x+4; { изменяем координаты объекта}

end;

end.

Изменяем. Дополняем. program dvigenie;  uses graphabc;  var x,y,r:integer; begin  x:=22; y:=422; r:=20;  while x begin  setBrushColor(clGreen);  circle(x,y,r);  Sleep (10);  setBrushColor(clWhite);  setPenColor (clWhite);  circle(x,y,r);  x:=x+1;  y:=y-1;  end;  end.

Изменяем. Дополняем.

program dvigenie;

uses graphabc;

var x,y,r:integer;

begin

x:=22; y:=422; r:=20;

while x

begin

setBrushColor(clGreen);

circle(x,y,r);

Sleep (10);

setBrushColor(clWhite);

setPenColor (clWhite);

circle(x,y,r);

x:=x+1;

y:=y-1;

end;

end.

  • Получается интересно!
Выводы:   Из рассмотренных выше примеров можно сделать вывод:  Переменным, входящим в условие заголовка цикла с предусловием должны быть присвоены определенные начальные значения до входа в цикл.  В теле цикла должны быть операторы, которые изменяют значения условия до тех пор,  пока оно не станет ложным. Начало Подготовка цикла x:=1 Kонец xy:=2*x-8 Тело цикла y Изменение параметровцикла x:=x+1

Выводы:  

  • Из рассмотренных выше примеров можно сделать вывод:
  • Переменным, входящим в условие заголовка цикла с предусловием должны быть присвоены определенные начальные значения до входа в цикл.
  • В теле цикла должны быть операторы, которые изменяют значения условия до тех пор,  пока оно не станет ложным.

Начало

Подготовка цикла

x:=1

Kонец

x

y:=2*x-8

Тело цикла

y

Изменение параметровцикла

x:=x+1

Вопросы:   1.     В каких случаях в программе используется цикл с предусловием? 2.     Какой  формат записи оператора while? 3.     При каком условии происходит выход из цикла с предусловием? 4. В каких случаях цикл с предусловием может быть бесконечным? 5. Может ли цикл с предусловием  не выполниться ни разу?    Если да, то при каких условиях?

Вопросы:  

  • 1.     В каких случаях в программе используется цикл с предусловием?
  • 2.     Какой  формат записи оператора while?
  • 3.     При каком условии происходит выход из цикла с предусловием?
  • 4. В каких случаях цикл с предусловием может быть бесконечным?
  • 5. Может ли цикл с предусловием

не выполниться ни разу?  

Если да, то при каких условиях?

Домашнее задание: Усовершенствовать созданные программы.

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

Усовершенствовать

созданные

программы.

Рефлексия:

Рефлексия:

  • «Гора УСПЕХА»
  • Вершина – всё поняли и можете объяснить другому.
  • Середина – вы всё поняли, но затрудняетесь объяснить другому.
  • Основание – пока трудно решать задачи.

Получите свидетельство о публикации сразу после загрузки работы



Получите бесплатно свидетельство о публикации сразу после добавления разработки


Серия олимпиад «Осень 2024»



Комплекты учителю



Качественные видеоуроки, тесты и практикумы для вашей удобной работы

Подробнее

Вебинары для учителей



Бесплатное участие и возможность получить свидетельство об участии в вебинаре.


Подробнее