пятница, 28 февраля 2014 г.

Выполнение и анализ простых алгоритмов. Вопросы: 8, 9, 10, 16

Начнем по порядку с вопроса №8. Часть 1.

Тема:  Оператор присваивания в языке программирования[1].
Что нужно знать:
·    переменная – это величина, которая имеет имя, тип и значение; переменная может изменяться во время выполнения программы
·    оператор присваивания служит для записи значения в переменную
·    если в переменную записывают новое значение, старое стирается
·    знаки +, -, *, / используются для обозначения операций сложения, вычитания, умножения и деления



[1] Здесь рассматривается только язык Паскаль, который является наиболее распространенным в школах России.
Шаги алгоритма выполняются последовательно
1. а=6
2. b=2
3. b=6:2*2=6
4. a=2*6+3*6=30
Задачи для тренировки
1)      Определите значение переменной b после выполнения следующего фрагмента программы, где a и b – вещественные (действительные)  переменные:
a := -5;
b := 5 + 7 * a;
b := b / 2 * a;
2)      Определите значение переменной b после выполнения следующего фрагмента программы, где a и b – вещественные (действительные)  переменные:
a := 5;
b := 5 - 3 * a;
b := b / 2 * a;
3)      Определите значение переменной b после выполнения следующего фрагмента программы, где a и b – вещественные (действительные)  переменные:
a := 5;
b := 5 + 5 * a;
b := b / 2 * a;
4)      Определите значение переменной b после выполнения следующего фрагмента программы, где a и b – вещественные (действительные)  переменные:
a := 7;
b := 7 + 3 * a;
b := b / 2 * a;
Определите значение переменной c после выполнения следующего фрагмента программы.
a := 5;
a := a + 6;
b := –a;
c := a 2*b;

Часть 1. Вопрос №9

Тема:  Анализ программы с циклами
Что нужно знать:
·      основные конструкции языка программирования:
o   объявление переменных
o   оператор присваивания
o   оператор вывода
o   циклы
·      уметь выполнять ручную прокрутку программы
·      уметь выделять переменную цикла, от изменения которой зависит количество шагов цикла
·      уметь определять количество шагов цикла
·      уметь определять переменную, которая выводится на экран















Алгоритм выполнения приводится на трех языках. Решаете на том языке, который вы знаете и понимаете.
Проводим анализ выполнения алгоритма (программы) с помощью таблицы

k
S
 Начальное значение переменных

6

0
1
6
0+10=10
2
7
10+10=20
 3
8
20+10=30
 4
9
30+10=40
 5
10
40+10=50
 6
11
50+10=60
 7
12
60+10=70

Задачи для тренировки[1]:

1)      Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
begin
  s:=0;
  k:=1;
  while k < 11 do begin
    s:=s+k;
    k:=k+1;
  end;
  write(s);
end.
2)      Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
begin
  s:=0;
  k:=0;
  while k < 30 do begin
    k:=k+3;
    s:=s+k;
  end;
  write(s);
end.
3)      Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
begin
  s:=3;
  k:=1;
  while k < 25 do begin
    s:=s+k;
    k:=k+2;
  end;
  write(s);
end.
4)      Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
begin
  s:=2;
  k:=2;
  while s < 50 do begin
    s:=s+k;
    k:=k+2;
  end;
  write(k);
end.
5)      Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
begin
  s:=0;
  k:=0;
  while s < 100 do begin
    s:=s+k;
    k:=k+4;
  end;
  write(k);
end.
6)      Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
begin
  s:=0;
  k:=1;
  while s < 66 do begin
    k:=k+3;
    s:=s+k;
  end;
  write(k);
end.
7)      Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
begin
  s:=5;
  k:=0;
  while k < 15 do begin
    k:=k+2;
    s:=s+k;
  end;
  write(s);
end.
8)      Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
begin
  s:=0;
  k:=0;
  while k < 12 do begin
    s:=s+2*k;
    k:=k+3;
  end;
  write(s);
end.
9)      Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
begin
  s:=0;
  k:=0;
  while s < 80 do begin
    s:=s+2*k;
    k:=k+4;
  end;
  write(s);
end.
10)   Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
begin
  s:=1;
  k:=0;
  while k < 13 do begin
    s:=s+2*k;
    k:=k+4;
  end;
  write(s+k);
end.



[1] Источники заданий:
1.   Демо-варианты ЕГЭ 2012-2013 гг.
2.   Тренировочные и диагностические работы МИОО.

Часть 2. Вопрос №10

Тема:  Работа с массивами и матрицами в языке программирования[1].
Что нужно знать:
·    работу цикла for (цикла с переменной)
·    массив – это набор однотипных элементов, имеющих общее имя и расположенных в памяти рядом
·    для обращения к элементу массива используют квадратные скобки, запись  A[i] обозначает элемент массива A с номером (индексом)  i
·    матрица (двухмерный массив) – это прямоугольная таблица однотипных элементов
·    если матрица имеет имя A, то обращение A[i,k] обозначает элемент, расположенный на пересечении строки i и столбца k




 Решение задачи.
Массив заполняется произвольными числами.
Изначально массив Dat выглядит так:

№ элемента массива Dat
1
2
3
4
5
6
7
8
9
10
значения
16
20
20
41
14
21
28
12
15
35

Анализ выполнения проведем в табличной форме.
№ действия
k
Dat[k]
Dat[k]>m
m:= Dat[k]
1
1
16
16>0, да
16
2
2
20
20>16, да
20
3
3
20
20>20, нет
20
4
4
41
41>20, да
41
5
5
14
14>41, нет
41
6
6
21
21>41, нет
41
7
7
28
28>41, нет
41
8
8
12
12>41, нет
41
9
9
15
15>41, нет
41
10
10
35
35>41, нет
41

Ответ: m=41 Программа искала максимальный элемент массива
http://kpolyakov.spb.ru