Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информационные технологии обработки данных (Контр№2 Вариант №7)

.docx
Скачиваний:
30
Добавлен:
22.06.2014
Размер:
69.82 Кб
Скачать

Министерство образования и науки

Томский государственный университет систем управления и

радиоэлектроники.

Контрольная работа №2

по дисциплине «Информационные технологии обработки данных».

учебное пособие Коробовой В.В.

«Информационные технологии обработки данных».

Вариант № 7

Задание: Вариант № 7.

Задана вещественная матрица размером 7*7, все элементы которой различны. Найти скалярное произведение строки, в которой находится наибольший элемент матрицы, на столбец с наименьшим элементом. Значения элементов матрицы ввести с клавиатуры.

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

Program L3;

uses crt;

const n=3;

type mas=array[1..7,1..7]of integer;

procedure Vvod(var x:mas);

var i,j:byte;

begin

for i:=1 to 7 do

for j:=1 to 7 do

begin

write('x[',i,',',j,']=');

readln(x[i,j]);

end;

clrscr;

writeln('Матрица:');

for i:=1 to 7 do

begin

for j:=1 to 7 do

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

writeln;

end;

end;

procedure MaxMin(a:mas; var imax,jmin:integer);

var i,j,max,min:integer;

begin

max:=a[1,1];

imax:=1;

min:=a[1,1];

jmin:=1;

for i:=1 to 7 do

for j:=1 to 7 do

begin

if a[i,j]>max then

begin

max:=a[i,j];

imax:=i;

end;

if a[i,j]<min then

begin

min:=a[i,j];

jmin:=j;

end;

end;

writeln('Максимальный элемент=',max,' в строке',imax);

writeln('Минимальный элемент=',min,' в столбце',jmin);

end;

function Scal(a:mas;imax,jmin:integer):integer;

var i,s:integer;

begin

s:=0;

for i:=1 to n do

s:=a[imax,i]*a[i,jmin];

Scal:=s;

end;

var a:mas;max,min,s:integer;

begin

Vvod(a);

MaxMin(a,max,min);

s:=Scal(a,max,min);

write('Скалярное произведение строки',max,' на столбец ',min,'=',s);

end.

Описание процедур и функций программы:

Разобьем программу на несколько блоков:

1.Формирование тела программы, устанавливаются константы,объявляются переменные.

2.Начало программы. Задается количество строк и столбцов для переменных i, j.

3.С клавиатуры вводятся значения матрицы. Формируется матрица 7*7.

4.Вводим процедуру поиска наибольшего элемента строки и наименьшего элемента столбца.

5.Поиск наибольшего элемента строки и наименьшего элемента столбца.

6.Вывод наибольшего элемента строки и наименьшего элемента столбца

7.Задаем функцию для вычисления скалярного произведения.

8.Объявление переменных, их типа, вычисление скалярного произведения и вывод результата.

Реализуем эти блоки на Паскале:

1.Формирование тела программы, устанавливаются константы,объявляются переменные:

Program L3;

uses crt;

const n=3;

type mas=array[1..7,1..7]of integer;

procedure Vvod(var x:mas);

var i,j:byte;

2.Начало программы. Задается количество строк и столбцов для переменных i, j:

begin

for i:=1 to 7 do

for j:=1 to 7 do

begin

write('x[',i,',',j,']=');

readln(x[i,j]);

end;

3. С клавиатуры вводятся значения матрицы. Формируется матрица 7*7:

clrscr;

writeln('Матрица:');

for i:=1 to 7 do

begin

for j:=1 to 7 do

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

writeln;

end;

end;

4. Вводим процедуру поиска наибольшего элемента строки и наименьшего элемента столбца:

procedure MaxMin(a:mas; var imax,jmin:integer);

var i,j,max,min:integer;

begin

max:=a[1,1];

imax:=1;

min:=a[1,1];

jmin:=1;

for i:=1 to 7 do

for j:=1 to 7 do

5.Поиск наибольшего элемента строки и наименьшего элемента столбца:

begin

if a[i,j]>max then

begin

max:=a[i,j];

imax:=i;

end;

if a[i,j]<min then

begin

min:=a[i,j];

jmin:=j;

end;

end;

6.Вывод наибольшего элемента строки и наименьшего элемента столбца:

writeln('Максимальный элемент=',max,' в строке',imax);

writeln('Минимальный элемент=',min,' в столбце',jmin);

end;

7.Задаем функцию для вычисления скалярного произведения:

function Scal(a:mas;imax,jmin:integer):integer;

var i,s:integer;

begin

s:=0;

for i:=1 to n do

s:=a[imax,i]*a[i,jmin];

Scal:=s;

end;

8.Объявление переменных, их типа, вычисление скалярного произведения и вывод результата:

var a:mas;max,min,s:integer;

begin

Vvod(a);

MaxMin(a,max,min);

s:=Scal(a,max,min);

write('Скалярное произведение строки',max,' на столбец ',min,'=',s);

end.

Пример работы программы: