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


 

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

26440. Плечевой пояс 21 KB
  В области лопатки располагаются мышцы действующие на плечевой сустав предостная supraspinatus дельтовидная заостная infraspinatus малая круглая teres minor клювовидноплечевая coracobrachialis подлопаточная subscapularis большая круглая напрягатель капсулы сустава а также часть мышц плечевого пояса трапециевидная ромбовидная зубчатая вентральная serratus ventralis. У птиц плечевой пояс имеет трёхчленное построение: саблевидная лопатка коракоид и ключица.
26441. ПНС 20 KB
  По дорсальным корешкам через лежащие на дорсальном корешке чувствительные ганглии происходит афферентная связь со всеми органами тела. Через вентральные корешки осуществляются: прямая эфферентная соматическая связь центров с оперечно исчерченной мускулатурой; прерывистая эфферентная связь с мышечной стенкой сосудов перерыв происходит в симпатических ганглиях; прерывистая эфферентная связь с мышечной стенкой внутренностей и железами перерыв происходит в экстра или интрамуральных ганглиях.
26442. Позвоночный столб (columna vertebralis) 21.5 KB
  cervicales грудной v. Соединение: тела – межпозвоночные хрящи фиброзное кольцо и пульпозное ядро дорсальная продольная связка внутри позвоночного канала на долсальной поверхности позвонков эпистрофей крестец вентральная продольная связка последний грудной крестец; дужки: жёлтые связки; остистые отростки: межостистые связки у плотоядных мышцы надостистая связка грудной поясничный крестцовый выйная связка канатиковая и пластинчатая части; у собак – канатик у свиньи и кошки – нет у КРС вместе с надостистой связкой в...
26443. Половые железы самцов и самок 20.5 KB
  При развитии организма в мужскую сторону мезотелий половой складки в виде клеточных тяжей врастает в толщу железы формируя извитые канальцы. Передние мочеотделительные трубочки промежуточной почки также врастают в семенник и образуют прямые канальцы сеть семенника и семявыносящие канальцы.
26444. Половые органы самок 21.5 KB
  Кровоснабжение осуществляют внутренние подвздошные артерии и вены, которые имеют париетальные и висцеральные ветви. Симпатическая иннервация сосудов осуществляется из боковых рогов...
26446. Почки (ren, nephros) 20.5 KB
  Структурная единица почки – эмбриональная долька – почечка а структурнофункциональная – нефрон. Степень сращения эмбриональных долек – тип почки: множественная медведь дельфин бороздчатая КРС гладкая свинья собака лошадь.
26447. Промежуточный мозг (diencephalon) 20 KB
  Зрительная часть включает в себя зрительные тракты перекрёст зрительных нервов в нём перекрещивается 2ая пера черепных нервов. Обонятельная часть гипоталамуса включает сосцевидное тело corpus mammilarae. Эпиталамус включает эпифиз подвешенный на уздечке – ЖВС которая регулирует ростовые и обменные процессы.
26448. Роговые производные. Копыта, копытца 20.5 KB
  Имеет все 3 слоя кожи формирует глазурь. Венчик corona состоит из 3 слоёв эпидермис формирует трубчатый рог. Эпидермис формирует листочковый рог. Подошва solla состоит из 2 слоёв эпидермис формирует мягкий трубчатый рог.