Задания к лабораторной работе № 2

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

К лабораторным работам

по курсу

«ИНФОРМАТИКА»

Часть II
Лабораторная работа № 2

Обработка массивов различной размерности

 

Алгоритм и его программная реализация тесно взаимосвязаны.

· Программа – упорядоченная последовательность инструкций компьютера (команд) для решения задачи.

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

· Программирование – теоретическая и практическая деятельность, связанная с созданием программ.

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

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

Структура программы на языке Паскаль

 

Program <имя программы>;

uses <имена модулей>; {Раздел использования модулей}

type <имя типа> = <определение типа>; {Раздел описания собственных типов}

var <переменная>: <имя типа>; {Раздел описания переменных}

 

{Раздел описания подпрограмм - процедур и функций}

рrocedure <имя процедуры [(список параметров)]>;

var <список переменных процедуры>;

Begin

{Тело процедуры}

end;

function <имя функции [(список параметров)]>: <тип результата>;

var <список переменных процедуры>;

Begin

{Тело функции}

end;

Begin {Основная программа}

{Тело программы}

End.


Одномерный массив (вектор)
Описание Задается целочисленный массив длиной не более 10 (nmax). В программе в качестве фактической длины массива используется переменная n. const nmax=10; type vector = array [1..nmax] of integer; var A:vector; i:integer; {индекс элементов массива} n:integer; {фактическое количество элементов массива}
Ввод writeln (’Введите количество элементов массива’); readln (n); writeln (’Введите элементы массива’); for i:=1 to n do readln(A[i]);
Вывод   1 способ: Каждый элемент массива выводится в отдельной строке. writeln (’Результирующий массив:’); for i:=1 to n do writeln(A[i]);   2 способ: Каждый элемент целочисленного (integer) массива выводится через 5 позиций курсора на экране. writeln (’Результирующий массив:’); for i:=1 to n do write(A[i]:5);   3 способ: Каждый элемент вещественного (real) массива выводится на 8 позициях с 2знаками после запятой. writeln (’Результирующий массив:’); for i:=1 to n do writeln(A[i]:8:2);  
Двумерный массив (матрица)
Описание 1 способ. Задается целочисленная матрица размером не более 10 х 10 элементов (nmax х nmax). В программе в качестве фактических размеров матрицы используются переменные n (количество строк) и m (количество столбцов). const nmax=10; var A: array [1..nmax, 1..nmax] of integer; i,j:integer; {индексы элементов массива} n,m:integer;{фактическое количество строк и столбцов матрицы} 2 способ. Матрица описывается как массив массивов type mas=array[1..20] of integer; matr=array[1..10] of mas;
Ввод 1 способ (для задач): Каждый элемент матрицы вводится в отдельной строке. writeln (’Введите количество строк матрицы’); readln (n); writeln (’Введите количество столбцов матрицы’); readln (m); writeln (’Введите элементы матрицы’); for i:=1 to n do for j:=1 to m do readln(a[i,j]); 2 способ (для программ): Элементы матрицы выводятся позиционно на экране. uses crt; // используем модуль crt для работы с экраном ... writeln (’Введите количество строк матрицы’); readln (n); writeln (’Введите количество столбцов матрицы’); readln (m); writeln (’Введите элементы матрицы’); for i:=1 to n do for j:=1 to m do begin gotoxy(5+i,5*j); readln(a[i,j]); end; Изменяя параметры функции gotoxy, можно менять положение матрицы на экране.
Вывод Элементы матрицы выводятся позиционно на экране.   for i:=1 to n do for j:=1 to m do begin gotoxy(5+i,5*j); write(a[i,j]:5); end;
Совместный вывод матрицы и массива
Вывод Элементы массива b выводятся напротив соответствующих строк матрицы a. for i:=1 to n do begin for j:=1 to m do begin gotoxy(5+i,5*j); write(a[i,j]:5); end; writeln (b[i]:10); end; Вывод Элементы массива b выводятся под соответствующими столбцами матрицы a. for i:=1 to n do for j:=1 to m do begin gotoxy(5+i,5*j); write(a[i,j]:5); end; writeln; for j:=1 to m do write (b[i]:10);
Примеры процедур
1 способ. Матрица описана как двумерный массив. // простейший ввод матрицы Procedure InputMatr(var b:matr;n,m:integer); var i:integer; begin for i:=1 to n do for j:=1 to m do begin gotoxy(5+i,5*j); readln(a[i,j]); end; end;   // простейший вывод матрицы Procedure OutputMatr(var b:matr;n,m:integer); var i:integer; begin for i:=1 to n do for j:=1 to m do begin gotoxy(5+i,5*j); write(a[i,j]); end; end;     2 способ. Матрица описана как массив массивов.   // ввод одномерного массива (одной строки матрицы) Procedure InputMas(var a:mas;m,nstr:integer); var i:integer; begin for i:=1 to m do begin gotoxy(5*i,5+nstr); readln(a[i]); end; end;   // ввод матрицы Procedure InputMatr(var b:matr;n,m:integer); var i:integer; begin for i:=1 to n do inputmas(b[i],m,i); end;   // вывод одномерного массива (одной строки матрицы) Procedure OutputMas(var a:mas;n:integer); var i:integer; begin for i:=1 to n do write(a[i]:5); writeln; end;   // вывод матрицы Procedure OutputMatr(var b:matr;n,m:integer); var i:integer; begin for i:=1 to n do OutputMas(b[i],m); writeln; end;   // сортировка выбором одномерного массива (строки матрицы) Procedure Choise(var a:mas;m:integer); var i,j,v,min,imin:integer; begin for j:=1 to m-1 do begin min:=a[j]; imin:=j; for i:=j+1 to m do if a[i]<min then begin min:=a[i];imin:=i; end; v:=a[j]; a[j]:=a[imin]; a[imin]:=v; end; end;   // сортировка вставкой одномерного массива (строки матрицы) procedure Inser(var a:mas;m:integer); var i, j,v: integer; begin for i:= 2 to m do begin v:= A[i]; j:= i-1; while(j>0) and (v<A[j]) do begin A[j+1]:= A[j]; j:= j-1; end; A[j+1]:= v; end; end;

 

Примеры функций
// поиск минимального элемента в одномерном массиве (в строке матрицы) Function FindMin(var a:mas;m:integer):integer; var i, min:integer; begin min:=a[1]; for i:=2 to m do begin if a[i]<min then min:=a[i]; FindMin:=min; end;   // поиск номера первого положительного элемента в одномерном массиве (в строке матрицы) Function FindPlus(var a:mas;m:integer):integer; var j:integer; begin j:=1; while (j<=m)and(a[j]<=0)do j:=j+1; if j<=m then FindPlus:=j else FindPlus:=0; end;  

Задания к лабораторной работе № 2

В каждом варианте, используя процедуры и функции (с параметрами), необходимо последовательно выполнить следующие задания:

1. В тетради для лабораторных работ в соответствии со стандартами составить 2 схемы алгоритмов: отдельно для п.2 и п.3.

2. Из матрицы А (n x m) получить одномерный массив (способ получения массива из матрицы задан в варианте).

3. В полученном векторе найти и вывести на экран заданное значение (алгоритм получения нужного значения из массива задан в варианте).

4. Отсортировать исходную матрицу (способ сортировки задан в варианте).

5. Вывести исходную матрицу, вектор и отсортированную матрицу в следующем виде:

 

 

1 способ (если массив соответствует строкам матрицы) 2 способ (если массив соответствует столбцам матрицы)
   

 

Задания по вариантам

 

№ вар. Получить одномерный массив, … В полученном векторе решить задачу поиска … Отсортировать в матрице …
  состоящий из сумм элементов соответствующих строк матрицы. максимального элемента и его номера строки по убыванию значений элементов в столбце с номером, заданным пользователем.
  состоящий из номеров первых отрицательных элементов строк матрицы. суммы ненулевых элементов строки по невозрастанию значений в столбце с номером, заданным пользователем.
  элементами которого будут номера максимальных отрицательных элементов в соответствующих строках матрицы. номера первого нулевого элемента столбцы по убыванию значений элементов в первой строке.  
  состоящий из минимальных четных элементов строк матрицы. номера последнего отрицательного элемента столбцы по неубыванию значений элементов в первой строке.
  состоящий из сумм элементов, не превосходящих по значению заданное пользователем число в соответствующих строках матрицы. номера первого положительного элемента строки по неубыванию значений элементов в первом столбце.  
  элементами которого будут номера последних отрицательных элементов строк матрицы. номера последнего четного элемента строки по убыванию значений элементов в последнем столбце.  
  состоящий из номеров минимальных элементов соответствующих строк матрицы. номера первого нечетного элемента строки по убыванию значений элементов в столбце с номером, заданным пользователем.
  состоящий из сумм элементов, превосходящих по значению заданное пользователем число в соответствующих строках матрицы. номера последнего положительного элемента элементы каждой строки по убыванию значений элементов.
  состоящий из номеров минимальных нечетных элементов строк матрицы. количества элементов, равных своему предыдущему строки по возрастанию значений элементов в первом столбце.  
  состоящий из сумм элементов соответствующих столбцов матрицы. количества отрицательных элементов строки по возрастанию значений элементов в столбце, с номером, заданным пользователем.
  элементами которого будут номера первых положительных элементов строк матрицы. среднего арифметического ненулевых элементов элементы каждой строки по возрастанию значений элементов.  
  состоящий из номеров максимальных четных элементов строк матрицы. среднего арифметического нечетных элементов столбцы по невозрастанию значений в строке с номером, заданным пользователем.  
  состоящий из произведений элементов соответствующих строк матрицы. количества отрицательных нечетных элементов элементы каждой строки по невозрастанию значений элементов
  состоящий из максимальных элементов соответствующих строк матрицы. номера первого отрицательного элемента элементы каждого столбца по невозрастанию значений элементов.  
  элементами которого будут номера последних положительных элементов строк матрицы. суммы нечетных элементов столбцы по возрастанию значений элементов в строке с номером, заданным пользователем.  
  состоящий из номеров максимальных нечетных элементов строк матрицы. количества нулевых элементов столбцы по неубыванию значений элементов в строке с номером, заданным пользователем.  
  состоящий из произведений элементов соответствующих столбцов матрицы. количества элементов, меньших своего предыдущего столбцы по убыванию значений элементов в строке с номером, заданным пользователем.
  состоящий из сумм положительных элементов соответствующих столбцов матрицы. количества элементов, неравных своему предыдущему элементы каждого столбца по невозрастанию значений элементов.  
  элементами которого будут номера первых четных элементов соответствующих строк матрицы. количества ненулевых элементов элементы каждого столбца по возрастанию значений элементов.
  состоящий из номеров минимальных элементов соответствующих строк матрицы. среднего арифметического нечетных элементов элементы каждого столбца по неубыванию значений элементов.  
  состоящий из сумм отрицательных элементов соответствующих строк матрицы. суммы четных элементов элементы каждого столбца по убыванию значений элементов.  
  состоящий из средних арифметических элементов соответствующих строк матрицы среднего арифметического положительных элементов элементы каждой строки по неубыванию значений элементов.  
  состоящий из сумм отрицательных элементов соответствующих столбцов матрицы. количества элементов, больших своего предыдущего строки по неубыванию значений элементов в столбце с номером, заданным пользователем.  
  состоящий из номеров максимальных элементов соответствующих строк матрицы. количества четных элементов строки по убыванию значений элементов в столбце с номером, заданным пользователем.  
  состоящий из номеров последних четных элементов соответствующих строк матрицы. суммы нечетных элементов строки по невозрастанию значений в столбце с номером, заданным пользователем.  
  состоящий из сумм отрицательных элементов соответствующих столбцов матрицы среднего арифметического нечетных элементов столбцы по убыванию значений элементов в первой строке.
  состоящий из максимальных элементов соответствующих столбцов матрицы количества положительных элементов столбцы по неубыванию значений элементов в первой строке.  
  состоящий из минимальных элементов соответствующих столбцов матрицы. номера первого нулевого элемента строки по возрастанию значений элементов в столбце с номером, заданным пользователем.
  состоящий из номеров первых отрицательных элементов соответствующих столбцов матрицы. номера первого четного элемента столбцы по невозрастанию значений элементов в первой строке.  
  элементами которого будут номера последних отрицательных элементов строк матрицы. минимального элемента и его номера столбцы по возрастанию значений элементов в первой строке.  

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: