русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Решение задач с использованием двумерных массивов.


Дата добавления: 2014-11-28; просмотров: 7706; Нарушение авторских прав


Теория.

На прошлом занятии мы с вами рассматривали таблицу, содержащие значения температуры за определенный год. Теперь представим, что нам требуется собрать информацию о среднемесячных температурах за 10 лет. Например, с 2000 по 2010 год. Очевидно что для этого удобна прямоугольная таблица, в которой столбцы соответствуют годам, а строки месяцам.

Год
-23 -17 -8 6,5 -18
-16 -8 7,1 8,4 -13
-9,8 -14 -9,2 4,6 -16
-25 -9 -4 -14

Для значений хранящихся в такой таблице удобно использовать двухиндексные обозначения. Например: Н2000,2 обозначает температуру в феврале 2000 года. А совокупность данных, составляющих таблицу, обозначается так: {Тi,j}, i = 2000, …, 2010, j =1,…,12.

В Паскале аналогом таблиц является структурированный тип данных, который называется регулярным типом или массивом. Массив, хранящий прямоугольную таблицу, называется двумерным или матрицей.

Двумерный массив (матрицу) можно представить как линейный массив, каждый элемент которого, в свою очередь, является линейным массивом.

 

Описание двумерных массивов:

Переменная типа двумерный массив описывается в разделе описания переменных в следующем виде:

varимя массива: array[1..n,1..m] ofтип;

n – количество строк матрицы; m – количество столбцов матрицы.

Пример:var T:array[1..10,1..12] of real;

 

Действия над массивом, как единым целым:

Такие действия допустимы лишь в двух случаях:

1) присваивание значений одного массива другому;

2) операции отношения «равно», «неравно»;

В обоих случаях массивы должны иметь одинаковые типы (тип индексов и тип элементов).



Например, если в массиве требуется девятой строке присвоить значение первой строки, то это можно сделать так: Т[9]:=Т[1].

Двумерные массивы могут подвергаться тем же обработкам, что и линейные. Отличие двумерных массивов от линейных, состоит в том, что элементы массива имеют два индекса, которые указывают положение элемента в массиве и служат идентификатором при поиске элементов.

При работе с двумерными массивами организуется два цикла по строке и по столбцу.

 

Ввод матрицы (чтение матрицы):

writeln(‘введите матрицу размера ’,n,‘ на ’,m);

for i:=1 to n do

begin

writeln(‘введите элементы ’,i,‘ строки’);

for j:=1 to m do

read(a[i,j]);

end;

Вывод матрицы:

writeln(‘матрица’);

for i:=1 to n do

begin

for j:=1 to m do

write(‘a[’,i,‘,’,j,‘]=’, a[i,j]:0:2,‘ ’);

writeln

end;

Примеры задач.

6

1. Дана матрица размера 3 на 4 целого типа. Найти сумму отрицательных элементов 3-й строки матрицы.

Program summa;

Const n=3;

m=4;

Var a:array[1..n,1..m] of integer;

i, j, s:integer;

Begin {ввод матрицы}

writeln(‘введите матрицу размера ’,n,‘ на ’,m);

for i:=1 to n do

begin

writeln(‘введите элементы ’,i,‘ строки’);

for j:=1 to m do

read(a[i,j]);

end;

{нахождение суммы}

s:=0;

for j:=1 to m do

if a[3,j] <0

then s:=s+a[3,j];

{печать суммы}

writeln (‘сумма отрицательных элементов 3 строки=’,s);

end.

2. Дана матрица размера 4 на 4. Найти количество положительных элементов главной диагонали матрицы.

Program summa;

Const n=4;

m:=4;

Var a:array[1..n,1..m] of real;

i, j, k:integer;

Begin {ввод матрицы}

writeln(‘введите матрицу размера ’,n,‘ на ’,m);

for i:=1 to n do

begin

writeln(‘введите элементы ’,i,‘ строки’);

for j:=1 to m do

read(a[i,j]);

end;

{нахождение количества положительных элементов главной диагонали}

k:=0;

for i:=1 to n do

if a[i,i] >0

then k:=k+1;

{печать количества}

writeln (‘количество положительных элементов главной диагонали=’,k);

end.

3. Получить матрицу размера 5 на 5 по следующим формулам . Вывести полученную матрицу. Сосчитать сумму отрицательных элементов матрицы.

Program summa;

Const n=5;

m=5;

Var a:array[1..n,1..m] of integer;

i, j, k:integer;

Begin {получение матрицы}

for i:=1 to n do

for j:=1 to m do

if i>j

then a[i,j]:=i-sqr(j)

else a[i,j]:=abs(i-j);

{вывод матрицы}

writeln(‘матрица’);

for i:=1 to n do

begin

for j:=1 to m do

write(‘a[’,i,‘,’,j,‘]=’, a[i,j],‘ ’);

writeln

end;

{нахождение суммы отрицательных элементов матрицы}

k:=0;

for i:=1 to n do

for j:=1 to m do

if a[i,j] <0

then k:=k+a[i,j];

{печать суммы}

writeln (‘сумма отрицательных элементов матрицы=’,k);

end.

4. Дана матрица размера 4 на 3 вещественного типа. Найти минимальный элемент матрицы.

Program minimum;

Const n=4;

m=3;

Var a:array[1..n,1..m] of real;

i, j:integer;

min:real;

Begin {ввод матрицы}

writeln(‘введите матрицу размера ’,n,‘ на ’,m);

for i:=1 to n do

begin

writeln(‘введите элементы ’,i,‘ строки’);

for j:=1 to m do

read(a[i,j]);

end;

{нахождение минимального элемента матрицы}

min:=a[1,1];

for i:=1 to n do

for j:=1 to m do

if a[i,j] <min

then min:=a[i,j];

{печать минимума}

writeln (‘минимум=’,min:0:2);

end.

 

 

5. Дана матрица размера 3 на 5 целого типа. Заменить все положительные числа на 1, а отрицательные на -1. Вывести полученную матрицу.

Program zamena;

Const n=3;

m=5;

Var a:array[1..n,1..m] of integer;

i, j:integer;

Begin {ввод матрицы}

writeln(‘введите матрицу размера ’,n,‘ на ’,m);

for i:=1 to n do

begin

writeln(‘введите элементы ’,i,‘ строки’);

for j:=1 to m do

read(a[i,j]);

end;

{замена}

for i:=1 to n do

for j:=1 to m do

if a[i,j] >0

then a[i,j]:=1

else a[i,j]:=-1;

{вывод матрицы}

writeln(‘матрица’);

for i:=1 to n do

begin

for j:=1 to m do

write(‘a[’,i,‘,’,j,‘]=’, a[i,j],‘ ’);

writeln

end;

end.

 

 

Задания.

Студенты решают задачи на компьютерах по вариантам с помощью среды программирования PascalABC.

 

Вариант 1

1. Дана матрица размера 4 на 4 целого типа. Найти сумму положительных элементов главной диагонали матрицы.

2. Задать матрицу размера 5 на 5 по следующей формуле: . Вывести полученную матрицу.

3. Дана матрица размера 3 на 3 действительного типа. Найти максимальный элемент матрицы.

4. Задать матрицу размера 4 на 4 по следующей формуле: . Вывести полученную матрицу. Найти количество отрицательных элементов матрицы.

Вариант 2

1. Дана матрица размера 3 на 4 действительного типа. Найти сумму отрицательных элементов 3-й строки матрицы.

2. Задать матрицу размера 5 на 5 по следующей формуле: . Вывести полученную матрицу.

3. Дана матрица размера 3 на 3 целого типа. Найти минимальный элемент 2-го столбца матрицы.

4. Задать матрицу размера 4 на 4 по следующей формуле: . Вывести полученную матрицу. Найти количество положительных элементов матрицы.

 

 

Вариант 3

 

1. Дана матрица размера 4 на 3 действительного типа. Найти количество положительных элементов 2-й строки матрицы.

2. Задать матрицу размера 5 на 5 по следующей формуле: . Вывести полученную матрицу.

3. Дана матрица размера 3 на 3 целого типа. Найти минимальный элемент матрицы.

4. Задать матрицу размера 4 на 4 по следующей формуле: . Вывести полученную матрицу. Найти сумму отрицательных элементов матрицы.

 

 

Вариант 4

 

1. Дана матрица размера 4 на 4 целого типа. Найти количество отрицательных элементов главной диагонали матрицы.

2. Задать матрицу размера 5 на 5 по следующей формуле: . Вывести полученную матрицу.

3. Дана матрица размера 3 на 3 действительного типа. Найти максимальный элемент 2-й строки матрицы.

4. Задать матрицу размера 4 на 4 по следующей формуле: . Вывести полученную матрицу. Найти сумму положительных элементов матрицы.

 

 




<== предыдущая лекция | следующая лекция ==>
Решение задач с использованием одномерных массивов. | Практическая работа №8.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.12 сек.