Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Дана матрица C(4х6), каждая строка которой содержит положительные, отрицательные и нулевые элементы. Сформировать вектор D(4) по следующему правилу: если количество положительных элементов i-той строки (i=1..4) больше количества отрицательных, элементу вектора D присвоить значение равное 1, в противном случае 0. Подсчёт количества положительных и отрицательных элементов строки оформить в виде процедуры.
Алгоритм главной программы
Алгоритм подпрограммы
program example99;
type t = array [1..4,1..6] of real;
r = array [1..4] of real;
var
c: t;
d: r;
m, n, s1, s2: integer;
procedure Pro (f: t; var k1, k2:integer; i: integer);
var
j:integer;
begin
for j:=1 to 6 do
if f [i,j] > 0 then k1:= k1 + 1 else
if f [i, j] < 0 then k2:= k2 + 1
end;
{ ***** начало главной программы ***** }
begin
for m:=1 to 4 do
for n:=1 to 6 do read (c [m, n]);
writeln;
for m:=1 to 4 do
begin
s1:=0; s2:=0; Pro (c, s1, s2, m);
if s1 > s2 then d [ m ]:= 1 else d [ m ]:= 0;
end;
writeln ('Вектор D ');
for m:=1 to 4 do write (d [ m ])
end.
Сложный цикл, который необходим для обработки заданной матрицы, разделён между процедурой и главной программой. Процедура содержит внутренний цикл, который обрабатывает строку матрицы, подсчитывая в ней количество положительных и отрицательных элементов.
Внешний цикл, расположенный в главной программе, меняет номера строк матрицы и передаёт их в процедуру в момент её вызова. Результаты счёта - количество положительных и отрицательных элементов строки возвращается в главную программу посредством глобальных переменных s1 и s2 (в процедуре им соответствуют параметры-переменные k1 и k2), которые сравниваются между собой. Исходя из результатов сравнения, принимается решение о том присвоить ли очередному элементу вектора D единицу или ноль.
Вопросы для самоконтроля
1) Что представляет собой программа с иерархической структурой?
2) Дайте определение главной программы и подпрограммы.
3) Для чего служит оператор вызова и что он должен содержать?
4) В каких случаях разрабатываются программы иерархической структуры?
5) Приведите структуру описания подпрограммы.
6) Что представляют собой глобальные и локальные имена и какие принципы, положены в основу их деления?
7) Какова роль фактических и формальных параметров при организации подпрограмм?
8) Может ли формальный параметр быть константой?
9) Как согласуются между собой формальные и фактические параметры?
10) Как описываются параметры-значения и параметры-переменные?
11) Объясните механизм передачи данных с помощью параметров значений и параметров-переменных.
12) В чём разница между процедурами и функциями?
13) Где указывается тип значения, возвращаемого функцией в вызывающую программу?
14) Какой оператор должен присутствовать в теле функции обязательно?
15) Что понимают под рекурсией?
16) Если массив предполагается использовать в подпрограмме, то где его следует описать?
17) Можно ли используемый в подпрограмме массив описать только в разделе описания переменных?
18) Является ли правильной запись a[i], если это фактический параметр, передаваемый в подпрограмму?
Дата публикования: 2015-01-24; Прочитано: 175 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!