Трассировка программ обработки массива

Слайд 2

Классификация задач

1.Значения элементов массива не заданы, а определены условием

В программе описан

Классификация задач 1.Значения элементов массива не заданы, а определены условием В программе
одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:
s:=0;
n:=10;
for i:=0 to n-1 do
s:=s+A[i]-A[i+1]
В начале выполнения этого фрагмента в массиве находились трёхзначные натуральные числа, не делящиеся на 20. Какое наибольшее значение может иметь переменная s после выполнения данной программы?

В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы, обрабатывающей данный массив:
s:=0;
n:=10;
for i:=0 to n-1 do begin
s:=s+A[i]-A[i+1]
end;
В начале выполнения этого фрагмента в массиве находились двухзначные натуральные числа. Какое наибольшее значение может иметь переменная s после выполнения данной программы?

Слайд 3

2. Значения элементов массива заданы перечислением

Классификация задач

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

2. Значения элементов массива заданы перечислением Классификация задач В программе используется одномерный
A с индексами от 0 до 9.
Значения элементов равны 5; 1; 6; 7; 8; 8; 7; 7; 6; 9, т.е. A[0] = 5; A[1] = 1 и т.д. Определите значение переменной c после выполнения следующего фрагмента программы:
c := 0;
for i := 1 to 9 do
if A[i-1] > A[i] then begin
t:= A[i];
A[i]:= A[i - 1];
A[i-1]:= t
end
else
c:= c + 1;

В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 8, 4, 3, 0, 7, 2, 1, 5, 9, 6, т.е. A[0] = 8; A[1] = 4 и т.д. Определите значение переменной s после выполнения следующего фрагмента программы:
s := 0;
for j := 0 to 8 do
if A [j] > A [j+1] then begin
s := s + 1;
t := A[j];
A[j] := A[j+1];
A[j+1] := t;
end;

Слайд 4

Что надо бы помнить

A[i]-элемент, i- номер элемента
t:= A[i];
A[i]:= A[i -

Что надо бы помнить A[i]-элемент, i- номер элемента t:= A[i]; A[i]:= A[i
1];
A[i-1]:= t
Фрагмент, где два элемента меняются местами

Слайд 5

Задача 1 (сайт kpolyakov.spb.ru)

В программе используется одномерный целочисленный массив A с

Задача 1 (сайт kpolyakov.spb.ru) В программе используется одномерный целочисленный массив A с
индексами от 0 до 9.
Значения элементов равны 5; 1; 6; 7; 8; 8; 7; 7; 6; 9, т.е. A[0] = 5; A[1] = 1 и т.д. Определите значение переменной c после выполнения следующего фрагмента программы:
c := 0;
for i := 1 to 9 do
if A[i-1] > A[i] then begin
t:= A[i];
A[i]:= A[i - 1];
A[i-1]:= t
end
else
c:= c + 1;

Слайд 6

5

1

7

6

6

8

7

7

+

-

-

7

8

8

-

7

6

8

8

7

+

+

8

4

3

2

1

4

6

9

+

7

7

9

4

4

5

-

-

7

8

5 1 7 6 6 8 7 7 + - - 7

Слайд 7

Задача 2 (сайт kpolyakov.spb.ru)

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

Задача 2 (сайт kpolyakov.spb.ru) В программе используется одномерный целочисленный массив A с
от 0 до 9. Значения элементов равны 8, 4, 3, 0, 8, 2, 1, 5, 9, 6 соответственно, т.е. A[0] = 8; A[1] = 4 и т.д. Определите значение переменной s после выполнения следующего фрагмента программы:
s := 0;
for j := 0 to 8 do
if A [j] > A [j+1] then begin // УСЛОВИЕ
s := s + 1;
t := A[j];
A[j] := A[j+1];
A[j+1] := t;
end;

Меняем местами 2 элемента

Слайд 8

A [j] > A [j+1]

ЭТО ЛЕГКО!

A [j] > A [j+1] ЭТО ЛЕГКО!

Слайд 9

Задача 3 (Статград, март 2019)

3.Представленный ниже фрагмент программы обрабатывает элементы одномерного целочисленного

Задача 3 (Статград, март 2019) 3.Представленный ниже фрагмент программы обрабатывает элементы одномерного
массива A с индексами от 0 до 9. Перед началом выполнения данного фрагмента эти элементы массива имели значения 2, 4, 6, 1, 7, 2, 3, 6, 7, 2 (т. е. A[0] = 2, A[1] = 4, …, A[9] = 2). Определите значение переменной s после выполнения фрагмента.
s := 0;
for i:=1 to 9 do begin
if A[0] < A[i]
then A[0] := A[0] + A[i]
else A[0] := A[0] - A[i];
s := s + A[0]
end;

Слайд 10

УСЛОВИЕ A[0] < A[i]
ДА A[0] := A[0] + A[i]
НЕТ A[0] := A[0]

УСЛОВИЕ A[0] ДА A[0] := A[0] + A[i] НЕТ A[0] := A[0]
- A[i];
ШАГ1 i=1 A[0] = 2, A[1] = 4
A[0] < A[1]? 2< 4?
ДА A[0] := A[0] + A[1]= 2+4 =6

s := s + A[0]= 0+6 =6

6

Имя файла: Трассировка-программ-обработки-массива.pptx
Количество просмотров: 46
Количество скачиваний: 0