Смекни!
smekni.com

Методические рекомендации по выполнению контрольных и лабораторных работ (стр. 3 из 7)

19) Найти произведение всех ее отрицательных элементов и заменить им все диагональные элементы этой матрицы.

20) Найти минимальное из чисел, встречающееся в данной матрице более одного раза.

21) Найти максимальное из чисел, встречающееся в данной матрице более одного раза.

22) Найти сумму наибольших элементов каждой строки матрицы и их координаты.

23) Найти сумму наименьших элементов каждой строки матрицы и их координаты.

24) Найти произведение наибольших элементов каждой строки матрицы и их координаты.

25) Найти произведение наименьших элементов каждой строки матрицы и их координаты.

26) Найти сумму наибольших элементов каждого столбца матрицы и их координаты.

27) Найти сумму наименьших элементов каждого столбца матрицы и их координаты.

28) Найти произведение наибольших элементов каждого столбца матрицы и их координаты.

29) Найти произведение наименьших элементов каждого столбца матрицы и их координаты.

30) Найти, сколько положительных элементов содержит данная матрица в каждой строке.

31) Найти, сколько отрицательных элементов содержит данная матрица в каждой строке.

32) Найти, сколько положительных элементов содержит данная матрица в каждом столбце.

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

1. Особенности выполнения изучаемых операторов: циклов, условных, ввода-вывода.

2. Процедуры и функции. Формальные и фактические параметры. Передача в параметрах массивов.

3. Размерность массивов. Контроль за корректным распределением памяти для массивов.

4. Двумерные массивы. Строки и столбцы. Расположение в памяти двумерных массивов.

Список использованной и рекомендуемой литературы

1. Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию. М., 1988.

2. Абрамов С.А., Зима Е.В. Начала информатики. М., 1989.

3. Вирт Н. Алгоритмы + структуры данных = программы. М., 1985.

4. Грогоно П. Программирование на языке Паскаль. М., 1982.

5. Джонс Ж., Харроу К. Решение задач в системе Турбо Паскаль. М., 1991.

6. Йенсен К., Вирт Н. Паскаль: руководство для пользователя. М., 1989.

7. Касьянов В.Н., Сабельфельд В.К. Сборник заданий по практикуму на ЭВМ. М., 1986.

8. Мизрохи С.В. TURBO PASCAL и объектно-ориентированное программирование. М., 1992.

9. Пильщиков В.Н. Сборник упражнений по языку Паскаль. М., 1989.

10. Прайс Д. Программирование на языке Паскаль: Практическое руководство. М., 1987.

11.Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. М., 1997.

12.Фаронов В.В. Турбо Паскаль 7.0. Практика программирования. Учебное пособие. М., 1997.

13. Фирменная документация и компьютерные справочники (файлы помощи типа HELP).

ПРИЛОЖЕНИЕ 1

Вариант оформления отчета по контрольной работе N 4

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ГОУ ВПО «Уральский государственный университет – УПИ»

ОТЧЕТ

ПО КОНТРОЛЬНОЙ РАБОТЕ N 4

ОРГАНИЗАЦИЯ ЦИКЛОВ И ОБРАБОТКА МАТРИЦ

Выполнил: студент гр. М-123

Иванов Н.К.

Проверил:

Екатеринбург 2003

ПОСТАНОВКА ЗАДАЧИ

Вариант 1.

Задана квадратная матрица A размером N x N (N<=10), состоящая из действительных элементов. Найти среднее арифметическое элементов каждого из столбцов этой матрицы.

ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ

Для обработки матриц в задании применены вложенные операторы

ЦИКЛА СО СЧЕТЧИКОМ :

for <идентификатор>:=<нач. значение счетчика> to < конечное значение счетчика > do

<оператор>

Для проверки размерности матрицы (k<=N) применен оператор

ЦИКЛА ПОВТОРИТЬ :

Repeat

<оператор>;

...

<оператор>;

Until <условие выхода из цикла>;

Ввод фактического количества строк и столбцов квадратной матрицы A (k<=N), ввод-вывод элементов матрицы А и вычисление среднего арифметического каждого из столбцов матрицы реализовано через соответствующие процедуры: InputN, I.nputMatrix, OutputMatrix, Evaluate с параметрами (см. Листинг программы Work4.pas). Выходные параметры передаются через атрибут Var.

Используются две стандартные подпрограммы модуля CRT:

¨ Для очистки экрана - процедура ClrScr.

¨ Для ввода символа (в данном случае n или N) - функция ReadKey.

ОПИСАНИЕ ПРОГРАММЫ

Программа написана на алгоритмическом языке ПАСКАЛЬ и реализована в среде Borland Pascal-7.0 Windows 95/MS DOS-7.0, процессор Pentium. Программа состоит из главной программы и четырех подпрограмм (InputN, InputMatrix, OutputMatrix, Evaluate), объединенных в единый модуль WORK4.pas. Из главной программы вызываются внешние подпрограммы стандартного модуля CRT: ClrScr, ReadKey.

ОПИСАНИЕ ЛОГИЧЕСКОЙ СТРУКТУРЫ

Описание алгоритма решения задачи - см. Стр. 18 - 22.
ОПИСАНИЕ ВХОДНЫХ ДАННЫХ

k - фактическое количество строк и столбцов матрицы (k<=N) - переменная типа INTEGER;

A - квадратная матрица, состоящая из вещественных элементов (типа REAL):

A: array[1..N,1..N] of real.

ОПИСАНИЕ ВЫХОДНЫХ ДАННЫХ

Stolb: array[1..N] of real - локальный массив средних арифметических значений элементов каждого из столбцов матрицы A - вычисляется и выводится в процедуре Evaluate.

ОПИСАНИЕ ПОДПРОГРАММ

Процедура InputN (Var k:integer)

Служит для ввода фактического количества строк и столбцов квадратной матрицы A (1<k<=N).

Процедура InputMatrix (k:integer; Var A:arrayA)

Служит для ввода значений вещественных элементов матрицы A типа ArrayA (ArrayA=array[1..N,1..N] of real) длиной k*k.

Процедура OutputMatrix (k:integer; A:arrayA)

Служит для вывода значений вещественных элементов квадратной матрицы A типа ArrayA длиной k*k.

Процедура Evaluate (k:integer; A:arrayA)

Служит для вычисления и выдачи на экран среднего арифметического каждого из столбцов квадратной матрицы A типа ArrayA длиной k*k.






ТЕСТОВЫЕ ПРИМЕРЫ

Введите значение N=====>3

------- Исходная матрица -------

1111.00 2222.00 3333.00

1111.00 2222.00 3333.00

1111.00 2222.00 3333.00

------- Cреднее арифметическое каждого из столбцов -------

Cтолбец [1]= 1111.00

Cтолбец [2]= 2222.00

Cтолбец [3]= 3333.00

Введите значение N=====>2

------- Исходная матрица -------

1.00 2.00

3.00 4.00

------- Cреднее арифметическое каждого из столбцов -------

Cтолбец [1]= 2.00

Cтолбец [2]= 3.00

Введите значение N=====>4

------- Исходная матрица -------

111222.00 222333.00 333444.00 444555.00

555.00 555666.00 666777.00 777888.00

888999.00 999.00 111999.00 222888.00

333777.00 444666.00 555555.00 123456.00

------- Cреднее арифметическое каждого из столбцов -------

Cтолбец [1]= 333638.25

Cтолбец [2]= 305916.00

Cтолбец [3]= 416943.75

Cтолбец [4]= 392196.75

Список использованной литературы

1. Абрамов С.А., Зима Е.В. Начала информатики. М., 1989.

2. Вирт Н. Алгоритмы + структуры данных = программы. М., 1985.

3. Джонс Ж., Харроу К. Решение задач в системе Турбо Паскаль. М., 1991.

4. Мизрохи С.В. TURBO PASCAL и объектно-ориентированное программирование. М., 1992.

5. Прайс Д. Программирование на языке Паскаль: Практическое руководство. М., 1987.

6. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. М., 1997.

7. Фирменная документация и компьютерные справочники (файлы помощи типа HELP).

ЛИСТИНГ ПРОГРАММЫ Work4.pas

Program Work4;

Uses CRT;

Const N=10;

Type ArrayA=array [1..N,1..N] of real;

Var k : integer;

A: ArrayA;

ch : char;

{ ввод фактического количества k строк и столбцов квадратной матрицы A }

Procedure InputN(Var k:integer);

Begin

Repeat

Write('Введите значение N=====>');

Readln(k);

Until (k<=N) and (k>1);

End;

{ ввод значений вещественных элементов матрицы A }

Procedure InputMatrix(k:integer;Var A:arrayA);

Var i,j:integer;

Begin

for i:=1 to k do

for j:=1 to k do

Begin

Write('Введите значение элемента матрицы A[',i,',',j,']=====>');

Readln(A[i,j]);

End;

End;

{ вывод значений вещественных элементов матрицы A }

Procedure OutputMatrix(k:integer; A:arrayA);

Var i,j:integer;

Begin

Writeln(' ------- Исходная матрица -------');

for i:=1 to k do

Begin

for j:=1 to k do

Write(A[i,j]:7:2,' ');

Writeln;

End;

End;

{вычисление и выдача на экран среднего арифметического каждого из столбцов

квадратной матрицы A}

Procedure Evaluate(k:integer; A:arrayA);

Var i,j:integer;

stolb:array [1..N] of real;

sr:real;


Begin

for j:=1 to k do

Begin

sr:=0;

for i:=1 to k do

sr:=sr+A[i,j]; {вычисление суммы элементов по столбцам матрицы A}

Stolb[j]:=sr/k;

End;

Writeln('------- Cреднее арифметическое каждого из столбцов -------');

for j:=1 to k do

Writeln ('Cтолбец [',j,']= ',Stolb[j]:7:2);

End;

{Главная программа}

Begin

Repeat

ClrScr;

InputN(k);

InputMatrix(k,A);

ClrScr;

OutputMatrix(k,A);

Evaluate(k,A);

Writeln('Опять? (y/n)');

ch:=ReadKey;

Until (ch='n') or (ch='N');

End.

ПРИЛОЖЕНИЕ 2

пример выполнения контрольной работы № 1

ЛИСТИНГ ПРОГРАММЫ Work1.pas

program Work1;

{ Вычислить вариант

30) arctg(b) + c*b - a/4

x= ------------------------

12*c + a - b

}

Uses CRT;

Label L1;

var

a,b,x,x1,x2 : Real;

c : Integer;

ch : Char;