Методические указания и задания к лабораторным работам для учащихся ссуз специальности Т1002



страница11/31
Дата14.08.2018
Размер2.1 Mb.
#43969
ТипМетодические указания
1   ...   7   8   9   10   11   12   13   14   ...   31

Порядок выполнения работы


  1. Изучить теоретические сведения по теме: “Написание программы на Паскале для решения задач на обработку линейного массива (сложение элементов массива, нахождения наименьшего/наибольшего элемента в заданном массиве)”.

  2. Получить индивидуальное задание у преподавателя и разработать программу в соответствии с поставленной задачей.

  3. Показать работающую программу преподавателю.

  4. Ответить на контрольные вопросы.

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


  1. Алгоритм нахождения элемента в одномерном массиве. Пример программы.

  2. Алгоритм нахождения максимального элемента одномерного массива. Пример программы.



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

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



Цель работы: формирование знаний и умений по работе со структурными типами данных. Приобретение навыков написания программ с использованием массивов.

Краткие теоретические сведения


Рассмотренный ранее линейный массив представлял собой вектор, т.е. линейную последовательность чисел, например:

1 2 3 –5 0 1 3 6 …

Для определения такого массива необходимо задать 1 параметр - количество элементов (например n). Поэтому для обработки одномерного массива достаточно было организовать цикл по одной переменной (например i): for i:=1 to n do mas[i]:=…



Двумерный массив представляют собой матрицу, для определения которой необходимо задать два параметра - количество строк (например n) и количество столбцов (например m). Если количество строк - 2, количество столбцов - 3, тогда матрица будет выглядеть например так:

1 3 -5

2 3 4

Следовательно, для обработки матрицы (двумерного массива) требуется организовать цикл по двум переменным (например i и j ):



for i:=1 to n do

begin

for j:=1 to m do

begin

mas[i,j]:=…

end;

end;

Пример программы нахождения суммы элементов двумерного массива

Пусть требуется составить программу, которая в двумерном массиве находит сумму его элементов и выводит ее на экран. Количество элементов массива (строк и столбцов) пользователь вводит с клавиатуры.

В начале программы опишем двумерный массив с именем mas, состоящий из 10 строк и 10 столбцов (максимально) типа integer. Затем опишем переменную S, обозначающую сумму элементов, i, j-индексы соответственно строки и столбца, n,m-количество строк и столбцов.

В основной программе пользователь задает размерность матрицы (количество строк и столбцов). Затем во вложенном цикле (по i и по j) осуществляется ввод с клавиатуры элементов матрицы, а затем вывод на экран введенного пользователем массива.

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

Любое нахождение суммы начинается с обнуления переменной суммы: s:=0. Затем в цикле по i и по j вычисляется сумма:

for i:=1 to n do

begin

for j:=1 to m do

begin

s:=s+mas[i,j];

end;

end;

В целом текст программы выглядит так:


Program matrix;

Uses crt;

var

mas:array [1..10,1..10] of integer;



s:integer;

i,j,n,m:integer;

Begin

Сlrscr;


writeln('Введите количество строк n:');

readln(n);

writeln('Введите количество столбцов m:');

readln(m);

for i:=1 to n do {ввод элементов двумерного массива}

begin


for j:=1 to m do

begin


writeln('Введите ',i,',',j,'-й элемент матрицы: ');

readln(mas[i,j]);

end;

end;


writeln('Введенный массив: ');

for i:=1 to n do {вывод элементов двумерного массива}

begin

for j:=1 to m do



write(mas[i,j]:5);

end; {конец вывода}

s:=0; {обнуление суммы}

for i:=1 to n do

begin

for j:=1 to m do



begin

s:=s+mas[i,j];{вычисление суммы элементов}

end;

end;


write('Summa:');

write('S= ',S); {вывод на экран полученной суммы}

End.

Пример программы нахождения количества положительных и отрицательных элементов двумерного массива



Пусть требуется составить программу, которая подсчитывала бы количество положительных и количество отрицательных элементов двумерного массива и записывала бы положительные и отрицательные элементы в два разных массива.

В начале программы опишем двумерный массив с именем mas, состоящий из 10 строк и 10 столбцов (максимально) типа integer, а также массивы B и C для положительных и отрицательных элементов соответственно. Затем опишем переменные k, l-количество положительных и отрицательных элементов соответственно, i, j - индексы соответственно строки и столбца, n,m-количество строк и столбцов.

Проверка на положительность элементов может выглядеть так:

for i:=1 to n do

begin

for j:=1 to m do

begin

if mas[i,j]>0 then…

Если условие выполняется (i,j –й элемент является положительным), то количество положительных элементов k увеличивается на 1 и заполняется массив B:



if mas[i,j]>0 then

begin

k:=k+1;

B[k]:=mas[i,j];

end;

Аналогично выполняется проверка на отрицательность, количество отрицательных элементов l увеличивается на 1 и заполняется массив C.

В целом текст программы выглядит так:

Program matrix_2;

Uses crt;

Var


mas:array [1..10,1..10] of integer;

B:array [1..10] of integer;

C:array [1..10] of integer;

i,j,k,l,n,m:integer;

Begin

Сlrscr;


writeln('Введите количество строк n:');

readln(n);

writeln('Введите количество столбцов m:');

readln(m);



{ввод-вывод элементов матрицы mas}

for i:=1 to n do

begin

for j:=1 to m do



begin

if mas[i,j]>0 then

begin

k:=k+1;


B[k]:=mas[i,j];

end;


end;

if mas[i,j]<0 then

begin

l:=l+1;


C[l]:=mas[i,j];

end;


end;

{Вывод на экран полученных массивов B и C}

write('Массив из положительных : ');

for i:=1 to k do

write(' ',B[i]);

writeln;

write('Массив из отрицательных : ');

for i:=1 to l do

write(' ',C[i]);

readln;

End.



Поделитесь с Вашими друзьями:
1   ...   7   8   9   10   11   12   13   14   ...   31




База данных защищена авторским правом ©vossta.ru 2022
обратиться к администрации

    Главная страница