Задание: В соответствии с условием разработать алгоритм и составить программу обработки двумерных массивов

  Условие: Задан двумерный массив, состоящий из m строк и   n столбцов  элементов:   aij.

Определить в каждом столбце количество kj элементов отличных от 0 с нечетными номерами строк.

Получить новый массив С  из исходного массива А заменой нулевых элементов последним элементом каждой строки. 

Решение: обозначим aij   →  A(I,J),  cij   →  C(I,J),    m  →  M,  n   →  N,  

                                                                             i  →  I, j  → J, kj  →  K(J). 

Блок – схема           

 


                                                               

                                                    



                 -                           +

K(J)=K(J)+1
                                          

                                    


                                 +

                                      

              -                           +

                      

C(i,J)=A(I,J)  
C(i,J)=A(i,N)  
                                                                          

                                   

                         





Программа

REM двумерный массив                                         ‘ оператор- комментарий

DIM M, N, I, J                                                  ‘описание простых переменных                

INPUT “ M, N ”; M, N                                                                   ‘ ввод данных          

DIM K(1 TO N)                    ‘ описание  одномерного и двумерных массивов           

DIM A(1 TO M, 1 TO N), C(1 TO M, 1 TO N)                  

DATA 3,6,0,2,9,5,0,4,0,7,3,2,3,8,0,5                                          ‘ строка данных                

FOR I = 1 TO M                                              ‘ оператор начала цикла  по i

FOR J = 1 TO N                                            ‘ оператор начала цикла  по j

    READ A(I,J)                                                                          ‘ ввод данных

NEXT J                                                                    ‘з авершение цикла по j

NEXT I                                                                       ‘з авершение цикла по i

FOR J = 1 TO N STEP 2                                    ‘ оператор начала цикла  по j

K(J) = 0                                                                    ‘ оператор присваивания

FOR I = 1 TO M                                             ‘ оператор начала цикла по i

  IF A(I,J) <> 0 THEN                                 ‘ оператор условного перехода

     K(I) = K(I) + 1                                                  ‘ оператор присваивания

  END IF                                ‘ завершение оператора условного перехода

NEXT I                                                                      ‘з авершение цикла по i

PRINT “K”;J;”=”;K(J)                                                                             ‘ вывод

NEXT J                                                                          ‘з авершение цикла по j

FOR I = 1 TO M                                               ‘ оператор начала цикла по i

  FOR J = 1 TO N                                            ‘ оператор начала  цикла по j

      IF A(I,J) = 0 THEN                                ‘ оператор условного перехода

          C(I,J) = A(I,N)                                             ‘ оператор присваивания

            ELSE C(I,J) = A(I,J)                                    ‘ оператор присваивания

      END IF                            ‘ завершение оператора условного перехода

      PRINT “C(”; I;”,”;J;“) =”;C(I,J)                                                     ‘ вывод

  NEXT J                                                                   ‘з авершение цикла по j

NEXT I                                                                       ‘з авершение цикла  по i

END                                                                                     ‘ конец програм мы               

 

Для расчетов был использован следующий двумерный массив             

                         

 

Результат выполнения программы:

 

M, N? 4, 4 _                              В результате  выполнения программы

K1 = 1 K2 = 2 K3 = 1 K2 = 2   получено:

C(1,1) = 3                               

C(1,2) = 6                                        одномерный массив   К = 1;  2;  1;  2 и 

C(1,3) = 2                                                      

C(1,4) = 2                                        двумерный массив С                

C(2,1) = 9                                                  

C(2,2) = 5

C(2,3) = 4

C(2,4) = 4

C(3,1) = 2

C(3,2) = 7

C(3,3) = 3

C(3,4) = 2

C(4,1) = 3

C(4,2) = 8

C(4,3) = 5

C(4,4) = 5

ЛІТЕРАТУРА

 

 

1. Информатика. Базовый курс, С.В. Симонович и др., СПб: Питер, 2002. – 640 с.

2. Светлозарова Г.И., Мельников А.А., Козловский А.В. Практикум по программированию на языке Бейсик. -М.: Наука, 1988

3. Сборник задач по базовой компьютерной подготовке / Под общей ред. И.Н. Котаровой. –М.: МЭИ, 1998.

4. Сафронов И. Бейсик в задачах и примерах. –СПб.:БХВ-Петербург, 2000.

5. Мельникова О.И., Бонюшкина А.Ю. Начала программирования на языке Qbasic. –М.: ЭКОМ, 2000.

6. Конспект лекций по курсу ''Информатика'', ОДАБА, Одеса, 2007.

7. Методические указания ‘‘Основы программирования на языке Visual Basic’’ (для студентов всех специальностей), Плотников А. В.,                  Дызов К. Г., Комлева Т. А., ОДАБА, 2003, - 94 с.

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: