Информатика_и_ИКТ._9кл._Урок№40

  • docx
  • 28.12.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Информатика_и_ИКТ._9кл._Урок№40.docx

Уроки 40–43. Программирование циклических алгоритмов

 

Планируемые образовательные результаты:

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

 

 метапредметные         умение   самостоятельно   планировать   пути

 

достижения        целей;        умение        соотносить        свои        действия        с

планируемыми    результатами,    осуществлять    контроль    своей

деятельности,         определять         способы         действий          в         рамках

предложенных       условий,       корректировать        свои        действия        в

 

соответствии    с   изменяющейся    ситуацией;    умение    оценивать

правильность выполнения учебной задачи;

 

личностные            алгоритмическое   мышление,   необходимое   для

профессиональной       деятельности        в         современном       обществе;

 

представление       о       программировании       как       сфере        возможной

профессиональной деятельности.

 

Решаемые учебные задачи:

1)    познакомиться с правилами записи оператора while;

 

2)    рассмотреть пример программирования циклического алгоритма с помощью оператора while;

 

3)    получить опыт программирования циклов с заданным условием продолжения работы;

 

4)    познакомиться с правилами записи оператора repeat;

 

5)    рассмотреть пример программирования циклического алгоритма с помощью оператора repeat;

 

6)    получить опыт программирования циклов с заданным условием окончания работы;

 

7)    познакомиться с правилами записи оператора for;

 

8)    рассмотреть пример программирования циклического алгоритма с помощью оператора for;

 

9)    получить опыт программирования циклов с заданным числом повторений;

 

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

 

11)                    сформировать умение записывать на языке программирования короткие алгоритмы с циклами.

 

Основные понятия, рассматриваемые на уроках:

 

оператор while;

 

оператор repeat;

 

оператор for.

 

Используемые на уроке средства ИКТ:

 персональный        компьютер        (ПК)        учителя,        мультимедийный

 

проектор, экран;

 

ПК учащихся.

 

Электронные образовательные ресурсы

 презентация «Программирование циклических алгоритмов» из электронного приложения к учебнику.

 

Особенности изложения содержания темы урока

 

Все четыре урока – уроки-практикумы. Они обеспечены большим количеством задач в учебнике и в рабочей тетради. Выбор тех или иных задач для выполнения на уроке и дома остаѐтся за учителем.

 

На последнем уроке можно провести небольшую проверочную работу (на 15 мин).

 

Ответы и решения к заданиям в РТ.

№ 189.

a)

s

i

i < 5

б)

s

i

i<5

в)

s

i

i > 1

 

0

0

да

 

0

0

да

 

0

2

да

 

1

1

да

 

 

1

да

 

1

1

нет

 

2

2

да

 

 

2

да

 

 

 

 

 

3

3

да

 

 

3

да

 

 

 

 

 

4

4

да

 

 

4

да

 

 

 

 

 

5

5

нет

 

1

5

нет

 

 

 

 

 

№ 190.

 

 

 

 

 

 

 

 

 

 

 

а = 23

 

p

 

s

p > 0

а = 32

p

s

p > 0

 

 

23

 

0

 

да

 

 

 

32

0

да

 

 

2

 

3

 

да

 

 

 

3

2

да

 

 

0

 

5

 

нет

 

 

0

5

нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а = 109

p

 

 

 

s

 

p > 0

 

 

 

 

 

 

109

 

 

0

 

да

 

 

 

 

 

 

10

 

 

9

 

да

 

 

 

 

 

 

1

 

 

 

10

 

да

 

 

 

 

 

 

0

 

 

 

11

 

нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


№ 191. Опечатки в условии.

 

 

 

 

алг

program n_191;

s

k

k < 6

 

цел s, k

var s, k: integer;

0

1

да

 

нач

begin

2

2

да

 

s := 0

s :=0;

4

3

да

 

k := 1

k:=1;

 

 

 

 

6

4

да

 

нц пока k < 6

while k < 6 do

 

 

 

 

8

5

да

 

s := s + 2

begin

 

 

 

 

10

6

нет

 

k := k + 1

s:= s + 2;

 

 

 

 

 

 

 

 

кц

k:=k+1;

 

 

 

 

 

 

 

 

вывод s

end;

 

 

 

 

 

 

 

 

кон

writeln (’s =’, s)

 

 

 

 

 

 

 

 

end.

 

 

 

№ 192. Приведено 2 варианта программ.

 

 

program n_192_1;

 

k

t

k > 1

 

var t, k: integer;

 

10

 

50

да

 

begin

 

 

 

8

 

45

да

 

k := 10;

 

6

 

40

да

 

t := 50;

 

 

 

 

 

 

 

4

 

35

да

 

while k>1 do

 

 

 

 

 

 

 

2

 

30

да

 

begin

 

 

 

 

 

 

 

 

 

 

 

0

 

25

нет

 

t := t - 5;

 

 

 

 

 

 

 

 

 

 

 

 

k := k -2

 

 

 

 

 

 

 

 

 

 

 

 

end;

 

 

 

 

 

 

 

 

 

 

 

 

writeln (t, k);

 

 

 

 

 

 

end.

 

 

 

 

 

 

 

 

program n_192_2;

 

 

 

 

 

 

var t, k: integer;

 

 

 

 

 

 

begin

 

 

 

 

 

 

 

 

k := 10;

 

 

 

 

 

 

t := 50;

 

 

 

 

 

 

repeat

 

 

 

 

 

 

t := t - 5;

 

 

 

 

 

 

k := k -2 ;

 

 

 

 

 

 

until

k < 1;

 

 

 

 

 

 

writeln (t, k)

 

 

 

 

 

 

end.

 

 

 

 

 

 

 

 

№ 193.

 

 

 

 

 

 

а)

 

 

 

 

 

 

s

 

i

i < 1

 

 

 

 

0

 

3

нет

 

 

 

 

1

 

2

нет

 

 

 

 

3

 

1

нет

 

 

 

 

 

135


8

0

да

б)

 

 

s

i

i <=1

0

1

да

1

0

нет

 

№ 194. Опечатка: условие выхода из цикла x=0.

 

 

 

 

 

program n_194;

s

x

 

x = 0

 

 

 

 

var s, x: integer;

0

1

 

 

нет

 

 

 

 

begin

1

5

 

 

нет

 

 

 

 

s := 0;

6

-10

 

 

нет

 

 

 

 

repeat

 

 

 

 

 

 

 

 

 

-4

3

 

 

нет

 

 

 

 

read (x);

 

 

 

 

 

 

 

 

 

-1

-8

 

 

нет

 

 

 

 

s := s + x;

 

 

 

 

 

 

 

 

 

-9

6

 

 

нет

 

 

 

 

until x = 0;

 

 

 

 

 

 

 

 

 

-3

4

 

 

нет

 

 

 

 

writeln (‘s =’, s)

 

 

 

 

 

 

 

 

 

1

0

 

 

да

 

 

 

 

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

№  195.  Опечатка  в  условии. Подсчитывается  количество введѐнных

 

чисел, больших 1.

 

 

 

 

 

 

 

 

 

k := 0;

k

x

 

x > 1

x = 0

 

 

repeat

0

1

 

 

нет

 

нет

 

 

read (x);

1

5

 

 

да

 

нет

 

 

if x > 1 then k := k+1;

 

-10

 

 

нет

 

нет

 

 

until x = 0;

 

 

 

 

 

 

 

 

 

2

3

 

 

да

 

нет

 

 

writeln (‘k =’, k)

 

 

 

 

 

 

 

 

 

 

-8

 

 

нет

 

нет

 

 

 

3

6

 

 

да

 

нет

 

 

 

 

1

 

 

нет

 

нет

 

 

 

4

2

 

 

да

 

нет

 

 

 

 

-7

 

 

нет

 

нет

 

 

 

5

4

 

 

да

 

нет

 

 

 

 

0

 

 

нет

 

да

 

 

 

№ 196. Опечатка в условии. Подсчѐт количества отрицательных и количества положительных чисел, вводимых с клавиатуры.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

136


Начало

 

Список данных

 

x,, k1, k2 - цел

 

k1 :=0

 

k2 :=0

 

x

 

да

x < 0


 

нет


 

 

k1 :=k1 + 1

 


да

x < 0

k2 :=k2 + 1

нет

 

нет

x = 0

 

да

 

k1, k2

 

Конец

 

 

№ 197. a) Лучше исправить на s:=s+i, строку i:=0 убрать!

 

s

i

i < = 5

 

 

 

0

0

да

 

 

 

0

1

да

 

 

 

1

2

да

 

 

 

3

3

да

 

 

 

6

4

да

 

 

 

10

5

да

 

 

 

15

6

нет

 

 

б) Опечатка i < =n:

 

 

 

 

 

s

n

i

 

i < =n

 

1

1

2

 

нет

Тело цикла не выполняется ни разу.

 

 

в) Опечатки i < =3:

 

 

 

 

 

s

n

i

 

i < =3

 


1

1

1

да

2

1

2

да

3

1

3

да

4

1

4

нет

 

Здесь в теле цикла только 1 оператор.

 

г) Опечатка i < =3:

 

 

 

 

s

n

i

 

i < =3

 

1

1

1

 

да

 

2

3

2

 

да

 

2+1/3

5

3

 

да

 

2+1/3+1/5

7

4

 

нет

 

Здесь в теле цикла 2 оператора.

 

 

 

 

 

 

№ 198. Опечатка k < =5

 

 

 

 

 

 

 

program n_198;

s

 

k

 

k <= 5

 

var s, k: integer;

0

 

 

 

 

 

 

begin

2

 

1

 

да

 

s := 0;

6

 

2

 

да

 

for k :=1 to 5 do

 

 

 

 

 

 

 

12

 

3

 

да

 

s := s + 2*k;

 

 

 

 

 

 

 

20

 

4

 

да

 

writeln (‘s =’, s);

 

 

 

 

 

 

 

30

 

5

 

да

 

end.

 

 

 

 

 

 

 

 

 

6

 

нет

 

№ 199.

 

 

 

 

 

 

 

t:= 1;

k

t

k <= 5

 

 

for k :=2 to 5 do

 

1

 

 

 

 

t := t * k;

2

2

да

 

 

 

3

6

да

 

 

 

4

24

да

 

 

 

5

120

да

 

 

 

6

 

 

нет

 

 

 

 

№ 200. Опечатки: в таблицах s следует заменить на m.

 

 

а)

 

m

i

i <= 6

б)

m

i

i <= 7

 

 

0

-

 

 

0

-

 

 

 

-6

1

да

 

-3

3

да

 

 

-12

2

да

 

-5

4

да

 

 

-18

3

да

 

-6

5

да

 

 

-24

4

да

 

-6

6

да

 

 

-30

5

да

 

-5

7

да

 

 

-36

6

да

 

 

8

нет

 

 

 

7

нет

 

 

 

 

Ответы и решения к заданиям в учебнике.

№ 1. Цикл выполнится 2 раза.

 


a b     s        a+b<8

 

 

 

1

2

 

-

 

да

 

 

 

 

2

4

 

-

 

да

 

 

 

 

3

6

 

 

 

нет

 

 

 

 

 

 

 

9

 

 

 

 

№ 2.

 

 

 

 

 

 

 

 

 

Ошибка 1

Ошибка 2

 

 

Ошибки 3-5

f := 1, а не f := 0

k<=n, а не k<n

 

Не хватает begin … end

 

 

 

 

 

 

 

 

 

и  ;  после  последнего

 

 

 

 

 

 

 

 

 

оператора

k := 1;

 

 

k := 1;

 

 

k := 1;

f := 0;

 

 

f := 1;

 

 

f := 1;

while k<n do

 

 

while k<n do

 

while k<=n do

f := f * k;

 

 

 

f := f * k;

 

begin

k := k + 1

 

 

 

k := k + 1

 

f := f * k;

 

 

 

 

 

 

 

 

 

k := k + 1

 

 

 

 

 

 

 

 

 

end;

Полный текст программы:

program n_2_211;

 

var n, f, k: integer;

begin

writeln ('Введите n');

readln (n);

k := 1;

f := 1;

 

while k<=n do

begin

f := f * k;

k := k + 1

end;

writeln (n,'!=', f);

end.

 

    3. Если a<b, то цикл будет выполняться бесконечно. В противном случае он не выполнится ни разу.

 

   4.

program n_4_25_211;

var

a, b, c: real; // Исходные данные

 

k:   real; // Промежуточная величина

g:   integer;  // Результат

begin

 

writeln ('Введите исходный запас рыбы А>>'); readln (a);

 

writeln ('Введите ежегодный план отлова В>>');

 


readln (b);

 

writeln ('Введите наименьший запас рыбы С>>'); readln (c);

 

g := 0;

k := a;

while k>=c do

begin

 

g := g + 1;

 

k   := k *1.15-b; end;

 

writeln ('g=', g-1);

end.

program n_4_26_211;

 

var

a:   integer; // Исходные данные

s:    integer; // Промежуточная величина

k:   integer;  // Результат

begin

a := 5;

s := 5;

 

k := 1;

while s<324 do

begin

k := k + 1;

a := a + 4;

s := s + a

 

end;

writeln ('k=', k-1);

end.

program n_4_27_211;

var

x:   integer; // Исходные данные

k:   integer;  // Результат

 

begin

writeln ('Введите x>>');

readln (x);

k := 0;

while x>0 do

begin

 

x := x div 10;

k := k + 1

end;

writeln ('k=', k);

 

end.

 

program n_4_28_211;

var

s:    real; // Промежуточная величина

k:   integer;  // Результат

begin

s := 10000;

 

while s<20000 do

begin

s := 1.05*s;

k := k + 1

end;

writeln ('k=', k);

 

end.

№ 5. Цикл выполнится 3 раза.

 

a

b

s

b>8

 

1

2

-

 

 

2

4

-

нет

 

3

8

 

нет

 

4

16

 

да

 

 

 

20

 

№ 6.

 

 

 

program n_6_211;

 

 

 

var

 

 

 

x:   integer; // Исходные данные

 

k:   integer; // Промежуточная величина

s:    integer; sar: real;  // Результат

begin

k := 0;

s := 0;

repeat

writeln (‘Введите целое число>>’);

 

readln (x);

if x>0 then

begin

k := k + 1;

s := s + x

end;

 

until x=0;

sar := s/k;

writeln (‘s=’, s, ‘ ‘, ‘sar=’, sar)

end.

№ 7.

 


program n_7_211;

 

var

 

x:   integer; // Исходные данные max: integer; // Результат

 

begin

max := -32768;

repeat

 

writeln (‘Введите целое число’);

readln (x);

if x>max then max := x;

until x=0;

writeln (‘max=’, max)

end.

 

№ 8.

 


 


program n_8_1_211;

var

x, y: integer; // Исходные данные

 

nod: integer; // Результат begin

 

writeln (‘x=’);

readln (x);

writeln (‘y=’);

readln (y);

repeat

 

if x>y then x:= x-y;

 

if x< y then y := y-x

until x=y;

 

nod := x;

 

writeln('НОД = ', nod)

 

end.


 

program n_8_2_211;

var

x, y: integer; // Исходные данные

 

nod: integer; // Результат begin

 

writeln (‘x=’);

readln (x);

writeln (‘y=’);

readln (y);

 

while x<>y do

 

if x>y then x:= x-y else y := y-x; nod := x;

 

writeln('НОД = ', nod)

 

end.

 


   9. а) 16; б) 6; в) 3 г) 1; д) 3.

   10.

program n_10_212;

var

 

i:   integer; // Счетчик цикла begin

 

for i := 1 to 10 do

 

writeln (i,' – Иванов Иван') end.

 

   11.

program n_11_212;

 

var

 

i:   integer; // Счетчик цикла begin

 

for i := 1 to 4 do

 

begin

 

writeln ('*  *  *  *');

writeln ('  *  *  *  *')

end

end.

№ 12. а)

program n_12a_212;

 

var

n:   integer;  // Исходные данные

i:   integer;  //  Счѐтчик цикла

s:    integer;  //  Результат

begin

writeln ('Введите натуральное n>>');

 

readln (n);

s := 0;

for i := 1 to n do

s := s + i;

writeln ('s=', s)

end.

б) s := s + i*i;

 

в) if i mod 2 = 0 then s := s + i;

г) if (i >9) and (i<100) then s := s + i;

№ 13.

program n_13_212;

var

x:   integer;  // Исходные данные

 

s, i: integer;   // Промежуточные величины

sar: real;   // Результат

begin

randomize;

s := 0;

for i := 1 to 10 do

begin

 

x := random(20);

writeln (i,': x = ', x);

s := s + x

end;

sar := s / 10;

writeln ('sar = ', sar);

 

end.

№ 14.

program n_14_32_212;

var

 

i:   integer;  // Промежуточные величины

 

s:    real;  // Результат

begin

s := 40000;

for i := 1 to 3 do

s := 1.05*s;

writeln ('s = ', s);

 

end.

program n_14_33_212;

var

i:   integer;  // Промежуточные величины

s:    integer;  // Результат

begin

 

s := 1;

for i := 1 to 10 do

s := s*2;

writeln ('s = ', s);

end.

№ 15.

program n_15_212;

 

var

i:   integer;  // Промежуточная величина

s:    integer;  // Результат

begin

writeln('Таблица степеней двойки:');

s := 1;

 

for i := 0 to 10 do

begin

writeln(i:6,s:6);

s:=s*2;

end;

end.

№ 16.

 

program n_16_212;

var

n:   integer;  // Исходные данные

i:   integer;  // Параметр цикла

begin

writeln ('Введите n >>');

 

readln (n);

for i := 2 to 10 do

writeln(n, ‘*’, i, ‘=’, n*i);

end.