СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Массивы. Перебор элементов массива. Линейный поиск в массиве. Отбор элементов массива по условию. Сортировка массивов

Категория: Информатика

Нажмите, чтобы узнать подробности

Тема урока: «Массивы. Перебор элементов массива. Линейный поиск в массиве. Отбор элементов массива по условию. Сортировка массивов»

Цель:  формирование у детей знаний и умений работы с языком программирования Pascal, организация работы по усвоению детьми основных понятий, принципов работы с данным языком.

Ход урока:

1. Организационный момент

2. Проверка домашнего задания

3. Изучение нового материала

Массив - это упорядоченный набор однотипных элементов, обозначаемых одним именем; доступ к элементу массива осуществляется по его номеру.

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

В программе для каждого массива должны быть указаны его параметры: имя, размерность и размер. Бывают одномерные, двумерные и т.д. массивы. Это называется размерностью.

Одномерный массив (вектор) - имеет одну размерность.

При обращении к отдельному элементу массива необходимо указать его индекс (местонахождение в массиве):       A[7]    i:=7; A[i]

      Здесь i - индекс элемента массива, может быть только целого или натурального типа.

 Двумерные массивы (матричные) - имеют две размерности, m*n.

Доступ к отдельному элементу массива осуществляется путем определения двух его координат: номера строки i=1..m и столбца j=1..n     Операции предоставления выполняются аналогично:       a[3,9]=8; B:=A[1,1]

В трехмерном массиве для доступа к элементу необходимо указать три индекса A[i,j,k].

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

Описание массивов.

Var A:array[1..30] of byte;

S: array[1..30] of string; {или}

SO:array[1..30] of string[12];

Присвоение значений элементам массива:

“A”- A[1]:=5; A[2]:=4; и т.д.

“S” – S[1]:=’Иванов’; S[2]:=’Петров’; и т.д.

Приведём таблицу обозначений и соответствия элементам массива, их значений и индексов:

Номер элемента индекса

1

2

3

4

I

30

Элементы массива “S”

S[1]

S[2]

S[3]

S[4]

S[I]

S[30]

Значения элементов

Иванов

Петров

Сидоров

Титов

 

Яковлев

Элементы массива “A”

A[1]

A[2]

A[3]

A[4]

A[I]

A[30]

Значения элементов

5

4

5

5

 

4

 

Если известна зависимость, по которой изменяются значения элементов массива, то присвоение значений удобно проводить в операторах цикла с параметром или с условием.

Например, присвоим значения элементам массива ”y” по зависимости: y=sin(x), где x=Pi*i/180, 0i

For i:=0 to 180 Do y[i]:=sin(Pi*i/180);

Присвоим случайные значения в диапазоне от -30 до +40 ста элементам массива “R”:

Randomize;

For i:=1 to 100 Do R[i]:=-30+Random(71);

Присвоим значения семи элементам массива “A” оператором Readln;

For i:=1 to 7 Do

begin

Write(‘Введите A[‘,i,’]= ’);

Readln(A[i]);

end;

При выводе массива на экран удобно размещать данные в виде таблицы – в несколько колонок.

Для вывода обозначений переменных («шапки таблицы») можно использовать операторы вывода символов в цикле, например,

For j:=1 to 66 do Write(‘-’); Writeln;

For j:=1 to 3 do Write(‘| Фамилия | оценка |’); Writeln;

For j:=1 to 66 do Write(‘-’); Writeln;

  • Шапка для вывода в три пары колонок значений переменных “S” и “A”. Шапка занимает 66 позиций (по ширине экрана в текстовом режиме размещается 79 символов и пробел). Оператор Writeln; переводит курсор на новую строчку.

Вывод значений ста элементов массивов “S” и “A” в три пары колонок произведём операторами:

for j:=1 to 100 do

Begin

Write(‘|’,s[i]:11,’|’,a[i]:8,’|’);

if (i mod 3) = 0 Then Writeln;

if (i mod 60) = 0 Then Readln;

end;

В этом случае данные таблицы полностью не умещаются на экране и можно задержать прокрутку экрана при выводе данных, применяя оператор Readln после вывода, например, 20 строк.

4. Практическая работа

Одномерные массивы (последовательности).

A: 3,-4,0,3,-5,10,0

A[1]=3, A[3]=0, A[7]=0

I - номер элемента, A[I] - элемент массива, стоящий на I-ом месте

  1. Сформировать и вывести на экран последовательность из n элементов, заданных датчиком случайных чисел на интервале [-23, 34].

Program posled;

Var a: array[1..100] of integer;

      i, n: integer;

Begin

  Write (‘Сколько элементов? ’);  Readln (n);

   For i=1 to n do

       begin      

            a[i]:= Random(58)-23;

             writeln (a[i],’ ‘);

       end;

End.

2. Найти произведение элементов одномерного массива, состоящего из n элементов. Элементы вводятся с клавиатуры.

Program proisveden;

Var a: array[1..100] of integer;

      i, n, p: integer;

Begin

  Write (‘Сколько элементов? ’);  Readln (n);

  p:=1;

  For i:=1 to n do

     begin

       write (‘введите число’); readln (a[i]);

       p:=p*a[i];

     end;

     writeln(‘произведение элементов равно:  ‘,p);

End.

3. Найти сумму элементов одномерного массива. Размер произвольный. Элементы вводятся с клавиатуры.

Program summa;

Var a: array[1..100] of real;

      i, n: integer;

        s: real;

Begin

  Write (‘n=’); Readln (n);

  s:=0;

  For i:=1 to n do

     begin

       write (‘введите число’); readln (a[i]);

       s:=s+a[i];

     end;

     writeln(‘сумма  элементов равна  ‘,s);

End.

Просмотр содержимого документа
«Массивы. Перебор элементов массива. Линейный поиск в массиве. Отбор элементов массива по условию. Сортировка массивов»

47-50 урок, 10 класс – практика

Учитель: Брух Т.В.

Дата:_________

Тема урока: «Массивы. Перебор элементов массива. Линейный поиск в массиве. Отбор элементов массива по условию. Сортировка массивов»

Цель:  формирование у детей знаний и умений работы с языком программирования Pascal, организация работы по усвоению детьми основных понятий, принципов работы с данным языком.

Ход урока:

1. Организационный момент

2. Проверка домашнего задания

3. Изучение нового материала

Массив - это упорядоченный набор однотипных элементов, обозначаемых одним именем; доступ к элементу массива осуществляется по его номеру.

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

В программе для каждого массива должны быть указаны его параметры: имя, размерность и размер. Бывают одномерные, двумерные и т.д. массивы. Это называется размерностью.

Одномерный массив (вектор) - имеет одну размерность.

При обращении к отдельному элементу массива необходимо указать его индекс (местонахождение в массиве):
      A[7]    i:=7; A[i]

      Здесь i - индекс элемента массива, может быть только целого или натурального типа.

 Двумерные массивы (матричные) - имеют две размерности, m*n.

Доступ к отдельному элементу массива осуществляется путем определения двух его координат: номера строки i=1..m и столбца j=1..n
    Операции предоставления выполняются аналогично:
      a[3,9]=8; B:=A[1,1]

В трехмерном массиве для доступа к элементу необходимо указать три индекса A[i,j,k].

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

Описание массивов.

Var A:array[1..30] of byte;

S: array[1..30] of string; {или}

SO:array[1..30] of string[12];

Присвоение значений элементам массива:

“A”- A[1]:=5; A[2]:=4; и т.д.

“S” – S[1]:=’Иванов’; S[2]:=’Петров’; и т.д.

Приведём таблицу обозначений и соответствия элементам массива, их значений и индексов:

Номер элемента индекса

1

2

3

4

I

30

Элементы массива “S”

S[1]

S[2]

S[3]

S[4]

S[I]

S[30]

Значения элементов

Иванов

Петров

Сидоров

Титов


Яковлев

Элементы массива “A”

A[1]

A[2]

A[3]

A[4]

A[I]

A[30]

Значения элементов

5

4

5

5


4


Если известна зависимость, по которой изменяются значения элементов массива, то присвоение значений удобно проводить в операторах цикла с параметром или с условием.

Например, присвоим значения элементам массива ”y” по зависимости: y=sin(x), где x=Pi*i/180, 0i

For i:=0 to 180 Do y[i]:=sin(Pi*i/180);

Присвоим случайные значения в диапазоне от -30 до +40 ста элементам массива “R”:

Randomize;

For i:=1 to 100 Do R[i]:=-30+Random(71);

Присвоим значения семи элементам массива “A” оператором Readln;

For i:=1 to 7 Do

begin

Write(‘Введите A[‘,i,’]= ’);

Readln(A[i]);

end;

При выводе массива на экран удобно размещать данные в виде таблицы – в несколько колонок.

Для вывода обозначений переменных («шапки таблицы») можно использовать операторы вывода символов в цикле, например,

For j:=1 to 66 do Write(‘-’); Writeln;

For j:=1 to 3 do Write(‘| Фамилия | оценка |’); Writeln;

For j:=1 to 66 do Write(‘-’); Writeln;

  • Шапка для вывода в три пары колонок значений переменных “S” и “A”. Шапка занимает 66 позиций (по ширине экрана в текстовом режиме размещается 79 символов и пробел). Оператор Writeln; переводит курсор на новую строчку.

Вывод значений ста элементов массивов “S” и “A” в три пары колонок произведём операторами:

for j:=1 to 100 do

Begin

Write(‘|’,s[i]:11,’|’,a[i]:8,’|’);

if (i mod 3) = 0 Then Writeln;

if (i mod 60) = 0 Then Readln;

end;

В этом случае данные таблицы полностью не умещаются на экране и можно задержать прокрутку экрана при выводе данных, применяя оператор Readln после вывода, например, 20 строк.

4. Практическая работа

Одномерные массивы (последовательности).

A: 3,-4,0,3,-5,10,0

A[1]=3, A[3]=0, A[7]=0

I - номер элемента, A[I] - элемент массива, стоящий на I-ом месте

  1. Сформировать и вывести на экран последовательность из n элементов, заданных датчиком случайных чисел на интервале [-23, 34].

Program posled;

Var a: array[1..100] of integer;

i, n: integer;

Begin

Write (‘Сколько элементов? ’); Readln (n);

For i=1 to n do

begin

a[i]:= Random(58)-23;

writeln (a[i],’ ‘);

end;

End.

2. Найти произведение элементов одномерного массива, состоящего из n элементов. Элементы вводятся с клавиатуры.

Program proisveden;

Var a: array[1..100] of integer;

i, n, p: integer;

Begin

Write (‘Сколько элементов? ’); Readln (n);

p:=1;

For i:=1 to n do

begin

write (‘введите число’); readln (a[i]);

p:=p*a[i];

end;

writeln(‘произведение элементов равно: ‘,p);

End.

3. Найти сумму элементов одномерного массива. Размер произвольный. Элементы вводятся с клавиатуры.

Program summa;

Var a: array[1..100] of real;

i, n: integer;

s: real;

Begin

Write (‘n=’); Readln (n);

s:=0;

For i:=1 to n do

begin

write (‘введите число’); readln (a[i]);

s:=s+a[i];

end;

writeln(‘сумма элементов равна ‘,s);

End.

4. Задан массив А, состоящий из n чисел. Найти среднее арифметическое его элементов. Элементы вводятся с клавиатуры.

Program srednee;

Var a: array[1..100] of real;

i, n: integer;

s,sred: real;

Begin

Write (‘n=’); Readln (n);

s:=0;

For i:=1 to n do

begin

write (‘введите число’); readln (a[i]);

s:=s+a[i];

end;

sred:=s/n;

writeln(‘среднее арифметическое элементов: ‘,s);

End.

5. Найти сумму элементов массива с четными номерами, содержащего N элементов. Элементы вводятся с клавиатуры.

Program sumshet;

Var a: array[1..100] of real;

i, n: integer;

s,sred: real;

Begin

Write (‘n=’); Readln (n);

s:=0;

For i:=1 to n do

begin

write (‘введите число’); readln (a[i]);

if i mod 2 = 0 then s:=s+a[i];

end;

writeln(‘сумма элементов с четными номерами: ‘,s);

End.

6. Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-19, 26] (размер произвольный). Найти произведение элементов с нечетными номерами.

Program proisvednechet;

Var a: array[1..100] of integer;

i, n, p: integer;

Begin

Write (‘Сколько элементов? ’); Readln (n);

P:=1;

For i=1 to n do

begin

a[i]:= Random(46)-19;

writeln (a[i],’ ‘);

if i mod 2 0 then P=P*a[i];

end;

Writeln(‘Произведение элементов с нечетными номерами:’, P);

End.

7. Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-56, 47] (размер произвольный). Найти произведение элементов с четными номерами, которые превосходят некоторое число t.

Program proisvedchetbolt;

Var a: array[1..100] of integer;

i, n, p, t: integer;

Begin

Write (‘Сколько элементов? ’); Readln (n);

P:=1;

For i=1 to n do

begin

a[i]:= Random(104)-56; writeln (a[i],’ ‘);

if (i mod 2 = 0) and (a[i]t) then P=P*a[i];

end;

Writeln(‘Произведение элементов с четными номерами, превосходящие число t:’, P);

End.

8. Найти наименьший элемент одномерного массива, состоящего из n элементов. Элементы вводятся с клавиатуры.

Program minim;

Var a: array[1..100] of real;

i, n: integer;

min: real;

Begin

Write (‘n=’); Readln (n);

For i:=1 to n do

begin

write(‘a[‘,i,’]=’); readln (a[i]);

end;

min:=a[1];

For i:=2 to n do

If a[i]

Writeln(‘наименьшее число: ‘,min);

End.

9. Найти номер наименьшего элемента в массиве, заданного датчиком случайных чисел на интервале [-20, 25]. Размер произвольный.

Program numberminim;

Var a: array[1..100] of integer;

i, n, num, min: integer;

Begin

Write (‘n=’); Readln (n);

For i:=1 to n do

begin

a[i]:= Random(46)-20;

writeln (a[i]);

end;

min:=a[1];

num:=1;

For i:=2 to n do

If a[i]

begin

min:=a[i];

num:=i;

end;

Writeln(‘ номер наименьшего элемента: ‘,num);

End.

10. В заданном одномерном массиве, состоящем из n целых чисел, подсчитать количество нулей.

Program kolv0;

Var a: array[1..100] of integer;

i, n, k: integer;

Begin

Write (‘n=’); Readln (n);

For i:=1 to n do

begin

Write(‘a[‘,i,’]=’); readln (a[i]);

if a[i]=0 then k:=k+1;

end;

Writeln(‘количество 0 равно ’, k);

end.

11. В заданном одномерном массиве, состоящем из n целых чисел, подсчитать количество четных элементов.

Program kolvсchet;

Var a: array[1..100] of integer;

i, n, k: integer;

Begin

Write (‘n=’); Readln (n);

For i:=1 to n do

begin

Write(‘a[‘,i,’]=’); readln (a[i]);

if a[i] mod 2=0 then k:=k+1;

end;

Writeln(‘количество четных элементов: ’, k);

end.

12. Найдите среднее арифметическое элементов массива, состоящего из 10 чисел, которые превышают по величине число С. Элементы вводятся с клавиатуры.

Program sredarifmet;

Var a: array[1..10] of real;

i, k: integer;

C, S, sred: real;

Begin

For i:=1 to 10 do

begin

write(‘a[‘,i,’]=’); readln (a[i]);

end;

write(‘введите С: ‘); readln (C );

For i:=1 to 10 do

begin

If a[i]C then

begin S=S+a[i]; K=K+1; end;

end;

sred=S/k;

Writeln(‘среднее арифметическое чисел, превосходящих ‘,C,’ равно ‘,sred);

End.

13. Найти произведение элементов целочисленного одномерного массива с четными номерами, состоящего из n элементов. Элементы вводятся с клавиатуры.

Program proizved_chet;

Var a: array [1..100] of integer;

i, n, p: integer;

Begin

p:=1;

write ('n='); readln (n);

for i:=1 to n do

begin

write ('a[',i,']='); readln (a[i]);

if i mod 2=0 then p:=p*a[i];

end;

Writeln ('произведение элементов массива с четными номерами равно ',p);

End.

14. Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из четных элементов массива А. Элементы вводятся с клавиатуры. Размер n.

Program newmasiv;

Var a: array[1..100] of integer;

b: array[1..100] of integer;

n, i, k: integer;

Begin

kol:=0; k:=0;

write ('n='); readln (n);

For i:=1 to n do

begin

write(‘a[‘,i,’]=’); readln (a[i]);

if a[i] mod 2=0 then

begin

k:=k+1; b[k]:=a[i]; kol:=kol+1;

end;

if kol=0 then writeln(‘четных элементов нет’) else

for k:=1 to kol do write(‘b[‘,k,’]=’,b[k]);

end;

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

  1. Массив А вводится с клавиатуры. Найти сумму его элементов. Размер произвольный.

  2. Найти произведение элементов, кратных 3 в массиве, заданном датчиком случайных чисел на интервале [-28, 27]. Размер произвольный.

  3. Массив А вводится с клавиатуры. Найти среднее арифметическое его элементов с нечетными номерами. Размер произвольный.

  4. Массив А вводится с клавиатуры. Найти сумму его элементов с четными номерами, произведение отрицательных элементов, количество нечетных элементов. Размер произвольный.

  5. Найти наибольший элемент и его номер в последовательности, элементы которой вводятся с клавиатуры. Размер произвольный.

  6. Найти средне арифметическое элементов последовательности, превосходящих некоторое число С. Массив задан датчиком случайных чисел на интервале [-44, 35]. Размер произвольный. Значение С вводится с экрана.

  7. Массив А вводится с клавиатуры. Вывести только нечетные элементы. Размер произвольный.

  8. Упорядочить данную последовательность по убыванию. Элементы вводятся с клавиатуры. Размер произвольный.

  9. Упорядочить данную последовательность по убыванию. Массив задан датчиком случайных чисел на интервале [-54, 33]. Размер произвольный.

  10. Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из положительных элементов массива А. Размер произвольный.

  11. Массив задан датчиком случайных чисел на интервале [-31, 45]. Сформировать новый массив В, состоящий из нечетных элементов массива А. Размер произвольный.

  12. Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из положительных элементов массива А и найти в нем наибольший элемент. Размер произвольный.

  13. Массив задан датчиком случайных чисел на интервале [-37, 66]. Найти наименьший нечетный элемент. Размер произвольный.

Двумерные массивы (матрицы)

1. Сформировать с помощью датчика случайных чисел и вывести на экран матрицу, размером МхN. Элементы задаются на интервале [-20, 25].

Var a: array[1..50,1..50] of integer;

i, j, n, m: integer;

Begin

Write(‘сколько строк?’); Readln(m);

Write(‘сколько столбцов?’); Readln(n);

For i:=1 to m do

begin

For j:=1 to n do

begin

a[i,j]:=int(rnd*46)-20;

write(a[i,j],’ ‘);

end;

writeln;

end;

End.

2. В двумерном массиве, состоящем из n целых чисел, найти сумму элементов в каждой строке. Размер произвольный.

Program summastrok;

Var a: array[1..50,1..50] of integer;

i, j, n, m,S: integer;

Begin

Write(‘сколько строк?’); Readln(m);

Write(‘сколько столбцов?’); Readln(n);

For i:=1 to m do

For j:=1 to n do

begin

write(‘a[‘,i,’,’,j,’)=’); readln (a[i,j]);

end;

For i:=1 to m do

begin

S:=0;

For j:=1 to n do

S:=S+a[i,j];

Writeln(‘сумма элементов в ‘,i,’ строке равна ‘,S);

end;

End.

3. Найти наименьший элемент двумерного массива. Размер MXN. Элементы задаются на интервале [-30, 45].

Program minim;

Var a: array[1..50,1..50] of integer;

i, j, n, m, min: integer;

Begin

Write(‘сколько строк?’); Readln(m);

Write(‘сколько столбцов?’); Readln(n);

For i:=1 to m do

begin

For j:=1 to n do

begin

a[i,j]:=int(rnd*76)-30; write(a[i,j],’ ‘);

end;

writeln;

end;

min:=a[1,1];

For i:=1 to m do

For j:=1 to n do

if a[i,j]

Writeln(‘наименьшее число ‘,min);

End.

4. В двумерном массиве, состоящем из целых чисел, найти наименьший элемент и номер строки, в которой он находится. Элементы вводятся с клавиатуры. Размер MXN.

Program minim;

Var a: array[1..50,1..50] of integer;

i, j, m, n, min, K: integer;

Begin

Write(‘сколько строк?’); Readln(m);

Write(‘сколько столбцов?’); Readln(n);

For i:=1 to m do

For j:=1 to n do

begin write(‘a[‘,i,’,’,j,’]=’); readln (a[i,j]); end;

min:=a[1,1]; K:=1;

For i:=1 to m do

For j:=1 to n do

If a[i,j]

begin

min:=a[i,j]; K:=i;

end;

Writeln(‘наименьшее число ‘,min,’ находится в ‘, k , ‘ строке’);

End.

5. Найти сумму элементов в каждой строке двумерного массива, состоящего из целых чисел. Размер MXN. Элементы задаются на интервале [-19, 30].

program sumstr;

Var a: array[1..50,1..50] of integer;

i, j, n, m,sum: integer;

Begin

Write(‘сколько строк?’); Readln(m);

Write(‘сколько столбцов?’); Readln(n);

For i:=1 to m do

begin

For j:=1 to n do

begin

a[i,j]:=int(rnd*50)-19; write(a[i,j],’ ‘);

end;

writeln;

end;

for i:=1 to m do

begin

sum:=0;

for j:=1 to n do sum:=sum+a[i,j];

writeln('сумма элементов в ',i,' строке: ',sum);

end;

end.

6. Подсчитать количество положительных элементов в каждой строке матрицы размером МхN, элементы которой вводятся с клавиатуры.

program kolpolvstr;

Var a: array[1..50,1..50] of integer;

i, j, m, n, kol: integer;

Begin

Write(‘сколько строк?’); Readln(m);

Write(‘сколько столбцов?’); Readln(n);

For i:=1 to m do

begin

For j:=1 to n do

begin write(‘a[‘,i,’,’,j,’]=’); readln (a[i,j]); end;

for i:=1 to m do

begin

kol:=0;

for j:=1 to n do if a[i,j]0 then kol:=kol+1;

writeln('количество положительных элементов в ',i,' строке: ',kol);

end;

writeln;

end;

end.

7. Сформировать матрицу типа 1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

program formir;

Var a: array[1..50,1..50] of integer;

i, j, m, n: integer;

Begin

Write(‘сколько строк?’); Readln(m);

Write(‘сколько столбцов?’); Readln(n);

For i:=1 to m do

begin

For j:=1 to n do

begin

if i=j then a[i,j]:=1 else a[i,j]:=0;

write(a[i,j]);

end;

writeln;

End.

8. Найти номер столбца массива размером МхN, в котором находится наибольшее количество отрицательных элементов. Элементы вводятся с клавиатуры.

program nomerstolb;

Var a: array[1..50,1..50] of integer;

b: array[1..50] of integer;

i, j, m, n, max, jmax: integer;

Begin

Write(‘сколько строк?’); Readln(m);

Write(‘сколько столбцов?’); Readln(n);

For i:=1 to m do

begin

For j:=1 to n do

begin

write(‘a[‘,i,’,’,j,’]=’); readln (a[i,j]);

end;

for j:=1 to m do

begin

b[j]:=0;

for i:=1 to n do

if a[i,j]

end;

max:=b[1]; jmax:=1;

For j:=2 to n do

begin

if b[j]max then

begin

max:=b[j]; jmax:=j;

end;

end;

writeln(‘Наибольшее количество отрицательных элементов в ‘;jmax ; ‘столбце’);

end;

end.

9. Упорядочить каждый столбец матрицы по возрастанию. Массив размером МхN, элементы которого задаются датчиком случайных чисел на интервале [-17;26].

program porydok;

Var a: array[1..50,1..50] of integer;

i, j, n, m,t,r: integer;

Begin

Write(‘сколько строк?’); Readln(m);

Write(‘сколько столбцов?’); Readln(n);

For i:=1 to m do

begin

For j:=1 to n do

begin

a[i,j]:=int(rnd*44)-17;

write(a[i,j],’ ‘);

end;

Writeln;

end;

For j:=1 to n do

For r:=1 to m do

For i:=1 to m-1 do

if a[i,j] a[i+1,j] then

begin

t:= a[i,j];

a[i,j]:= a[i+1,j];

a[i+1,j]:= t;

end;

For i:=1 to m do

begin

For j:=1 to n do write(a[i,j],’ ‘);

Writln;

end;

End.

10. Сформировать матрицу 1 1 1 1

2 2 2 2

3 3 3 3

program former;

Var a: array[1..3,1..4] of integer;

i, j: integer;

Begin

For i:=1 to 3 do

begin

For j:=1 to 4 do

begin

a[i,j]:=i; write(a[i,j]);

end;

writln;

end;

End.

11. Найти наибольшее нечетное число в матрице размером МхN, элементы которой задаются датчиком случайных чисел на интервале [-27, 38].

program maxnechet;

Var a: array[1..50,1..50] of integer;

b: array[1..50] of integer;

i, j, n, m, p, max, k: integer;

Begin

Write(‘сколько строк?’); Readln(m);

Write(‘сколько столбцов?’); Readln(n);

For i:=1 to m do

begin

For j:=1 to n do

begin

a[i,j]:=int(rnd*66)-27;

write(a[i,j],’ ‘);

end;

writeln;

end;

kol:=0; p:=0;

For i:=1 to m do

For j:=1 to n do

If a[i;j]mod 2 0 then

begin

p:=p+1; b[p]:=a[i,j]; k:=k+1:

end;

if k=0 then writeln(‘нечетных элементов нет’) else

begin

write(‘нечетные элементы:’);

max:=b[1];

for p:=1 to k do

begin

writ(b[p],’ ‘);

if b[p]max then max:=b[p];

end;

writeln(‘наибольшее нечетное число’, max);

end;

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

  1. Подсчитать количество положительных элементов в каждом столбце матрицы размером МхN, элементы которой вводятся с клавиатуры.

  2. Подсчитать количество отрицательных элементов в каждой строке матрицы размером МхN, элементы которой задаются с помощью датчика случайных чисел на интервале [-35; 65].

  3. Подсчитать количество четных элементов в каждом столбце матрицы размером МхN, элементы которой задаются с помощью датчика случайных чисел на интервале [-98; 54].

  4. Подсчитать количество четных отрицательных элементов в матрице размером МхN, элементы которой вводятся с клавиатуры.

5. Сформировать матрицу 1 1 1 1

2 2 2 2

3 3 3 3

4 4 4 4

6. Сформировать матрицу 1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4

7. Сформировать матрицу 0 0 0 1

0 0 1 0

0 1 0 0

1 0 0 0

8. Найти номер наибольшего элемента массива размером МхN, элементы которого задаются датчиком случайных чисел на интервале [-67;23].

9. Найти номер наибольшего элемента массива размером МхN, элементы которого вводятся с клавиатуры.

10. Найти наибольший элемент массива размером МхN, элементы которого задаются датчиком случайных чисел на интервале [-25;19].

11. Найти наименьший элемент массива размером МхN, элементы которого вводятся с клавиатуры.

12. Найти сумму элементов в каждом столбце массива размером МхN, элементы которого задаются датчиком случайных чисел на интервале [-19;20].

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

14. Найти произведение элементов в каждой строке массива размером МхN, элементы которого вводятся с клавиатуры.

15. Найти произведение диагональных элементов массива размером МхN, элементы которого вводятся с клавиатуры.

16. Найти сумму элементов, стоящих на побочной диагонали массива размером МхN, элементы которого вводятся с клавиатуры.

17. Найти номер столбца массива размером МхN, в котором находится наименьшее количество положительных элементов. Элементы вводятся с клавиатуры.

18. Найти номер строки массива размером МхN, в котором находится наименьшее количество положительных элементов. Элементы вводятся с клавиатуры.

19. Найти номер строки массива размером МхN, в котором находится наибольшее количество четных элементов. Элементы задаются датчиком случайных чисел на интервале [-54;61].

20. Найти номер столбца массива размером МхN, в котором находится наибольшее количество элементов, кратных 5. Элементы задаются датчиком случайных чисел на интервале [-27;43].

21. Найти наименьшее четное число в матрице размером МхN, элементы которой задаются датчиком случайных чисел на интервале [-65, 45].

22. Найти наибольшее число, кратное 3, в матрице размером МхN, элементы которой вводятся с клавиатуры.

5. Подведение итогов. Домашнее задание

Учитель теорию массивы








Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!