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


 

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

11578. Создание модели данных с помощью Allfusion ERwin Data Modeler 93.57 KB
  Лабораторная работа 4 по дисциплине: Проектирование и архитектура программного проектирования На тему: Создание модели данных с помощью Allfusion ERwin Data Modeler Цель работы: Знакомство с CASEсистемой Allfusion ERWin Data Modeler изучение основных принципов построения логической
11579. Создание логической модели данных с помощью Allfusion ERwin Data Modeler 106.68 KB
  Лабораторная работа 5 по дисциплине: Проектирование и архитектура программного проектирования На тему: Создание логической модели данных с помощью Allfusion ERwin Data Modeler Цель работы: Развитие логической модели. Ход работы: Как было указано выше связи определяют
11580. Создание физической модели данных с помощью Allfusion ERwin Data Modeler 122.49 KB
  Лабораторная работа 6 по дисциплине: Проектирование и архитектура программного проектирования На тему: Создание физической модели данных с помощью Allfusion ERwin Data Modeler Цель работы: Создание физической модели. Ход работы: Различают два уровня физической модели: ...
11581. Проект участка на базе станков с ЧПУ по изготовлению деталей колёсного тягача 2.08 MB
  Тема: Проект участка на базе станков с ЧПУ по изготовлению деталей колёсного тягача. Содержание. Аннотация. Введение. Характеристика объектов производства. Технологический раздел. Определение типа производства. Анализ технологичности дета
11582. Информационная безопасность в телекоммуникационных системах 420 KB
  Лабораторный практикум по дисциплине Информационная безопасность в телекоммуникационных системах / Уфимск. гос. авиац. техн. унт; Сост.:Ж.А. Сухинец А.И. Гулин. Уфа2011. 20 с. Приводится описание двух лабораторных работ для исследования студентами основных методов к...
11583. Устройства на операционных усилителях 472 KB
  Лабораторная работа № 5 Устройства на операционных усилителях Цель работы Изучить назначение принцип действия свойства и возможные схемотехнические решения устройств на операционных усилителях. 2. Задание 1. Ознако...
11584. Знакомство с Маткадом 83.95 KB
  Лабораторная работа № 1. Тема: Знакомство с Маткадом. Цель: Ознакомить студентов с интерфейсом пакета Маткад особенностями работы в пакете научить производить простейшие вычисления. Ход работы. Задача 1. Войдите в Маткад. 1.Поиграйте красным крестиком на экране...
11585. ЛАБОРАТОРНАЯ РАБОТА №1. ЗНАКОМСТВО С МАТКАДОМ 231.29 KB
  ЛАБОРАТОРНАЯ РАБОТА №1. ЗНАКОМСТВО С МАТКАДОМ Найдите на рабочем столе ярлык Маткад щелкните мышью и войдите в пакет. Обратите внимание на то что вся работа в Маткаде должна проводиться на латинском английском алфавите. Рис.1 Окна после запуска После за
11586. ВЕКТОРЫ И МАТРИЦЫ 39.75 KB
  Лабораторная работа Векторы и матрицы Общие сведения Задачи линейной алгебры решаемые в MathCAD можно условно разделить на два класса. Первый это простейшие матричные операции которые сводятся к определенным арифметическим действиям над элементами матрицы. Они реал...