Презентация "Алгоритмы, программирование. Решение задач ОГЭ" 9 класс


Подписи к слайдам:
Решение задач части 1 ЕГЭ по информатике на тему «Программирование»

Алгоритмы, программирование Решение задач ОГЭ

Учитель – Богачёва Г.В.

Лицей № 144 Санкт-Петербурга

Задание 8. Умение исполнить линейный алгоритм, записанный на алгоритмическом языке

Пример

В программе «:=» обозначает оператор присваивания, знаки «+», «–», «*» и «/» – соответственно операции сложения, вычитания, умножения и деления. Правила выполнения операций и порядок действий соответствуют правилам арифметики.

Определите значение переменной a после выполнения алгоритма. В ответе укажите одно целое число – значение переменной a.

a := 6

b := 2

b := a/2*b

a := 2*a+3*b

Решение

Трассируем программу:

Ответ: 30

Номер команды

a

b

1. a := 6

6

2. b := 2

6

2

3. b := a/2*b

6

6

4. a := 2*a+3*b

30

6

1. Символ «:=» обозначает оператор присваивания, знаки «+», «–», «*» и «/» – соответственно операции сложения, вычитания, умножения и деления. Правила выполнения операций и порядок действий соответствуют правилам арифметики.

Определите значение переменной b после выполнения данного алгоритма:

a := 4

b := 10

a := b-a*2

b := 24/a*4

В ответе укажите одно целое число – значение переменной b.

Ответ: 48

2. Определите значение переменной a после исполнения данного алгоритма. Порядок действий соответствует правилам арифметики.

a:= –3

a:= –a – a

b:= a + 2

a:= –b + a*b

В ответе укажите одно целое число – значение переменной a.

Ответ: 40

3. Определите значение переменной с после исполнения данного алгоритма. Порядок действий соответствует правилам арифметики.

a:= 6

a:= (a + 3) – a – a

b:= 21 + a*a

c:= b/(–a) + 5

В ответе укажите одно число – значение переменной с.

Ответ: 15

4. Определите значение переменной с после исполнения данного алгоритма. Порядок действий соответствует правилам арифметики.

a:= 8

a:= –5 + (a + 2)

b:= –a +(a*2)

c:= (b – a)*(2 – a)

В ответе укажите одно число – значение переменной с.

Ответ: 0

5. Определите значение переменной a после исполнения данного алгоритма. Порядок действий соответствует правилам арифметики.

a:= 4

a:= a *(–a)

b:= –a/2

a:= (a + b) + 13

В ответе укажите одно число – значение переменной a.

Ответ: 5

6. Определите значение переменной b после исполнения данного алгоритма. Порядок действий соответствует правилам арифметики.

a := 5

b := 4

b := 100 - а * b

а := b / 16 * a

В ответе укажите одно число – значение переменной b.

Ответ: 25

Задание 9. Умение исполнить простейший циклический алгоритм, записанный на алгоритмическом языке

Пример Определите значение переменной с после выполнения фрагмента алгоритма:

Значение переменной цикла

b

c

0

0

1

1

0

2

2

1

3

3

3

4

4

6

5

5

10

6

6

15

7

7

21

8

8

28

9

9

36

10

10

45

11

11

55

Ответ: 55

Задача 8 из демоверсии 2015 (ЕГЭ)

Паскаль

var s, n: integer;

begin

s := 33;

n := 1;

while s > 0 do

begin

s := s – 7;

n := n * 3

end;

writeln (n)

end.

Решение

Трассируем программу:

Номер команды

s

n

1

33

1

2

26

3

3

19

9

4

12

27

5

5

81

6

-2

243

7 -2 > 0

Ответ: 243

аналогично

Паскаль

Паскаль

Паскаль

Паскаль

var n, s: integer;

begin

  n := 0;   s := 0;

  while s <= 257 do

  begin

    s := s + 25;

    n := n + 2

  end;

  write(n)

end.

 

var n, s: integer;

begin

  n := 0;   s := 0;

  while s <= 257 do

  begin

    s := s + 25;

    n := n + 4

  end;

  write(n)

end.

var n, s: integer;

begin

  n := 0;   s := 301;

  while s > 0 do

  begin

    s := s - 10;

    n := n + 2

  end;

  write(n)

end.

var n, s: integer;

begin

  n := 0;   s := 301;

  while s > 0 do

  begin

    s := s - 10;

    n := n + 3

  end;

  write(n)

end.

Ответы

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

22 44 62 93

Определите, что будет напечатано в результате работы следующей программы. Текст программы приведен на двух языках программирования.

Паскаль

Алгоритмический язык

var s, i: integer;

begin

s:=0;

for i:=2 to 10 do

s:=s+i;

write (s);

end.

алг

нач

цел s, i

s:=0

нц для i от 2 до 10

s:=s+i

кц

вывод s

кон

Паскаль

Алгоритмический язык

var s, k: integer;

begin

s:=50;

for k:=0 to 8 do

s:=s – 4;

write (s);

end.

алг

нач

цел s, k

s:=50

нц для k от 0 до 8

s:=s - 4

кц

вывод s

кон

Ответы: 54 14

Определите, что будет напечатано в результате работы следующей программы. Текст программы приведен на двух языках программирования.

Паскаль

Алгоритмический язык

var a, b: integer;

begin

a:=2;

b:=0;

while a<>10 do

begin

a:=a+2;

b:=b+3*a;

end;

write (b);

end.

алг

нач

цел a, b

a:=2

b:=0

нц пока a<> 10

a:=a+2

b:=b+3*a

кц

вывод b

кон

Ответ: 84

Задание 10. Умение исполнить циклический алгоритм обработки массива чисел, записанный на алгоритмическом языке. Пример

В таблице Dat представлены данные о количестве голосов, поданных за 10 исполнителей народных песен (Dat[1] – количество голосов, поданных за первого исполнителя; Dat[2] – за второго и т. д.). Определите, какое число будет напечатано в результате работы следующей программы.

Алгоритмический язык

Бейсик

Паскаль

алг

нач

целтаб Dat[1:10]

цел k, m

Dat[1] := 16 Dat[2] := 20 Dat[3] := 20 Dat[4] := 41 Dat[5] := 14 Dat[6] := 21 Dat[7] := 28 Dat[8] := 12 Dat[9] := 15 Dat[10] := 35 m := 0

нц для k от 1 до 10

если Dat[k]>m то

m := Dat[k]

все

кц

вывод m

кон

DIM Dat(10) AS INTEGER

DIM k,m AS INTEGER

Dat(1) = 16: Dat(2) = 20 Dat(3) = 20: Dat(4) = 41 Dat(5) = 14: Dat(6) = 21 Dat(7) = 28: Dat(8) = 12 Dat(9) = 15: Dat(10) = 35

m = 0

FOR k = 1 TO 10

IF Dat(k)>m THEN

m = Dat(k)

ENDIF

NEXT k

PRINT m

Var k, m: integer;

Dat: array[1..10] of integer;

Begin

Dat[1] := 16; Dat[2] := 20; Dat[3] := 20; Dat[4] := 41; Dat[5] := 14; Dat[6] := 21; Dat[7] := 28; Dat[8] := 12; Dat[9] := 15; Dat[10] := 35;

m := 0;

for k := 1 to 10 do

if Dat[k]>m then

begin

m := Dat[k]

end;

writeln(m);

End.

Решение

Проанализировав программу, определяем, что данный алгоритм – поиск максимального элемента в массиве (заносим в переменную m число 0, затем каждый элемент массива сравниваем со значением переменной m, и, если очередной элемент больше m, меняем значение m на значение элемента массива).

Ответ: 41

1. В массиве Day хранятся данные о количестве израсходованных денег за телефон за неделю (Day [1] — данные за понедельник, Day [2] — за вторник и т.д.). Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на двух алгоритмических языках.

Алгоритмический язык

Паскаль

алг

нач

целтаб Day[1:7]

цел i, m, d

Day [1]:=79 Day [2]:=25 Day [3]:=67 Day [4]:=80

Day [5]:=63 Day [6]:=17 Day [7]:=68 d:= 1; m:= Day [1]

нц для i от 2 до 7

если Day[i] > m то

m:= Day[i]; d:=i

все

кц

вывод d

кон

var i, m, d:

integer;

Day: array[1..7] of

integer;

begin

Day [1]:=79; Day[2]:=25; Day [3]:=67; Day[4]:=80;

Day [5]:=63; Day[6]:=17; Day [7]:=68; d:= 1; m:= Day [1];

for i:=2 to 7 do begin

if Day [i] > m then begin

m:= Day [i]; d:=i end end;

write(d);

End.

Ответ: 4

2. В массиве E хранятся данные измерений среднемесячного расхода электроэнергии за год в киловаттах (Е[1] — данные за январь, Е[2] — за февраль и т.д.). Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на двух алгоритмических языках.

Алгоритмический язык

Паскаль

алг

нач

целтаб E[1:12]

цел i, k, d

E[1]:=125 E[2]:=234 E[3]:=168 E[4]:=89

E[5]:=108 E[6]:=86 E[7]:=108 E[8]:=648

E[9]:=259 E[10]:=386 E[11]:=250 E[12]:=367

d:= 1; k:=E[1]

нц для i от 2 до 12

если E[i] < k то

k:=E[i]; d:=i все

кц

вывод d

кон

var i, k, d: integer;

E: array[1..12] of

integer;

begin

E[1]:=125; E[2]:=234; E[3]:=168; E[4]:=89;

E[5]:=108; E[6]:=86; E[7]:=108; E[8]:=648;

E[9]:=259; E[10]:=386; E[11]:=250; E[12]:=367;

d:= 1; k:=E[1];

for i:=2 to 12 do begin

if E[i] < k then begin

k:=E[i]; d:=i end

end;

write(d);

end.

Ответ: 6

3. В таблице Dat хранятся данные о количестве сделанных учениками заданий (Dat[1] заданий сделал первый ученик, Dat[2] – второй и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на двух языках.

Алгоритмический язык

Паскаль

алг

нач

  целтаб Dat[1:10]

  цел  k, m

Dat[1] := 7; Dat[2] := 9;   Dat[3] := 10;  Dat[4] := 5;  Dat[5] := 6; Dat[6] := 7;  Dat[7] := 9; Dat[8] := 8;   Dat[9] := 6; Dat[10] := 9;  m := 0

  нц для k от 1 до 10

    если Dat[k] < 7  то

     m := m + 1

    все

  кц

  вывод m

кон

Var k, m: integer;

 Dat: array[1..10] of integer;

Begin

  Dat[1] := 7;  Dat[2] := 9;   Dat[3] := 10; Dat[4] := 5;   Dat[5] := 6;  Dat[6] := 7;

  Dat[7] := 9;  Dat[8] := 8;   Dat[9] := 6;  Dat[10] := 9;

  m := 0;

  for k := 1  to 10 do

    if  Dat[k] < 7 then

      begin

        m := m + 1

      end;

Ответ: 3

4. В таблице Dat хранятся данные о количестве сделанных учениками заданий (Dat[1] заданий сделал первый ученик, Dat[2] – второй и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на двух языках. программирования.

Алгоритмический язык

Паскаль

алг

нач

  целтаб Dat[1:11]

  цел  k, m

  Dat[1] := 20; Dat[2] := 25;   Dat[3] := 19 Dat[4] := 25;   Dat[5] := 26; Dat[6] := 22

  Dat[7] := 24; Dat[8] := 28;   Dat[9] := 26 Dat[10] := 21;   Dat[11] := 27;   m := 0

  нц для k от 1 до 11

    если k > 9  то

     m := m + Dat[k]

    все

  кц

  вывод m

кон

Var k, m: integer;

 Dat: array[1..11] of integer;

Begin

  Dat[1] := 20;  Dat[2] := 25;   Dat[3] := 19;   Dat[4] := 25;   Dat[5] := 26;  Dat[6] := 22;

  Dat[7] := 24;  Dat[8] := 28;   Dat[9] := 26;   Dat[10] := 21;   Dat[11] := 27;   m := 0;

  for k := 1  to 11 do

    if  k > 9 then

      begin

        m := m + Dat[k]

      end;

  writeln(m)

end.

Ответ: 48

5. В таблице Dat хранятся данные о количестве сделанных учениками заданий (Dat[1] заданий сделал первый ученик, Dat[2] – второй и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на двух языках.

Алгоритмический язык

Паскаль

алг

нач

  целтаб Dat[1:11]

  цел  k, m

  Dat[1] := 20; Dat[2] := 25;   Dat[3] := 19

Dat[4] := 25;   Dat[5] := 26; Dat[6] := 22

  Dat[7] := 24; Dat[8] := 28;   Dat[9] := 26

Dat[10] := 21;   Dat[11] := 27;   m := 30

  нц для k от 1 до 11

    если Dat[k] < m  то

     m := Dat[k]

    все

  кц

  вывод m

кон

Var k, m: integer;

 Dat: array[1..11] of integer;

Begin

Dat[1] := 20;  Dat[2] := 25;   Dat[3] := 19;   Dat[4] := 25;   Dat[5] := 26;  Dat[6] := 22;  Dat[7] := 24;  Dat[8] := 28;   Dat[9] := 26;  Dat[10] := 21;   Dat[11] := 27;   m := 30;

  for k := 1  to 11 do

    if  Dat[k] < m then

      begin

        m := Dat[k]

      end;

  writeln(m)

      end.

Ответ: 19

6. В таблице Dat хранятся данные о количестве сделанных учениками заданий (Dat[1] заданий сделал первый ученик, Dat[2] – второй и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на двух языках.

Алгоритмический язык

Паскаль

алг

нач

  целтаб Dat[1:11]

  цел  k, m

  Dat[1] := 20; Dat[2] := 25;   Dat[3] := 19 Dat[4] := 25;   Dat[5] := 26; Dat[6] := 22

  Dat[7] := 24; Dat[8] := 28;   Dat[9] := 26

Dat[10] := 21;   Dat[11] := 27;  m := 0

  нц для k от 1 до 11

    если k < 5  то

     m := m + Dat[k]

    все

  кц

  вывод m

кон

Var k, m: integer;

 Dat: array[1..11] of integer;

Begin

  Dat[1] := 20;  Dat[2] := 25;   Dat[3] := 19;  

Dat[4] := 25;   Dat[5] := 26;  Dat[6] := 22;

  Dat[7] := 24;  Dat[8] := 28;   Dat[9] := 26;

Dat[10] := 21;   Dat[11] := 27;   m := 0;

  for k := 1  to 11 do

    if  k< 5 then

      begin

        m := m + Dat[k]

      end;

  writeln(m)

End.

Ответ: 89

Источники:

  • Открытый банк заданий по информатике ФИПИ
  • http://opengia.ru/subjects/informatics-9/topics/1

  • Демоверсии оГЭ и ГИА по информатике прошлых лет
  • http://www.fipi.ru/oge-i-gve-9/demoversii-specifikacii-kodifikatory

  • Блог http://galinabogacheva.livejournal.com/
  • Картинка: http://rover.info/