50152

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

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

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

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

Русский

2014-01-16

53 KB

22 чел.

Лабораторная Работа № 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.  Вывод о проделанной работе.


 

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

9607. Модель риск-менеджмента 25 KB
  Модель риск-менеджмента В соответствии с методологией системного анализа риск-менеджмент может быть представлен как сложная многоуровневая управленческая система. Это обусловлено сложностью содержания предпринимательского риска как экономической ка...
9608. Технология риск-менеджмента 25.5 KB
  Технология риск-менеджмента базируется на представлении его как вида целенаправленной деятельности финансового менеджера и предусматривает структурирование процесса управления риском, т.е. выделение элементов принятия...
9609. Вивчення та випробування схеми випрямляча 128 KB
  Вивчення та випробування схеми випрямляча МЕТА-вивчення роботи напівпровідникових випрямлячів. Для випрямлення змінного струму, що змінюється за величиною та напрямом, використовуються різноманітні пристрої. Найпростішою є схема, зроблена на напівпровід...
9610. Визначення питомої теплоти фазового переходу першого роду при темпратурі кипіння 59 KB
  Визначення питомої теплоти фазового переходу першого роду при темпратурі кипіння Мета роботи -вивчення явища фазового переходупершогороду у процесах пароутворювання і конденсації води. Переход речовини з однієї фази до іншої може супрово...
9611. Визначення постійної дифракційної решітки 76 KB
  Визначення постійної дифракційної решітки. Мета: Визначити умови спостерігання дифракційних максимумів визначити довжину падаючого світлавизначити період дифракційної решітки. Обладнання: Лінійка на підставці, лазер, набір дифракційних решіток, шт...
9612. Зняття статистичних характеристик германієвого плоского тріоду. Визначення параметрів тріоду по статистичним характеристикам 24.5 KB
  Зняття статистичних характеристик германієвого плоского тріоду. Визначення параметрів тріоду по статистичним характеристикам. Мета роботи: вивчення роботи напівпровідникового тріоду та розрахунок параметрів плоского тріоду по його статистичним харак...
9613. Деякі джерела помилок та заходи по їх обліку або запобіганню 160 KB
  Вступ Однією з основних задач лабораторного практикуму, окрім сприяння кращому засвоєнню ідей та законів фізики, є виховання у студентів навичок самостійної практичної роботи та, насамперед, правильного виконання вимірів фізичних величин. Під час пр...
9614. Визначення коефіцієнта поверхневого натягу рідин з допомогою торзіонних терезів 57 KB
  Визначення коефіцієнта поверхневого натягу рідин з допомогою торзіонних терезів Мета роботи: ознайомлення з роботою торзіонних терезів та визначення коефіцієнта поверхневого натягу різних рідин. Молекули поверхневого шару рідини, на відміну від моле...
9615. Дослідження підсилювача постійного струму на біполярному транзисторі 56 KB
  Тема: Дослідження підсилювача постійного струму на біполярному транзисторі Мета: Отримати вхідну та вихідну вольт-амперну характеристику (ВАХ) біполярного транзистора, обраховувати коефіцієнт підсилення потужності Обладнання: Стенд з двома рег...