Кабинет Информатики

Понедельник, 17.06.2019, 12:39
Меню сайта
Наш опрос
Можно ли эффективно использовать социальные сети в организации учебного процесса?
Всего ответов: 195
Новости...
Конкурсы
Позитивный контент-2017

Победитель Общероссийского рейтинга школьных сайтов
Знак качества Просвещения

Фонд 21 века
Рейтинг образовательных сайтов mega-talant.com
Эволюция - бесплатные конкурсы для педагогов и школьников
Фонд 21 века
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Besucherzahler
счетчик посещений
Среднее и дошкольное образование Центр профессионального роста Содружество

Проголосуй за наш сайт
Каталог webplus.info
Форма входа

Обработка массивов

Двумерные массивы

Алгоритмы действий над элементами двумерного массива

Задача 1. В течение недели измерялась температура три раза в день: утром, в обед и  вечером. Показания записали в таблицу размерностью 7х3. Определить среднюю  температуру за каждый день.

 USES Crt;
 VAR
   T:ARRAY[0..7,0..3] OF INTEGER;
   I,J:BYTE;   S:INTEGER;   ST:REAL;   A:STRING[12];
 BEGIN
   ClrScr;   WriteLn;
   { Заполнение таблицы }
   FOR I:=1 TO 7 DO Begin
     WriteLn(' Введите показания за ',I,' день');
     FOR J:=1 TO 3 DO Begin
       CASE J OF
         1: A:=' Утром - ';
         2: A:=' В обед - ';
         3: A:=' Вечером - ';
       End;
       Write(A);    ReadLn(T[I,J]);
     End;
   End;     WriteLn;
     { Подсчет средней температуры за каждый день }
   FOR I:=1 TO 7 DO Begin
       S:=0;
       FOR J:=1 TO 3 DO
         S:=S+T[I,J];
       ST:=S/3;
       WriteLn('Средняя температура за ',I,' день = ',ST:4:1);
    End;
 END.

Задача 2. Группа из 10 учащихся сдавала экзамен по 4 предметам. Результаты    экзаменов записали в таблицу размерностью 10х4. Определить средний балл по каждому предмету.

 USES Crt;
 VAR
   E:ARRAY[0..10,0..4] OF INTEGER;
   I,J:BYTE;   S:INTEGER;   SB:REAL;   A:STRING[16];
 BEGIN
   ClrScr;   WriteLn;
   { Заполнение таблицы }
   FOR I:=1 TO 10 DO Begin
     WriteLn(' Введите оценки ',I,' учащегося');
     FOR J:=1 TO 4 DO Begin
       CASE J OF
         1: A:=' Математика - ';
         2: A:=' Физика - ';
         3: A:=' Химия - ';
         4: A:=' Информатика - ';
       End;
       Write(A);   ReadLn(E[I,J]);
     End;
   End;     WriteLn;
     { Подсчет среднего балла по каждому предмету.  Циклы меняются местами.' }
    FOR J:=1 TO 4 DO Begin
       S:=0;
       FOR I:=1 TO 10 DO
         S:=S+E[I,J];
       SB:=S/10;
       CASE J OF
          1: A:=' математике - ';
          2: A:=' физике - ';
          3: A:=' химии - ';
          4: A:=' информатике - ';
       End;
       WriteLn(' Средний балл по ',A,' = ',SB:4:1);
     End;
   END.

Задача 3. Поменять местами значения К-ого и Р-ого столбцов матрицы В, размерностью MхM, заполненную случайным образом.

 USES Crt;
 LABEL   M1;
 CONST   M=8;
 VAR
   A:ARRAY[0..M,0..M] OF INTEGER;
   I,J,K,P:BYTE;   PP:INTEGER;
 BEGIN
   ClrScr;
   { Заполнение двумерного массива случайным образом и вывод в виде прямоугольной      матрицы }
   WriteLn(' Значения двумерного массива');
   FOR I:=1 TO M DO Begin
     FOR J:=1 TO M DO Begin
       A[I,J]:=Random(23);   Write(A[I,J]:3);
     End;     WriteLn;
   End;   WriteLn;
   WriteLn(' Введите номера столбцов, которые необходимо поменять');
   WriteLn(' Их значения не должны превышать ',M);
   M1:ReadLn(K,P);
   IF (K>M) OR (P>M) THEN GOTO M1;
   { Перестановка значений введенных столбцов }
   FOR I:=1 TO M DO Begin
     PP:=A[I,K];     A[I,K]:=A[I,P];     A[I,P]:=PP;
   End;
   WriteLn(' Измененный двумерный массив');
   FOR I:=1 TO M DO Begin
     FOR J:=1 TO M DO Begin
       Write(A[I,J]:3);
     End;   WriteLn;
   End;
 END.

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

 USES Crt;
 VAR
   M:ARRAY[0..6,0..3] OF INTEGER;
   I,J,K:BYTE;
 BEGIN
   ClrScr;   Randomize;
   { Заполнение двумерного массива случайным образом и вывод в виде     прямоугольной матрицы }
   WriteLn(' Значения двумерного массива');
   FOR I:=1 TO 6 DO Begin
     FOR J:=1 TO 3 DO Begin
       M[I,J]:=Random(23)-10;  Write(M[I,J]:3);
     End;     WriteLn;
   End;   WriteLn;   K:=0;
   { Подсчет количества строк, в которых первый элемент строки меньше 0 }
   FOR I:=1 TO 6 DO
     IF M[I,1]<0 THEN Inc(K);
   Write(' Количество строк, в которых первый элемент строки меньше 0 = ',K);
 END.

Задача 5. Дан двумерный массив размерностью Nх2N, заполненный целыми числами. Найти среднее арифметическое элементов, имеющие четные номера строк.

 USES Crt;
 CONST   N=5;
 VAR
   H:ARRAY[0..N,0..2*N] OF INTEGER;
   I,J,K:BYTE;   S:LongInt;   SA:REAL;
 BEGIN
   ClrScr;   Randomize;
   { Заполнение двумерного массива случайным образом и вывод в виде     прямоугольной матрицы }
   WriteLn(' Значения элементов двумерного массива');   WriteLn;
   FOR I:=1 TO N DO Begin
     FOR J:=1 TO 2*N DO Begin
       H[I,J]:=Random(23);   Write(H[I,J]:3);
     End;     WriteLn;
   End;   WriteLn;
   { Нахождение суммы значений элементов, имеющих четные номера строк }
   I:=2; K:=0;
   WHILE I<=N DO Begin
     FOR J:=1 TO 2*N DO Begin
       S:=S+H[I,J];   Inc(K);
     End;     I:=I+2;
   End;
   SA:=S/K;
   Write(' Среднее арифметическое элементов, имеющих четные номера строк =',SA:4:1);
 END.

Задача 6. Дан двумерный массив размерностью NхM, заполненный случайным образом. Определить, есть ли в данном массиве столбец, в котором равное количество положительных и отрицательных элементов.
 USES Crt;
 CONST   N=6;   M=8;
 VAR
   A:ARRAY[0..N,0..M] OF INTEGER;
   I,J,KO,KP,FL:BYTE;
 BEGIN
   ClrScr;   Randomize;
   { Заполнение двумерного массива случайным образом и вывод в виде прямоугольной матрицы }
   WriteLn(' Значения элементов двумерного массива');
   FOR I:=1 TO N DO Begin
     FOR J:=1 TO M DO Begin
       A[I,J]:=Random(20)-10;  Write(A[I,J]:3);
     End;   WriteLn;
   End;   WriteLn;
   FOR J:=1 TO M DO Begin
     KP:=0; KO:=0;
     FOR I:=1 TO N DO Begin
       IF A[I,J]>0 THEN Inc(KP);
       IF A[I,J]<0 THEN Inc(KO);
     End;
     IF KP=KO THEN Begin
                     WriteLn(' В ',J,' столбце равное количество положительных и отрицательных          элементов');  FL:=1;
     End;
   End;
   IF FL=0 THEN WriteLn(' Нет столбцов, в которых равное количество положительных и отрицательных элементов');
 END.

Задача 7. Дан двумерный массив размерностью NхM, заполненный случайным образом. Определить, есть ли в данном массиве строка, в которой ровно два отрицательных элемента.

 USES Crt;
 CONST   N=6;   M=8;
 VAR
   A:ARRAY[0..N,0..M] OF INTEGER;
   I,J,K,FL:BYTE;
 BEGIN
   ClrScr;   Randomize;
   { Заполнение двумерного массива случайным образом и вывод в виде прямоугольной матрицы }
   WriteLn(' Значения элементов двумерного массива');
   FOR I:=1 TO N DO Begin
     FOR J:=1 TO M DO Begin
       A[I,J]:=Random(40)-15;   Write(A[I,J]:3);
     End;     WriteLn;
   End;   WriteLn;   FL:=0;
   { Определение строк, в которых ровно два отрицательных элемента }
   FOR I:=1 TO N DO Begin
     K:=0;
     FOR J:=1 TO M DO
       IF A[I,J]<0 THEN Inc(K);
     IF K=2 THEN Begin WriteLn('В ',I,' строке ровно два отрицательных элемента');FL:=1;  End;
   End;
   IF FL=0 THEN Writeln(' Нет строк, в которых ровно два отрицательных элемента');
 END.

Задача 8. Дан двумерный массив размерностью 4х6 и величина N. Подсчитать  количество строк, в которых есть элемент равный N.

 USES Crt;
 LABEL   M1;
 VAR
   M:ARRAY[0..4,0..6] OF INTEGER;
   I,J,K:BYTE;   N:INTEGER;
 BEGIN
   ClrScr;   Randomize;
   { Заполнение двумерного массива случайным образом и вывод в виде     прямоугольной матрицы }
   WriteLn(' Значения элементов двумерного массива');
   FOR I:=1 TO 4 DO Begin
     FOR J:=1 TO 6 DO Begin
       M[I,J]:=Random(50);    Write(M[I,J]:3);
     End;    WriteLn;
   End;   WriteLn;
   Write(' Введите значение величины N ');   ReadLn(N);
   K:=0;
   { Нахождение строк, в которых имеется величина N }
   FOR I:=1 TO 4 DO Begin
     FOR J:=1 TO 6 DO
       IF M[I,J]=N THEN Begin K:=K+1;  GOTO M1; End;
   M1: End;
   WriteLn(' Количество строк, в которых есть элемент равный ',N,' = ',K);
 END.
.....................................................................................................................................
Практические задания
.....................................................................................................................................

  1. Найти произведение элементов К-го и Р-го столбцов квадратной матрицы, размерностью 6х6.
  2. Дан двумерный массив размерностью 5х3, заполненный целыми числами. Найти произведение элементов нечетных строк матрицы.
  3. Дан двумерный массив размерностью 5х6, заполненный целыми числами и величина К. Найти количество элементов, равных К и их сумму.
  4. Дан двумерный массив размерностью NхM, заполненный целыми числами. Определить, есть ли в данном массиве столбец, в котором имеются одинаковые элементы.
Поиск
Календарь
«  Июнь 2019  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930


Социальные сети
Портфолио

Полезные ссылки
  • Учительский портал
  • Педсовет.ORG
  • Дневник.ру
  • ProШколу.ru
  • Pedsovet.su
  • Завуч.инфо
  • Методисты.ру
  • Методсовет
  • УчМет
  • ИнформатикУрок
  • Менеджер образования
  • Сеть творческих учителей
  • Сообщество учителей ИКТ


  • Узнай свой IP адрес
    Перечень олимпиад на 2017-2018 учебный год







    Портал о суевериях, поверьях и приметах народов России