50152

Программирование задач с использованием двумерных массивов. Ввод, вывод, упорядочивание

Лабораторная работа

Информатика, кибернетика и программирование

Чтобы описать массив надо сообщить компилятору: сколько в нем элементов какого типа эти элементы как они нумеруются. Пример: Вычислить суммы элементов массива по столбцам Текст программы...

Русский

2014-01-16

53 KB

23 чел.

Лабораторная Работа № 12

Тема: Программирование задач с использованием двумерных массивов. Ввод, вывод, упорядочивание.

Цель: Получение практических навыков  в использовании двумерных массивов - матриц.

Теоретические сведения:

Приступая к выполнению задачи, следует вспомнить, что:

  •  Массив – это фиксированное количество упорядоченных компонент одного типа, снабжённых индексами.
  •  Чтобы описать массив, надо сообщить компилятору: сколько в нем элементов, какого типа эти элементы, как они нумеруются.
  •  Элементы массива нумеруются с нуля.
  •  Доступ к элементу массива осуществляется путем указания индекса (номера) элемента.
  •  Доступ к элементам массива можно осуществлять при помощи указателя.
  •  В инструкции объявления массива удобно использовать именованную константу, объявленную в директиве #define.
  •  Для ввода, вывода и обработки массивов удобно использовать инструкции циклов (for, while).
  •  Типичной ошибкой при использовании массивов является обращение к несуществующему элементу, то есть выход индекса за допустимое значение.

Пример: Вычислить суммы элементов массива по столбцам

Текст программы:

#include<stdio.h>

#conio.h>

#define ROW 3 //кол-во строк

#define COL 4 //кол-во столбцов

void main()

{

int a[ROW][COL]; //массив

int s[COL]; //сумма элементов

int I,j;

puts(“Вводите массив построчно”);

for (i=0; i<ROW ;i++)

{

for(j=0; j<COL; j++)

           scanf(“%i”,&a[i][j]);

}

puts(“Введенный массив”);

for(i=0; i<ROW; i++)

{

for(j=0; j<COL; j++)

 printf(“%i”,a[i][j]);

printf(“\n”);

}

//очистим массив s

for(i=0; i<COL; i++)

s[i]=0;

//обработка 

for (j=0; i<COL ;J++)

for(i=0; j<ROW; i++)

s[j]+=a[i][j];

for (i=0; i<COL; i++)

printf(“%i”,s[i]);

getch();

}//main

Варианты заданий:

Осуществить ввод массива с клавиатуры и выполнить задание своего варианта:

Вариант

Массив

Задание

Условия

1

A(10,15)

Вычислить и запомнить сумму и число положительных элементов каждого столбца матрицы. Результаты отпечатать в виде 2-х строк

AIJ>0

2

A(N,M)

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

N≤20 M≤15

3

B(N,N)

Вычислить сумму и число элементов матрицы, находящихся под главной диагональю и на ней

N≤12

4

C(N,N)

Вычислить сумму и число положительных элементов матрицы, находящихся над главной диагональю

CIJ>0 N≤12

5

D(K,K)

Записать на место отрицательных элементов матрицы нули и вывести ее на печать в общепринятом виде

K≤10

6

D(10,10)

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

-

7

F(N,M)

Найти в каждой строке матрицы максимальный и минимальный элементы  и вывести их в виде 2-х столбцов

N≤20 M≤10

8

F(10,8)

Транспонировать матрицу и вывести на печать элементы ее главной диагонали и ее саму в общепринятом виде

-

9

N(10,10)

Для целочисленной матрицы найти для каждой строки число элементов кратных 5 и наибольший из полученных результатов

 

10

N(10,10)

Из положительных элементов матрицы N сформировать матрицу M и распечатать ее в общепринятом виде.

-

11

P(N,N)

Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали. Отпечатать полученную матрицу в общепринятом виде

N≤15

12

R(K,N)

Найти наибольший и наименьший элементы матрицы и поменять их местами  

K≤20 N≤10

13

S(25,8)

Вычислить среднее арифметическое каждой строки и записать результаты в одномерный массив и найти максимальный его элемент

-

14

T(N,M)

Найти строку с наибольшей и наименьшей суммой элементов. Вывести на печать найденные строки и суммы их элементов

N≤20 M≤15

15

V(15,10)

Упорядочить по возрастанию элементы каждой строки матрицы и отпечатать полученную матрицу в общепринятом виде

-

Контрольные вопросы:

  1.  Что понимается под массивом?
  2.  Как описываются массивы в разделе переменных?
  3.  Как организуется ввод массива в программе?
  4.  Как организуется вывод массива в программе?
  5.  Какие операции разрешены над элементами массива?

Содержание отчета:

  1.  Краткие теоретические сведения.
  2.  Схемы алгоритмов.
  3.  Тексты составленных программ.
  4.  Протоколы к составленным программам.
  5.  Вывод о проделанной работе.


 

А также другие работы, которые могут Вас заинтересовать

67572. Понятие бинарной алгебраической операции 161 KB
  Примерами таких операций могут служить обычные операции сложения вычитания или умножения на множестве всех действительных или комплексных чисел операция умножения на множестве всех квадратных матриц данного порядка операция композиции на множестве всех перестановок из N элементов операция векторного...
67573. Смежные классы; разложение группы по подгруппе 179.5 KB
  Множество xH называется левым а Hx правым смежным классом группы по подгруппе. Например очевидно что H=H=H так что подгруппа Н сама является одним из смежных классов. Свойства смежных классов Отображение определенное формулой является взаимно однозначным для всякого.
67574. Изоморфизмы и гомоморфизмы 290 KB
  Напомним, что отображение называется инъективным, если оно переводит различные элементы из X в различные элементы Y и сюръективным, если его образ совпадает со всем Y. Например, естественный гомоморфизм группы на подгруппу сюръективен. Из определения сразу следует, что гомоморфизм...
67575. Циклические группы 169 KB
  Определение Группа G называется циклической если все ее элементы являются степенями одного элемента. Примеры циклических групп: Группа Z целых чисел с операцией сложения. Группа всех комплексных корней степени n из единицы с операцией умножения. Поскольку группа является циклической и элемент g = образующий.
67576. Коммутативные группы с конечным числом образующих 181.5 KB
  Группа Q рациональных чисел с операцией сложения не является г.к.о. В самом деле, если - любые рациональные числа, записанные в виде отношения целых, то, приводя к общему знаменателю сумму, получим дробь, знаменатель которой не превосходит...
67577. Коммутативные группы с конечным числом образующих. Классификация 209.5 KB
  Для нулевой матрицы теорема очевидно верна. Будем считать, что А0. Выберем из множества ненулевых элементов А любой из наименьших по модулю и назовем его главным элементом А. Абсолютная величина главного элемента будет обозначаться h(A). Таким образом для любого ненулевого элемента этой матрицы.
67578. Коммутативные группы с конечным числом образующих. Следствия из классификации 278 KB
  Теорема о подгруппах группы Всякая подгруппа группы изоморфна причем . Мы знаем что подгруппа G группыимеет не более чем n образующих и потому для нее можно записать первое каноническое разложение: где mk n. Теорема о подгруппах конечной коммутативной группы.
67579. Множества с двумя алгебраическими операциями. Кольца и поля 192.5 KB
  Множество с двумя алгебраическими операциями R называется кольцом если R абелева группа аддитивная группа кольца R. Элементы такого кольца R имеющие обратные относительно операции умножения называются обратимыми а их множество обозначается через...
67580. Кольцо многочленов над полем 139.5 KB
  Кольцо многочленов над полем в отличие от случая многочленов над кольцом обладает рядом специфических свойств близких к свойствам кольца целых чисел Z. Делимость многочленов. Хорошо известный для многочленов над полем R способ деления углом использует только арифметические действия...