NetNado
  Найти на сайте:

Учащимся

Учителям



Работа с массивами и матрицами в языке программирования


Тема: Работа с массивами и матрицами в языке программирования.

Что нужно знать:

  • работу цикла for (цикла с переменной)

  • массив – это набор однотипных элементов, имеющих общее имя и расположенных в памяти рядом

  • для обращения к элементу массива используют квадратные скобки, запись A[i] обозначает элемент массива A с номером (индексом) i

  • матрица (двухмерный массив) – это прямоугольная таблица однотипных элементов

  • если матрица имеет имя A, то обращение A[i,k] обозначает элемент, расположенный на пересечении строки i и столбца k

  • элементы, у которых номера строки и столбца совпадают, расположены на главной диагонали

    A[1,1]













    A[2,2]













    A[3,3]













    A[4,4]

  • выше главной диагонали расположены элементы, у которых номер строки меньше номера столбца:




    A[1,2]

    A[1,3]

    A[1,4]







    A[2,3]

    A[2,4]










    A[3,4]













  • ниже главной диагонали расположены элементы, у которых номер строки больше номера столбца:













A[2,1]










A[3,1]

A[3,2]







A[4,1]

A[4,2]

A[4,3]



Пример 1:


В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Ниже представлен фрагмент программы, записанный на разных языках программирования, в котором значения элементов сначала задаются, а затем меняются.

for i:=0 to 9 do

A[i]:=9-i;

for i:=0 to 4 do begin

k:=A[i];

A[i]:=A[9-i];

A[9-i]:=k;

end;

Чему будут равны элементы этого массива после выполнения фрагмента программы?

1) 9 8 7 6 5 4 3 2 1 0

2) 0 1 2 3 4 5 6 7 8 9

3) 9 8 7 6 5 5 6 7 8 9

4) 0 1 2 3 4 4 3 2 1 0
Решение:

  1. выясним, как заполняется массив в первом цикле

for i:=0 to 9 do

A[i]:=9-i;

здесь элемент A[0] равен 9, элемент A[1]=8 и т.д. до A[9]=0

  1. рассмотрим второй цикл, в котором операторы

k:=A[i];

A[i]:=A[9-i];

A[9-i]:=k;

меняют местами элементы A[i] и A[9-i]

  1. второй цикл выполняется всего 5 раз, то есть останавливается ровно на половине массива

for i:=0 to 4 do begin

...

end;

таким образом в нем меняются элементы A[0]A]9], A[1]A]8], A[2]A]7], A[3]A]6] и A[4]A]5]

  1. в результате массив оказывается «развернут» наоборот, элемент A[0] (он был равен 9) стал последним, следующий (A[1]=8) – предпоследним и т.д., то есть получили

0 1 2 3 4 5 6 7 8 9

  1. Ответ: 2.

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


  1. Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы:

for n:=1 to 100 do

A[n] := n - 10;

for n:=1 to 100 do

B[n] := A[n]*n;

Сколько элементов массива B будут иметь положительные значения?

1) 10 2) 50 3) 90 4) 100

  1. Все элементы двумерного массива A размером 10х10 элементов первоначально были равны 0. Затем значения элементов меняются с помощью вложенного оператора цикла в представленном фрагменте программы:

for n:=1 to 4 do

for k:=n to 4 do begin

A[n,k] := A[n,k] + 1;

A[k,n] := A[k,n] + 1;

end;

Сколько элементов массива в результате будут равны 1?

1) 0 2) 16 3) 12 4) 4


  1. Значения двумерного массива задаются с помощью вложенного оператора цикла в представленном фрагменте программы:

for n:=1 to 5 do

for k:=1 to 5 do

B[n,k] := n + k;

Чему будет равно значение B(2,4)?

1) 9 2) 8 3) 7 4) 6

  1. Дан фрагмент:

for n:=l to 6 do

for m:=l to 5 do begin

C[n,m]:=C[n,m]+(2*n-m);

end;

Чему будет равно значение С[4,3], если перед этими командами значение С[4,3]=10?

1) 5 2) 10 3) 15 4) 25

  1. Значения элементов двух массивов А и В размером 1 х 100 задаются с помощью следующего фрагмента программы:

for i:=1 tо 100 do

A[i] := 50 – i;

for i:=1 tо 100 do

B[i] := A[i] + 49;

Сколько элементов массива В будут иметь отрицательные значения?

1) 1 2) 10 3) 50 4) 100

  1. Значения элементов двумерного массива А были равны 0. Затем значения некоторых элементов были изменены (см. представленный фрагмент программы):

n := 0;

for i:=1 tо 5 do

for j:=1 tо 6-i do begin

n := n + 1;

A[i,j] := n;

end;

Какой элемент массива будет иметь в результате максимальное значение?

1) A[1,1] 2) A[1,5] 3) A[5,1] 4) A[5,5]

  1. Значения элементов двумерного массива А размером 5x5 задаются с помощью вложенного цикла в представленном фрагменте программы:

for i:=1 tо 5 do

for j:=1 tо 5 do begin

A[i,j] := i*j;

end;

Сколько элементов массива будут иметь значения больше 10?

1) 12 2) 8 3) 10 4) 4

  1. Значения элементов двумерного массива А размером 5x5 задаются с помощью вложенного цикла в представленном фрагменте программы:

for i:=1 tо 5 do

for j:=1 tо 5 do begin

A[i,j] := i + j;

end;

Сколько элементов массива будут иметь значения больше 5?

1) 5 2) 20 3) 10 4) 15

  1. Дан фрагмент программы:

for n:=1 tо 5 do

for m:=1 tо 5 do

C[n,m] := (m – n)*(m – n);

Сколько элементов массива С будут равны 1?

1) 5 2) 2 3) 8 4) 14

страница 1


скачать

Другие похожие работы: