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

Пример решения задачи с использованием подпрограмм



Читайте также:
  1. I Всебелорусский съезд (конгресс) в Минске в декабре 1917 г. и его решения. Провозглашение Белорусской народной республики и ее уставные грамоты
  2. I. ЗАДАЧИ КОМИССИЙ ПО ДЕЛАМ НЕСОВЕРШЕННОЛЕТНИХ И ПОРЯДОК ИХ ОРГАНИЗАЦИИ
  3. I. ОСНОВНЫЕ ЗАДАЧИ ОРГАНОВ НАРОДНОГО КОНТРОЛЯ
  4. I.ЗАДАЧИ НАБЛЮДАТЕЛЬНЫХ КОМИССИЙ И ПОРЯДОК ИХ ОРГАНИЗАЦИИ
  5. II. ОСНОВНЫЕ ЗАДАЧИ НА 1938 ГОД
  6. II. ЦЕЛИ И ЗАДАЧИ
  7. II. Цели и задачи конкурса

 

Задача. Заданы матрицы А[Na,Ma] и B[Nb,Mb], состоящие из вещественных чисел, где Na<=15, Ma=10, Nb<=10, Mb<=20. Найти в каждой матрице максимальный элемент и увеличить на его значение все положительные элементы другой матрицы. Преобразованные матрицы вывести на экран.

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

Найти максимальный элемент в матрице А
Ввести матрицу В
Ввести матрицу А


Легко заметить в представленной блок-схеме пары похожих блоков, необходимых для аналогичной обработки каждой из матриц. Представим такие блоки с помощью подпрограмм Vvod, Max, Preobr, Vyvod.

Чтобы правильно спроектировать будущие подпрограммы, представим их в виде «черных ящиков» и четко сформулируем суть выполняемых подпрограммой действий, а также определим наборы выходных и входных параметров. Будем учитывать, что каждая подпрограмма будет вызываться дважды (один раз для обработки матрицы А, другой – для обработки матрицы В), поэтому наборы параметров представим в формальном виде (здесь Х – обрабатываемая матрица, N и M - количество строк и столбцов матрицы, сh – символьное имя матрицы, МХ - максимальный элемент матрицы).

 

Вызов подпрограммы в блок-схеме изображается следующим образом:

Теперь можно записать блок-схему основной программы в терминах подпрограмм.

 

 


Далее рассмотрим описание каждой из подпрограмм (ее вид, алгоритм и списки формальных параметров).

 

 

Program MyProg;

const

N1=15;{максимальное количество строк матрицы}

M1=20;{максимальное количество столбцов матрицы}

 

type

Matrix=array[1..N1,1..M1] of real;

 

var

A, B: Matrix;

Na, Ma, Nb, Mb: byte;

MaxA, MaxB: real;

 

procedyre Vvod(var X:Matrix; var N,M:byte; ch:char);

var

i, j:byte;

begin

write('Введите размерность матрицы',ch);

write('Количество строк=');

read(N);

write('Количество столбцов=');

read(M);

writeln('Введите элементы матрицы',ch);

for i:=1 to N do

for j:=1 to M do

begin

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

read(X[i,j]);

end;

end; {Vvod}

 

function Max(const X:Matrix; N,M:Byte): real;

var

i, j: byte;

Mx: real;

begin

Mx:=X[1,1];

for i:=1 to N do

for j:=1 to M do

if Mx<X[i,j] then

Mx:=X[i,j];

Max:=Mx;

end; {Max}

 

procedure Preobr(var X: Matrix; N,M:byte; Mx:real);

var

i, j: byte;

begin

for i:=1 to N do

for j:=1 to M do

if X[i,j]>0 then

X[i,j]:=X[i,j]+Mx;

end; {Preobr}

 

procedure Vyvod(const X: Matrix; N,M:byte; ch:char);

var

i,j:byte;

begin

writeln('Преобразованная матрица',ch);

for i:=1 to N do

begin

for j:=1 to M do

write(X[i,j]:7:1);

writeln;

end;

end; {Vyvod}

 

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

Vvod(A, Na, Ma, 'A');

Vvod(B, Nb, Mb, 'B');

MaxA:=Max(A, Na, Ma);

MaxB:=Max(B, Nb, Mb);

Preobr(A, Na, Ma, MaxB);

Preobr(B, Nb, Mb, MaxA);

Vyvod(A, Na, Ma, 'A');

Vyvod(B, Nb, Mb 'B');

END.

 

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

1. Авдеюк О.А., Богатырев Р.С., Гостевская О.В., Жмурин Д.В., Павлова Е.С., Покатаева В.М., Шушкова Н.Н. Сборник заданий для лабораторных и семестровых работ по информатике: Учебное пособие/ ВолгГТУ.-Волгоград, 2003.- 81 с.

2. Епанешников А., Епанешников В. Программирование в среде Turbo Pascal 7.0. - 3-е изд.,стер. - М.: “ ДИАЛОГ-МИФИ”,1998. - 288 с.

3. Калмыкова С.Р., Муха Г.С. Покатаева В.М. Технология программирования: Часть 2: Типовые алгоритмы обработки одномерных массивов. Методические указания к лабораторным работам. – Волгоград: «Политехник» ВолгГТУ, 1993. – 23 с.

4.Фаронов В.В. Turbo Pascal 7.0 начальный курс// Учеб. пособ. – М.: «Нолидж», 2001. – 576 с.


 

Оксана Алексеевна Авдеюк

Ольга Владиславовна Гостевская

Дмитрий Владимирович Жмурин

Елена Станиславовна Павлова

 

 


Дата добавления: 2015-07-10; просмотров: 138 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.009 сек.)