Официальный сайт osinform 24/7/365

Хусаинов М. В. Методические рекомендации по решению задач на массивы

Автор: 
Хусаинов Мансур Ауфарович
Место работы: 
преподаватель информатики первой категории ГОУ СПО Кушнаренковский педагогический колледж
Контакты: 

Методические рекомендации по решению задач на массивы

  1. Массивы. Некоторые теоретические сведения.

Массивы относятся к сложному типу данных. Под массивом понимается упорядоченная последовательность величин одного типа, обозначенная одним именем. Каждый элемент в массиве имеет уникальный номер (индекс) по которому и происходит упорядочение. Тип индексов может быть любым скалярным, но не вещественным! Обычно тип индексов–ограниченный тип, выделяемый из целого.
В математике понятию массив соответствует понятие вектора и матрицы.  Различают одномерные массивы (линейная таблица или вектор) двумерные массивы (прямоугольная таблица, матрица) и многомерные массивы. Одномерные, двумерные и трёхмерные массивы ещё можно представить наглядно (рис. 1). Многомерные массивы (более трёхмерных) можно представить лишь абстрактно.
Имя структурной переменной–массива образуется по тем же правилам Паскаля, что и для простых типов. Глубина вложенности, т.е. количество индексов, при определении массивов не ограничена. Играет роль только суммарный объем данных в программе.
 

 

 

 

 

 

Рис. 1 Примеры одномерных, двумерных и многомерных массивов.

Рассмотрим синтаксис описания массивов в языках программирования
Бейсик:                   DIM имя (число элементов)  AS тип
Паскаль:                 array [нижняя_граница .. верхняя_граница] of тип;
Си++:                      тип имя [число элементов];
Пример описания одномерного массива из 100 элементов целого типа:
Си++:
int IntArray[100];
Паскаль
Matrix: array [1..100] of integer;
Бейсик:
DIM IntArray(l00) AS INTEGER
Matrix [5] – пятый элемент одномерного массива Matrix;
Далее мы будем рассматривать примеры в основном на Паскале.

Элемент двумерного массива будет иметь уже два индекса: индекс строки и столбца. Например в Паскале:
Matrix2D: array [1..10,1..5] of real;
описание массива вещественных чисел из 10 строк и 5 столбцов. Размерность статического  массива (сколько в нём элементов) должна быть описана конкретно сразу в разделе VAR. Использование букв для обозначения размерности, например
Matrix2D: array [1..M,1..N] of real
допускается только тогда, когда M и N описаны предварительно, например, в разделе констант.
2. Ввод значений элементов массива.

В предыдущих примерах рассмотрены только описания массивов. Значения их элементов не определены. Так как мы работаем со сложным типом данных, поэтому ввод значений в массив осуществляется иначе, чем в случае простых переменных.
Мы должны «перебрать» все элементы массива, обращаясь к ним по их индексам–адресам. И для каждого элемента массива выполнить операцию присваивания или ввода с клавиатуры. Например, для массива из пяти элементов, описанного как
M: array [1..5] of integer;
можно записать:
M[1]:=2; M[2]:=8;
M[3]:=10; M[4]:=60; M[5]:= –8
Получили такое заполнение массива, как на рисунке 2

 

 

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

Можно использовать оператор ввода с клавиатуры значения:

Readln (M[1]);
Readln (M[2]);
Readln (M[3]);
Readln (M[4]);
Readln (M[5]); …
Вы понимаете, что данный метод хоть и прост, но крайне неэффективен.  Повторяется оператор ввода read (или readln), изменяется лишь индекс, пробегая все свои  значения, поэтому целесообразнее организовать цикл с параметром. В качестве параметра цикла будет выступать индекс элемента.
А) Фрагмент ввода с клавиатуры для одномерного  массива из 10 элементов.

for i:=1 to 10 do begin
read (a[i]);
end;

Элементы вводят через пробел и после последнего нажимают ввод.
В любом языке программирования высокого уровня есть функция получения случайных чисел из заданного интервала. В Паскале это функция random (М)– выдаёт случайное целое число из интервала [0, M-1]. Можно использовать функцию без указания аргумента: random. Она выдаёт  случайное вещественное число от 0 до 1. Для получения случайного числа из интервала [a,b], нужно пользоваться следующими формулами:
random (b-a+1)+a. Например, для [-30, 40] получим random (71)-30. При первом обращении к функции случайных чисел, необходимо инициализировать датчик случайных чисел с помощью процедуры randomize модуля crt
Б) Фрагмент ввода значений с использованием функции random для одномерного  массива.

for i:=1 to 10 do begin
a[i]:=random(101); {числа от 1 до 100}
Write (a[i]:4); {вывод значений массива, параметр 4 означает
количество позиций, отводимых под значение a[i]}
end;

Теперь рассмотрим  инициализацию значений элементов  двумерного массива.
Элементы многомерных массивов в памяти ЭВМ расположены «по строкам». То есть сначала расположены элементы первой строки (первый индекс фиксирован и равен минимальному значению (второй «пробегает» все свои значения), затем второй и т.д. Таким образом для ввода значений в двумерный массив нам можно организовать два цикла с параметром вложенных один в другой. Например, для массива размерностью M(столбцов)*N(строк)

for i:= 1 to N do begin
for j:= 1 to M do begin
A[i, j]:= random(100); { или read (A[i,j]); для ввода с клавиатуры}
end; end;

У произвольного элемен­та квадратной матрицы A[i, j] i— это номер стро­ки, а j — это номер столбца. При этом параметр внешнего цикла (индекс строки) i изменяется на один шаг, а параметр внутреннего цикла (индекс столбца) j пробегает все свои значения. Получается, что вначале по столбцам заполняется первая строка, затем вторая и т.д.
RЗадание: организуйте ввод значений элементов в массив с использованием циклов с предусловием и постусловием

  1. Вывод значений элементов массива на экран.

 

Для вывода значений двумерных и одномерных массивов на экран тоже используются вложенные циклы с параметром. Однако, основным оператором в тела цикла будет не оператор read ( ) или присваивания, а оператор вывода на экран write ( ).
Для одномерного массива из N элементов:

For i:=1 to N do begin
write (N[i]:4);
end;
Для двумерного массива M*N:

for i:= 1 to N do begin
for j:= 1 to M do begin
write (A[i,j]:4);
end;
writeln; end;

Второй оператор  writeln без аргументов переводит строку, для того, чтобы массив выводился в виде таблицы.
RЗадание: организуйте вывод массива в программе с использованием второго оператора  writeln и без него. Сравните результаты.
Массив, сформированный с использованием функции случайных чисел всегда рекомендуется выводить на экран перед обработкой. Это можно сделать, организовав отдельный цикл или в теле цикла ввода значений.
RЗадание: организуйте вывод значений элементов  массива с использованием циклов с предусловием и постусловием.

4. Примечательные элементы в массиве.

Из двумерных массивов особый интерес представляют так называемые квадратные, у которых оба измерения совпадают, например
A: array [1..5,1..5] of real;
Рассмотрим, как можно эффективно обрабатывать различные части таких матриц.
Итак, пусть наш массив уже заполнен например так как на рисунке 3:

0

1

1

1

1

2

0

1

1

1

2

2

0

1

1

2

2

2

0

1

2

2

2

2

0

Рис. 3. Пример квадратного массива
Выделим в матрице главную диа­гональ — линию, соединяющую левый верхний и правый нижний угол квадратной матрицы. Пометим все элементы цифрами 0, 1 или 2 в зависимости от расположения элемента матрицы относительно главной диагонали. Элементы, стоящие на главной диагонали матри­цы, обозначены цифрой 0.
Для элементов главной диагонали выполняется условие (i = j) . Для обработки всех элементов главной диагонали, можно организовать один цикл:

For i:=1 to 5 do begin
{…фрагмент обработки A[i,i]…}
end;

Элементы верхнего треугольника, помеченные цифрой 1, лежат правее главной диагонали. Для их обра­ботки можно написать цикл, который также не будет содержать никаких условий:

for  i :=1   to  n -1  do begin
{это цикл по всем возможным строкам}
for j := i+ 1 to n do begin
{цикл по  столбцам:  от диагонали до n}
{… фрагмент обработки A[i,j]…} end;
end;

Элементы нижнего треугольника, поме­ченные цифрой 2, описываются так:

for i  := 2  to n do begin
for j  :=  1  to i -1  do   begin                               .
{…обработка A[i,j]…}
end;
end;    …

Кроме главной диагонали в квадратном массиве можно выделить так называемую побочную диагональ. На рисунке 4 элементы, стоящие на  побочной диагонали матри­цы, обозначены цифрой 0.

1

1

1

1

0

1

1

1

0

2

1

1

0

2

2

1

0

2

2

2

0

2

2

2

2

Рис. 4. Пример квадратного массива.
Для индексов [1...N, 1...N]  элементов побочной диагонали можно записать важное соотношение:
j = N–i + 1.

Глубина вложенности структурированных типов вообще, а следовательно, и массивов - произвольная, поэтому количество элементов в списке индексных типов

(размерность массива) не ограничено, однако суммарная длина внутреннего представления любого массива, как уже говорилось, не может быть больше 65520 байт. В памяти ПК элементы массива следуют друг за другом так, что при переходе от младших адресов к старшим наиболее быстро меняется самый правый индекс массива. Если, например,
var
а : array[1. .2,1. .2] of Byte;
begin
a [1,1]:=1;  a [2,1]:=2;  a [l, 2]:=3;  a [2,2]:=4; 
end.
то в памяти последовательно друг за другом будут расположены байты со значениями 1,3,2, 4 . Это обстоятельство может оказаться важным при использовании стандартной процедуры копирования памяти MOVE.
В Турбо Паскале можно одним оператором присваивания передать все элементы одного массива другому массиву того же типа, например:
var а,b:array [1..5] of Single;
begin
.....
a := b;
.....
После этого присваивания все пять элементов массива А получат те же значения, что и в массиве В. Однако над массивами не определены операции отношения. Нельзя, например, записать  if a = b then ... 
5. Типовые алгоритмы обработки массива

К типовым нечисловым алгоритмам обработки массивов относят алгоритмы поиска и сортировки.
5.1. Алгоритмы поиска
Начнем с задачи поиска элемента в неупорядоченном массиве.
Рассмотрим массив
a :array [0..N]]   of <тип элемента>;
Индексы элементов массива, которые мы будем рассматривать, изменяются от 1 до N, а ну­левой элемент будем использовать в случае необходи­мости как вспомогательный. Конкретный же тип эле­мента не важен, он может быть как любым числовым, так и символьным или даже строковым. Алгоритм поиска в массиве элемента К, может выглядеть так:

i:=0;
repeat
i:=i+1;
until (i=N) or (a[i]=K);
if a[i]=K then write (i) else write (‘Искомого элемента нет!’);

При отсутствии в массиве элемента с искомым зна­чением К  выводится соответствующее сообщение. Даже такую программу можно упростить, с использованием так называемого "барьерного" мето­да, который часто применяется в программировании. Он заключается в том, что мы можем занести в дополнительный элемент массива (напри­мер, нулевой) искомое значение К, избавив тем са­мым условие окончания цикла от проверки на выход за границу массива:

а[0] := К;
i := N;
while (a[i] <>K) do
i := i – 1;
write(i);

Подсчитаем количество операций сравнения, кото­рое в худшем случае будет выполнено при работе дан­ного алгоритма. Оно равно N + 1. Говорят, что данный алгоритм линеен от входных данных (количество операций пропорционально количеству элементов N).
Рассмотрим теперь массив, элементы которого упо­рядочены например по возрастанию. То есть a1 < а2 < ... < аn.
Поиск элемента, равного К, в таком массиве можно выполнить с помощью алгоритма деления пополам. Приведем пример его  реализации:

L := 1; R := N;
while L < R do
begin
m := (L + R) div 2;
if a[m] < К then L := m + 1
else R := m
end;
if a[R] = К then write(R) else write(0);

На каждом шаге данного алгоритма длина части массива, в которой мы осуществляем поиск элемента, уменьшается в два раза. То есть, если N = 2i, то алго­ритм будет выполнять  i + 1 сравнение. Эта величина существенно меньше, чем N. Так, для N — 1000 число сравнений будет равно 11, а для N = 106  всего 21.
R Задание: реализуйте представленные фрагменты поиска в виде самостоятельных программ. Произведите ввод, отладку, тестирование программ на ЭВМ.

5.2 Алгоритмы сортировки.

Задача сортировки массива, то есть перестановки эле­ментов массива так, чтобы они были упорядочены по возрастанию, убыванию или другой аналогичной харак­теристике, является одной из основных технических задач программирования. С этой задачей мы сталкива­емся и при записи фамилий учеников в классном жур­нале, и при подведении итогов соревнований, и даже при упорядочении игральных карт, например, при игре в преферанс.
Рассмотрим наиболее простые алгоритмы сортировки массивов и подсчитаем их вычислительную сложность.
Традиционно наиболее простой в реализации считается так называемая "пузырьковая" сортировка.
Сутьее в случае упорядочения по возрастанию заключается в следующем.
Будем просматривать слева направо все пары соседних элементов: a1 и а2, а2 и а3 ,..., аn-1, и аn. Если при этом аi > ai+1, то элементы меняем местами. В результате такого просмотра массива максимальный элемент окажется на крайнем справа (своем) месте.
Об остальных элементах ничего определенного сказать невозможно. Будем просматривать массив снова, ис­ключив из рассмотрения правый элемент. На своем месте теперь окажется уже второй по величине эле­мент. И так далее. В последнем просмотре будут уча­ствовать только первый и второй элементы. Общее чис­ло просмотров при этом равно
N - 1.Приведем фраг­мент программы, реализующий описанный алгоритм:

for j   := 1 to n – 1 do {цикл по просмотрам}
for i   :=  1  to n –j  do {просмотр массива)
if a[i]   > a[i  +  1]then begin
х   := a[i];
a[i]    :=  a[i  +  1];
a[i  +1]    := x
end;

При оценке сложности алгоритмов сортировки обычно отдельно подсчитывают количество операций сравнения и количество операций присваи­вания, т.к. заранее неизвестно, какая из них окажет­ся более трудоемкой, ведь сравниваться между собой могут не только числа, но и строки, и другие доста­точно сложные объекты. Иногда обе операции сопос­тавимы по трудоемкости.
Количество сравнений в данном алгоритме равно
N-1+N-2 + N-3 + ... + 1= N(N - l)/2.
Количество присваиваний в три раза больше, чем число выполненных обменов. В худшем случае обмен будет производиться после каждого сравнения и об­щее число присваиваний будет равно ,
3(N - 1 + N - 2 + N - 3 + ... + 1) = 3N(N - l)/2.
Говорят, что данный алгоритм квадратичный как по числу сравнений, так и по числу присваиваний. "Пузырьковым" он называется потому, что в резуль­тате каждого просмотра на своем месте оказывается максимальный из оставшихся элементов — он как бы постепенно, шаг от шага "всплы­вает". По-другому такая сортировка называется об­менной.
Теперь рассмотрим другой метод сортировки–прямой выбор. Находится минимальный эле­мент в массиве и меняется с первым элементом массива. В результате он окажется на своем месте. Затем находится минимальный элемент среди оставших­ся и меняется  со вторым элементом. На N - 1 шаге мы закончим упорядочивание  массива. Такой алгоритм называется сортировкой прямым вы­бором. Приведем фрагмент программы, реализующий описанный алгоритм:

for i:=l  to n-l do begin
min := i;             {индекс минимального элемента}
for j := i + 1 to n do
{ищем минимальный элемент}
if a[j] < a[min] then min := j
{меняем минимальный элемент с i-м}
х := a[i];  a[i] := a[min];  a[min] := x
end;

Количество выполняемых операций в данном алго­ритме всегда одинаково. Для сравнений оно равно
N-1+N-2 + N-3 + ... + 1 = N(N - l)/2,
а для присваиваний — всего 3(N - 1).
То есть данный алгоритм квадратичный по числу сравнений и линейный (эффективный) по числу при­сваиваний.

6. Задачи на массивы.

1. Все элементы двухмерного числового массива А[1..10,1..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? (Задача из демо-версии ЕГЭ по информатике 2006 г.)
2. В произвольном двухмерном массиве размернос­тью М х Nнайти такие элементы, которые одновре­менно являются минимальными в своей строке и мак­симальными в своем столбце.
4. Пусть уk это число вызовов, которые поступают на АТС за k-тую секунду. Предположим, что yk - случайное число со значением от 0 до 6, которое генерируется формулой 
уk = trunc(abs(7sin(k))). Создать массив у с десятью элементами (h= 1, ..., 10). Вычислить количество вызовов за первые 10 секунд работы АТС и максимальное количество вызовов, которые посту­пили за одну секунду. Вывести результаты вычислений.
5. Модифицируйте программу ATS, используя функцию random, и определите, за какую секунду поступило максимальное количество вызовов.
6. Создать массив у, элементы которого вычисляют по формуле yk= ln(k) - 3, где k = 1, 2, ..., 10. Построить массив g, состоящий из отрицательных элементов массива у. Вывести ре­зультаты вычислений на экран. Если искомых величин нет, то вывести соответствующее сообщение.
7. Составить программу для построения таблицы ум­ножения двух чисел (таблицы Пифагора) и занесения её в дву­мерный массив р. Вывести массив на экран в виде таблицы.

7. Ответы и комментарии.

К задаче 1. В данном фрагменте программы меняются 16 элементов таблицы, при этом элементы, стоящие на главной диагонали, увеличиваются дважды. Поэ­тому в результате выполнения данного фрагмента программы равными единице окажутся
16– 4 = 12 элементов.
К задаче 2. Данная задача является задачей поиска так называемых "седловых точек". Интересно, что если все элементы в матрице различны, то такой элемент если и существует, то он единственен. Это неслож­но доказать методом "от противного". Далее, на­пример, можно проверять для минимального эле­мента каждой строки, является ли он, в свою оче­редь, максимальным элементом своего столбца. Для более эффективной реализации данного решения можно использовать вспомогательные од­номерные массивы.
К задаче 4.  Рассмотрим вариант программы
program ATS;
uses Crt;
type     Cal_l = array [1..10] of integer;
var       у : Cal_l; max, s, i : integer;
begin
clrscr;
max := 0; {Предполагаем, что max= 0}
s := 0;
for i := 1 to 10 do
begin {Вычисляемколичествовызовов)
y[i] := trunc(abs(7 * sin(i))); {за i-туюсекунду}
write ( 'Количество вызовов за ', i , '–тую секунду: ');
writeln (y[i]:5);         {Выводим это количество}
s := s + y[i]; {Вычисляем количество вызовов}
{Вычисляем max значение}
if  y[i] > max then max := y[i];
end;
writeln("Количество вызовов за 10 секунд = ', s:3);
write ('Максимальное количество вызовов за одну  секунду = ', mах:3);
end.
К задаче 7. Рассмотрим вариант программы.
program Pifagor;
uses Crt;
const n = 9;
var       p : array [l..n, l..n] of integer;
i, j : integer;
begin
clrscr;
for i := 1 to n do begin
for j := 1 to n do begin p[i, j] :=i * j; write(p[i, j] : 6) end;  end.

Лабораторная работа №1
(по дисциплине « Практикум решения задач на ЭВМ» для студентов 3 курса специальности 050202 «Информатика»).
ПРОСТЕЙШИЕ АЛГОРИТМЫ РАБОТЫ С ОДНОМЕРНЫМИ МАССИВАМИ ЧИСЕЛ
Цель работы:

  1. Приобрести навыки обработки  одномерных массивов в программах.
  2. Повторение и закрепление материала о циклических алгоритмах.

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

Содержание отчета:
1. Постановка задачи для конкретного варианта.
2. Список и назначение используемых переменных.
З. Текст программы.
4. Протокол работы программы.
5. Выводы.
Методические указания:
1. Исходные данные должны включать и положительные числа, и отрицательные и нули.
Варианты задания
1. В массив A[N] занесены натуральные числа. Найти сумму тех элементов, которые кратны данному К.
2. В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов.
3. Дана последовательность целых чисел а1, а2, …, аn. Выяс­нить, какое число встречается раньше — положительное или от­рицательное.
4. Дана последовательность действительных чисел а1, а2, …, аn. Выяснить, будет ли она возрастающей.
5. Дана последовательность натуральных чисел а1, а2, …, аn. Со­здать массив из четных чисел этой последовательности. Если та­ких чисел нет, то вывести сообщение об этом факте.
6. Дана последовательность чисел а1, а2, …, аn. Указать наимень­шую длину числовой оси, содержащую все эти числа.
7. Дана последовательность действительных чисел а1, а2, …, аn. Заменить все ее члены, большие данного Z, этим числом. Подсчи­тать количество замен.
8. Последовательность действительных чисел оканчивается ну­лем. Найти количество членов этой последовательности.
9. Дан массив действительных чисел, размерность которого N. Подсчитать, сколько в нем отрицательных, положительных и ну­левых элементов.
10. Даны действительные числа а1, а2, …, аn.Поменять местами наибольший и наименьший элементы.
11. Даны целые числа а1, а2, …, аn. Вывести на печать только те числа, для которых ai> i
12. Даны натуральные числа а1, а2, …, аn.Указать те из них, у которых остаток от деления на М равен L(0 < L< M 1).
13. В заданном одномерном массиве поменять местами сосед­ние элементы, стоящие на четных местах, с элементами, сто­ящими на нечетных местах.
14. При поступлении в вуз абитуриенты, получившие двойку на первом экзамене, ко второму не допускаются. В массиве А[п] записаны оценки экзаменующихся, полученные на первом экза­мене. Подсчитать, сколько человек не допущено ко второму эк­замену.
15. Дана последовательность чисел, среди которых имеется один нуль. Вывести на печать все числа до нуля включительно.
16. В одномерном массиве размещены: в первых элементах — зна­чения аргумента, в следующих — соответствующие им значения функции. Напечатать элементы этого массива в виде двух парал­лельных столбцов (аргумент и значения функции).
17. Задана последовательность из N вещественных чисел. Опреде­лить, сколько среди них чисел меньших К, равных К и больших К.

Лабораторная работа №2
(по курсу ПРЗ на ЭВМ для студентов 3 курса специальности 050202 «Информатика»).
ПРОСТЕЙШИЕ АЛГОРИТМЫ РАБОТЫ С ДВУМЕРНЫМИ МАССИВАМИ ЧИСЕЛ
Цель работы:

  1. Приобрести навыки обработки  двумерных массивов в программах.
  2. Повторение и закрепление материала о вложенных циклах.

Постановка задачи:
Для конкретного варианта составить массив исходных данных. Написать программу, которая работает с любым допустимым набором данных. Входную информацию и результаты счета вывести на экран с соответствующими пояснениями.
Содержание отчета:
1. Постановка задачи для конкретного варианта.
2. Список и назначение используемых переменных.
З. Текст программы.
4. Протокол работы программы.
5. Выводы.
Методические указания:
1. Исходные данные должны включать и положительные числа, и отрицательные и нули.

 

Варианты задания
1. Дан двумерный массив, содержащий З строки и 4 столбца. Элементами массива являются целые числа. Найти сумму элементов указанного массива, принадлежащих интервалу
[-4,4]. Разделить каждый элемент исходного массива на полученное значение. Результат получить в другом массиве.
2. Дан двумерный массив, содержащий 4 строки и З столбца. Элементами массива являются целые числа. Найти максимальный элемёнт указанного массива. Увеличить каждый элемент исходного массива на полученное значение. Результат получить в другом массиве.  
З. Дан двумерный массив, содержащий З строки и З столбца. Элементами массива являются целые числа. Найти сумму диагональных элементов указанного массива. Каждый элемент исходного массива уменьшить на полученное значение. Результат получить в другом массиве.
4. Дан двумерный массив, содержащий З строки и 4 столбца Элементами массива являются целые числа. Найти сумму четных элементов, указанного массива. Разделить каждый элемент исходного массива на полученное  значение. Результат получить в другом массиве.
5. Дан двумерный массив, содержащий З строки и 5 столбцов. Элементами массива являются целые числа. Найти сумму элементов второй строки указанного  массива. Умножить каждый элемент исходного массива на полученное значение. Результат получить в другом массиве.
6. Дан двумерный массив, содержащий 4 строки и З столбца. Элементами массива являются целые числа. Найти минимальный элемент второго столбца указанного массива. Увеличить каждый элемент исходного массива на полученное значение. Результат получить в другом массиве.
7. Дан двумерный массив, содержащий 4 строки и 4 столбца. Элементами массива являются целые числа. Найти среднеарифметическое элементов указанного массива. Каждый элемент исходного массива уменьшить на полученное значение. Результат получить в другом массиве.
8. Дан двумерный массив, содержащий 4 строки и 4 столбца. Элементами массива являются целые числа. Найти максимальный из элементов, расположенных на главной диагонали. Увеличить каждый элемент исходного массива на полученное значение. Результат получить в другом массиве.
9. Дан двумерный массив, содержащий 4 строки и З столбца. Элементами массива являются целые числа. Увеличить элементы каждой строки на сумму элементов этой строки. Результат получить в другом массиве.
10. Дан двумерный массив, содержащий З строки и 4 столбца. Элементами массива являются целые числа. Найти минимальный элемент каждого столбца указанного массива. Элементы каждого из столбцов уменьшить на найденное минимальное значение этого столбца. Результат получить в другом массиве.
11. Дан двумерный массив, содержащий 4 строки и 4 столбца. Элементами массива являются целые числа. Найти сумму элементов, расположенных на главной диагонали. Разделить каждый элемент исходного массива на полученное значение. Результат получить в другом массиве.
12. Дан двумерный массив, содержащий З строки и 5 столбцов. Элементами массива являются целые числа. Найти сумму элементов, расположенных в столбцах с  нечетными номерами (1,3,5). Умножить каждый элемент исходного массива на полученное значение. Результат получить другом массиве.
13. Дан двумерный массив, содержащий 4 строки и З столбца. Элементами массива являются целые числа. Просуммировать элементы нечетных строк заданного массива. Уменьшить каждый элемент исходного массива на полученное значение. Результат получить в другом массиве.
14. Дан двумерный массив, содержащий З строки и 4 столбца. Элементами массива являются целые числа. Элементы каждого из столбцов увеличить на найденное максимальное значение этого столбца. Результат получить в другом массиве.

 

 

10. Список литературы

  1. Е.В. Андреева. «Методика обучения основам программирования на уроках информатики»// «Информатика», приложение к газете «Первое сентября» № 17-24 за 2005г.
  2. Керман М.К. Программирование и отладка в DELPHI. Пер. с англ.–М.: Издательский дом «Вильямс», 2003, 672 с.
  3. Лабораторный практикум по языкам и методам программирования. Автор–составитель: Царькова О.М. / Бирский государственный педагогический институт: Бирск. 1998.–104 с.
  4. Могилёв А.В. и др. Информатика: Учеб. пособие для студ. пед. вузов.–М.: Изд. Центр «Академия»,

       2000.–816 с.

  • Окулов С.М. Программирование в алгоритмах / С.М. Окулов.–М.: БИНОМ. Лаборатория знаний, 2004.–341с.
  • Глинский Я.Н. и др. Turbo Pascal и Delphi. Учебное пособие.– 2-е изд., испр. и доп.,–СПб: ООО «ДиаСофтЮП», 2003.–208с.
  • Бондарев В.М., Рублинецкий В.И., Качко Е.Г.  Основы программирования. – Харьков: Фолио, 1997. – 368 с.

»  Тэги к этому документу:

Редактор журнала

Фото пользователя Екатерина Викторовна Якушина
Екатерина Викторовна Якушина
 
Приглашаем на официальную площадку Года учителя!

Смотреть видео hd онлайн


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн