Студопедия — Пример 4. Дана натуральная матрица размером n´n, все элементы которой различны
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Пример 4. Дана натуральная матрица размером n´n, все элементы которой различны






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

Здесь можно выделить следующие подзадачи:

1) заполнение массива;

2) просмотр исходного массива;

3) поиск номера строки m, где находится наибольший элемент;

4) поиск номера столбца k, где находится наименьший элемент;

5) нахождение скалярного произведения строки m на столбец k.

Аналогично примеру 1 первая задача состоит из двух задач: выбора способа заполнения (с помощью меню) и заполнение массива выбранным способом.

Основная программа:

Program Pr_6_3;

Uses Crt, U_6_3;

Var

A: mas2;

m,k,i: integer;

 

Begin

ClrScr;

Zapolnenie2(A);

ClrScr;

Writeln('Исходный массив');

View2(A);

m:= Max_i(A);

k:= Min_j(A);

Writeln;

Writeln('Максимальный элемент в строке №=',m);

Writeln('Минимальный элемент в столбце №=',k);

Writeln('Скалярное произведение =',Sk(m,k));

ReadKey;

End.

 

Модуль, в котором описаны константа N, тип mas2 (двумерный массив NxN), процедуры и функции, используемые в программе:

 

Unit U_6_3;

Interface

Const

N = 5; {количество элементов массива}

Type

mas2 = array [1..N,1..N] of byte;

Procedure View2 (x: mas2);

Procedure zapolnenie2(var x:mas2);

Function Max_i(x: mas2): integer;

Function Min_j(x: mas2): integer;

function Sk(nom_str, nom_stb: integer)

 

Implementation

 

Procedure View2 (x: mas2);

{процедура вывода на экран двумерного массива}

var i,j: integer;

begin

For i:= 1 to N do

begin

For j:= 1 to N do Write(x[i,j]:5);

writeln;

end;

end;

Procedure Create_Random2 (var x: mas2);

{создание массива случайных чисел из диапазона [0,n]}

var i,j: integer;

begin

Randomize;

For i:= 1 to N do

For j:= 1 to N do x[i,j]:= Random(n);

end;

 

Procedure Create2 (var x: mas2);

{процедура ввода массива с клавиатуры}

var

i,j: integer;

begin

ClrScr;

For i:= 1 to N do

For j:= 1 to N do

begin

Write('Введите A[',i,';',j, ']= ');

Readln(x[i,j]);

end;

end;

 

Procedure zapolnenie2(var x:mas2);

{процедура, предоставляющая меню для выбора способа заполнения массива и вызывающая одну из вышеописанных процедур заполнения массива}

var ch:integer;

begin

Writeln('1-Ввод массива ');

Writeln('2-Инициализация массива случайными числами ');

Writeln;

Write('Введите № пункта меню - ');

ReadLn(Ch);

Case ch of

1: Create2(x);

2: Create_Random2(x);

end;

end;

 

function Max_i(x: mas2): integer;

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

var i,j,p,l: integer;

begin

p:= 1; l:= 1;

For i:= 1 to N do

For j:= 1 to N do

if x[p,l] < x[i,j] then

begin

p:= i;

l:= j;

end;

Max_i:= p;

end;

 

function Min_j(x: mas2): integer;

{функция нахождения номера столбца, в котором содержится минимальный элемент}

 

var

i,j,p,l: integer;

begin

p:= 1; l:= 1;

For i:= 1 to N do

For j:= 1 to N do

if x[p,l] > x[i,j] then

begin

p:= i;

l:= j;

end;

Min_j:= l;

end;

 

function Sk(nom_str, nom_stb: integer)

{функция, возвращающая скалярное произведение строки с номером nom_str на столбец с номером nom_stb}

var s,i:integer;

begin

S:=0;

For i:= 1 to N do

S:= S + A[nom_str,i] * A[i,nom_stb];

sk:=s;

end;

end.

 

Задание 3.4 (11 баллов)

Написать программу для решения задачи.

Указания. 1. Выполнить процедурную декомпозицию задачи методом пошаговой детализации. 2. Если в задаче требуется обрабатывать строки или столбцы массива, то написать соответствующие процедуры и в эти подпрограммы передавать номер строки или столбца как параметр. 3. Используемые процедуры, в том числе процедуры ввода и вывода двумерного массива, описать в модуле.

 


Лабораторная работа № 4 (строковые величины, текстовые файлы) (2 часа)

Цели: формирование навыка обработки данных строкового типа;

формирование навыка использования текстовых файлов.







Дата добавления: 2015-08-12; просмотров: 442. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

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

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

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

Выработка навыка зеркального письма (динамический стереотип) Цель работы: Проследить особенности образования любого навыка (динамического стереотипа) на примере выработки навыка зеркального письма...

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

Правила наложения мягкой бинтовой повязки 1. Во время наложения повязки больному (раненому) следует придать удобное положение: он должен удобно сидеть или лежать...

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия