К оглавлению

 

Урок № 29

Тема: Самостоятельная работа по решению задач по теме «Двумерные массивы»

 

1. Составление циклических алгоритмов с массивами

    Задача 1    Задача 2

2. Карточки для самостоятельной работы

        Карточка 1     Карточка 2    Карточка3      Карточка 4     Карточка 5     Карточка 6

        Карточка 7    Карточка 8    Карточка 9    Карточка 10    Карточка 11    Карточка 12

3. Задачи для самостоятельного решения

4. Вопросы и задания по теме

 

Составление циклических алгоритмов с массивами

 

 

Задача 1. Задана последовательность из n чисел: 2, 4, 7, 8, 10, 13, 15, 18, 23, ... Вычислить сумму этих чисел.

Решение
1. Исходные данные задачи — указанные числа. Закономерность в изменении их отсутствует, поэтому представим эти числа в виде массива A (1 : n). Результат — сумма элементов массива S.
2. Метод решения. Каждый элемент массива, начиная с первого, суммируем с суммой предшествующих элементов. Начальная сумма равно 0.

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

Блок-схема алгоритма:

алг СУММА
арг
A (1 : n)
рез S
нач
S := 0
для i := 1 до n шаг 1
нц
S := S + ai
кц
вывод S
кон

Для отладки исполним алгоритм, взяв в качестве теста такие данные:
n = 4;  A (1 : 4) = {2, 4, 7, 8}.
S = 0;

Цикл 1

Цикл 2

Цикл 3

Цикл 4

i = 1;
S = 0 + 2 = 2;

i = 2;
S = 2 + 4 = 6;

i = 3;
S = 6 + 7 = 13;

i = 4;
S = 13 + 8 = 21;

S = 2 + 4 + 7 + 8 = 21.

 

 

 

 

 

Задача 2. Дана матрица A (1 : n; 1 : m). Определить наибольший элемент матрицы.

Решение
1. Исходные данные — матрица A (1 : n; 1 : m). Результат — наибольший элемент — MAX.
2. Метод решения. Принимаем за наибольший элемент MAX первый элемент матрицы a11. Сравниваем каждый элемент матрицы со значением величины MAX и присваиваем ей больший элемент. Для просмотра каждого элемента необходимо организовать два цикла: первый цикл — внешний — для просмотра каждого элемента строки n, второй цикл — внутренний — для просмотра каждого элемента столбца m.

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

Блок-схема алгоритма:

алг МАКСИМУМ
арг
A (1 : n; 1 : m)
рез MAX
нач
MAX := a11
для i := 1 до n шаг 1
нц
для j := 1 до m шаг 1 нц
если aij > MAX то
MAX := aij
все
кц
кц
вывод MAX
кон

 

 

 

Карточки для самостоятельной работы

 

Карточка № 1

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

2. Напишите программу формирования и вывода массива размером 6*3, каждые три последовательных элемента в строке которого составлены по следующему правилу:

1-й — равен сумме текущих индексов, увеличенной в 10 раз;

2-й — равен целой части отделения случайного числа на сумму текущих индексов;

3-й — равен разности двух предыдущих элементов.

 

В начало

 

Карточка № 2

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

2. Напишите программу формирования и вывода массива размером 6x3, каждые три последовательных элемента в строке которого составлены по следующему правилу:

1-й — равен случайному числу, отличному от нуля;

2-й — равен квадрату предыдущего элемента;

3-й — равен целой части частного от деления двух предыдущих элементов

 

Карточка № 3

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

2. Напишите программу формирования и вывода массива размером 6*3, каждые три последовательных элемента в строке которого составлены по следующему правилу:

1 -й — равен квадрату суммы текущих индексов, увеличенному на 5;

2-й — равен целой части квадратного корня из предыдущего элемента;

3-й — равен целой части частного от деления двух предыдущих элементов.

 

В начало

 

Карточка № 4

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

2. Напишите программу формирования и вывода массива размером 6*3, каждые три последовательных элемента в строке которого составлены по следующему правилу:

1-й — равен квадрату суммы текущих индексов, увеличенному на 5;

2-й — равен целой части квадратного корня из предыдущего элемента;

3-й – равен целой части частного от деления двух предыдущих элементов.

 

Карточка № 5

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

2. Напишите программу формирования и вывода массива размером 6x3, каждые три последовательных элемента в строке которого составлены по следующему правилу:

1-й — равен сумме текущих индексов;

2-й — равен квадрату предыдущего элемента;

3-й – равен целой части от деления предыдущего элемента на текущий индекс.

 

В начало

 

Карточка № 6

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

2.     Напишите программу формирования и вывода массива размером 6x3, каждые три последовательных элемента в строке которого составлены по следующему правилу:

1-й — равен квадрату суммы текущих индексов;

2-й — равен случайному числу;

3-й – равен полусумме двух предыдущих элементов.

 

Карточка № 7

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

2. Напишите программу формирования и вывода массива размером 6*3, каждые три последовательных элмента в строке которого составлены по следующему правилу:

1-й — равен 500;

2-й — равен целой части квадратного корня из предыдущего элемента;

3-й — равен целой части от деления суммы индексов текущего элемента на 3 (если она равна 0, то соответст­вующий элемент массива делать равным 1).

 

В начало

 

Карточка № 8

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

 2. Напишите программу формирования и вывода масси­ва размером 6*3, каждые три последовательных элемента в строке которого составлены по правилу:

1-й – равен удвоенному числу, введенному с клавиатуры;

2-й – равен квадрату суммы индексов предыдущего элемента;

3-й – равен остатку от деления индекса текущего элемента на 2.

 

Карточка № 9

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

 2. Напишите программу формирования и вывода массива размером 6*3, каждые три последовательных элемента в строке которого составлены по правилу:

1-й – равен значению суммы текущих индексов, увеличенному на 3;

2-й – равен квадрату предыдущего индекса;

3-й – равен сумме двух предыдущих элементов.

 

В начало 

Карточка № 10

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

1. Напишите программу формирования и вывода массива размером 6x3, каждые три последовательных элемента в строке которого составлены по следующему правилу:

1-й — равен случайному числу;

2-й — равен целой части квадратного корня из предыду­щего элемента;

 3-й — равен сумме двух предыдущих элементов.

 

Карточка № 11

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

2. Напишите программу формирования и вывода массива размером 6x3, каждые три последовательных элемента в строке которого составлены по следующему правилу:

1-й — равен квадрату суммы индексов следующего элемента;

2-й — равен удвоенной сумме текущих индексов;

 3-й — равен разности двух предыдущих элементов.

 

В начало 

 

Карточка № 12

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

2.Напишите программу формирования и вывода массива размером 6x3, каждые три последовательных элемента в строке которого составлены по следующему правилу:

1-й — равен случайному двузначному числу;

2-й — равен целой части от деления случайного трехзначного числа на сумму индексов текущего элемента;

 3-й — равен остатку от деления случайного двухзначного числа на 10.

 

В начало 

 

Задачи для самостоятельного решения.

1. Даны целые числа a1, a2, a3. Получить целочисленную матрицу B[3x3], для которой bij = ai - 3aj.

2. Даны действительные числа a1, …, a10, b1, …, b20. Получить действительную матрицу C[20x10], для  которой cij = aj / (1 +│bi│).

3. Получить A[10x12] – целочисленную матрицу, для которой

aij = i + 2j.

4. Даны натуральное число n, действительная матрица размера nx9. Найти среднее арифметическое:

 а) каждого из столбцов;

б) каждого из столбцов, имеющих четные номера.

5. Дано натуральное число n. Выяснить, сколько положительных элементов содержит матрица A[nxn], если

 а) aij = sin (i + j/2);

б) aij = cos (i2 + n);

в) aij = sin (i2 – j2/n).

6. Дана действительная матрица размера n x m, в которой не все элементы равны нулю. Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент.

7. Дана действительная квадратная матрица порядка 12. Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее.

8. Даны действительные числа x1, …, x8. Получить действительную квадратную матрицу порядка 8:

a) б) в)

9. Дана действительная матрица размера nxm. Определить числа b1, …,bn, равные соответственно:

а) суммам элементов строк;

б) произведениям элементов строк;

в) наименьшим значениям элементов строк;

г) значениям средних арифметических элементов строк;

д) разностям наибольших и наименьших значений элементов строк.

10. Даны натуральное число n, действительная матрица A[nxn]. Получить последовательность элементов главной диагонали a11, a22, …, ann.

11. Все элементы с наибольшим значением в данной целочисленной квадратной матрице порядка 10 заменить нулями.

12. Дана действительная матрица размера 6x9. Найти среднее арифметическое наибольшего и наименьшего значений ее элементов.

13. Дана действительная матрица размера nxm. Найти сумму наибольших значений элементов ее строк.

14. В данной действительной квадратной матрице порядка n найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный.

15. В данной действительной матрице размера 6x9 поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением. Предполагается, что элементы единственны.

16. Дана действительная матрица размера nxm. Получить последовательность b1, …, bn, где bk – это

 а) наибольшее из значений элементов k-й строки;

б) сумма наибольшего и наименьшего из значений элементов k-й строки;

в) число отрицательных элементов в k-й строке;

г) произведение квадратов тех элементов k-й строки, модули которых принадлежат отрезку [1; 1,5].

17. Дана целочисленная квадратная матрица порядка n. Найти номера строк:

 а) все элементы которых – нули;

б) элементы в каждой из которых одинаковы;

в) все элементы которых четны;

г) элементы каждой из которых образуют монотонно убывающую последовательность.

18. Дана действительная квадратная матрица порядка 10. В строках с отрицательным элементом на главной диагонали найти:

а) сумму всех элементов

б) наибольший из всех элементов.

19. Дана квадратная матрица порядка 10. Заменить элементы, расположенные под главной диагональю, максимальным элементом.

 

В начало

 

 

 

 

 

Вопросы и задания по теме:

1.     Что такое массив?

2.     Почему массив является структурированным типом данных?

3.     Что такое размерность массива? Существуют ли ограничения на размерность массива?

4.     Какого типа могут быть элементы массива?

5.     Какого типа могут быть индексы элементов массива?

6.     Какие простые типы данных относятся к порядковым?

7.     Какими способами может быть заполнен массив? Приведите примеры.

8.     Как определить минимальный объём памяти, отводимой под массив?

9.     Какие действия выполняют обычно над элементами массива?

10. Может ли массив быть элементом массива?

11. В каком случае массивы совместны по присваиванию?

12. Пусть элементами массива A (a[1], a[2], a[3], a[4]) являются соответственно x, -x, x2, -x2. Чему будет равно значение выражения

a[-a[a[3]-2]]+a[-a[a[3]]]

при x=2?

13. Можно ли выполнять обход двумерного массива, организовав внешний цикл по столбцам, а внутренний — по строкам?

14. Точно и однозначно сформулировать условие задачи, решение которой приведено в данной программе:

Program Kr_N_4;

Const NMax = 50; Type Mass = Array[1..NMax,0..NMax-1] Of Real;

Var A : Mass; I, J, N : 0..NMax; C : Real;

Begin Write('Количество элементов массива N=? '); ReadLn(N);

For I := 1 To N Do

              For J := 0 To N-1 Do

                          Begin Write('A[',I,',',J,']= '); Readln(A[I,J])End;

For I := 1 To N Do

              For J := 0 To N-1 Do

                          Begin C := A[I,J]; 

                                      A[I,J] := A[N-I+1,J];

                                      A[N-I+1,J] := C

                          End;

For I := 1 To N Do

              Begin For J := 0 To N-1 Do

                                      Write(A[I,J]:5:2,' ');

                          WriteLn

              End;

End.

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

 

В начало

 

К оглавлению

Сайт управляется системой uCoz