Главная Учебники - Разные Лекции (разные) - часть 32
|
Целью
работы является
написание
программ на
ЭВМ, согласно
условию в выбранном
варианте, первая
программа для
задания А, и
вторая программа
для задания
Б. Для написания
программ
использовался
Borland
Turbo
Pascal
версии 7.1. Рассмотрим
по очереди эти
два задания.
ЗАДАНИЕ
А. Необходимо
подсчитать
количество
нулевых элементов
для матриц
А(N,M)
и В(M,N),
причём M
и N
не могут быть
больше 20.
Матрицы
А и В представляют
в машинном
исполнении
двухмерные
массивы, число
элементов в
которых не
может быть
больше 20х20=400 элементов
по условию.
Каждый индекс
числа – M и N
представляет
собой «координату»
числа в матрице,
по его строке
и столбцу,
соответственно.
Автор программы
ввёл в неё выбор
количества
строк и столбцов
для каждой
матрицы (массива),
дав пользователю
возможность
выбрать его
в пределах от
двух до двадцати
(по условию).
Программа
занесения
данных в сами
массивы построена
на цикле оператора
FOR,
причём если
пользователю
будет лень
вносить данные
самостоятельно
– программа
может сделать
это за него
посредством
генерации
случайных чисел
и занесения
их в массивы,
что на современных
компьютерах
занимает считанные
наносекунды.
На программу
самогенерации-самоввода
элементов
матриц автор
программы ввёл
некоторые
ограничения
во избежании
не занесения
в них нулевых
элементов, что
необходимо
для проверки
правильности
работы программы.
Если вручную
вы можете ввести
любое действительное
число от -32768 до
32767, то программа
самогенерации
генерирует
целые числа
от нуля до двадцати.
И, если вы, к
примеру, задали
в программе
размер матриц
2X3,
что составляет
всего шесть
элементов, то
вполне вероятно
(как показала
практика тестирования
программы), что
в ней будет
хотя бы один
нулевой элемент,
или, попросту
– ноль. Подпрограмма
подсчёта количества
нулевых элементов
тоже построена
на цикле оператора
FOR,
и если бы она
не была необходима
по условию, без
неё можно было
бы обойтись,
включив подсчёт
таких элементов
в цикл ввода
данных / цикл
генерации
данных, тем
самым повысив
быстродействие
программы. Эта
подпрограмма
(так же, как и
подпрограмма
в задании Б)
оформлена в
виде процедуры.
ЗАДАНИЕ
Б. Найти средние
значения и
стандартные
отклонения
для элементов
массивов X(N),
Y(M),
причём количество
элементов не
может быть
более 100.
В этом
примере реализована
та же подпрограмма
ввода / генерации
данных, что и
в задании А, с
разницей в
массивах –
здесь мы имеем
одномерные
массивы. На
программу
генерации
элементов
массивов наложены
те же самые
ограничения,
что и в задании
А, с той разницей,
что число
генерируется
в интервале
от нуля до ста,
а не до двадцати.
В подпрограмму
вычисления
условий задачи
внесён тот же
цикл оператора
FOR,
несущий в этом
задании вспомогательную
функцию вычисления
среднего числа
массивов в
частности.
Подпрограмма
оформлена в
виде отдельной
процедуры, как
и в задании А,
однако без этой
процедуры
обойтись, как
в первом задании,
нельзя, так как
разбросав её
на алгоритмы
ввода и генерации
данных мы усложняем,
запутываем
алгоритм программы,
снижая тем
самым её производительность
(быстродействие).
Лабораторная
работа №6
Программирование
с использованием
подпрограмм
пользователя.
Задание для
самостоятельной
работы.
Изучить:
правила
записи подпрограмм
различных
видов и способов
обращений к
ним;
способы
передачи параметров
в подпрограмму;
правила
записи программ,
использующих
подпрограммы.
Разработать
алгоритм решения
задачи.
Составить
программу
решения задачи.
Подготовить
тестовый вариант
программы и
исходных данных.
Задание А.
Выполнить
на ЭВМ программу,
использующую
подпрограмму
функцию, в
соответствии
с номером параметра,
указанным в
таблице.
Проверить
правильность
выполнения
программы с
помощью тестового
варианта. Вариант Задания Вычислить
большие корни
кв. уравнений
x2-ax+b=0 cy2-dy-f=0 Определить
периметры
энугольников,
координатами
их вершин заданы
в массивах
X,
Y. Вычислить
z=(v1+v2+v3)/3
, где v1
,v2,v3,
- объёмы шаров
с радиусами
r1
, r2 и r3
соответственно
Vi
вычислять в
подпрограмме N<=60 M<=60 K<=70 N1<=100
N2<=100 N3<=100 Подсчитать
количество
элементов
матриц X(10,15)
и Y(20,12),
удовлетворяющих
условиям 0<=xij<=1
и 0<=yij<=1 Вычислить
z=(xm1+xm2)/2
, где xm1
и xm2
– наименьшие
элементы массивов
X1(70),
X2(80) M<=20
N<=30 Вычислить
z=(s1+s2)/2,
где s1-
сумма положительных
элементов
массива X(50);
s2-
сумма отрицательных
элементов
массива Y(60) 13 M<=20
N<=20 N<=50
Задание Б.
Выполнить
на ЭВМ программу,
использующую
подпрограмму-процедуру
в соответствии
с номером, указанным
в таблице.
Проверить
правильность
выполнения
программы с
помощью тестового
варианта .
Вариант Задания Вычислить
z
= (s1+s2)/k1k2
,где s1
и k1
– сумма и количество
положительных
элементов
массива X(N);
s2
и k2
– сумма и количество
положительных
элементов
массива Y(M).
M<=100
N<=100 Вычислить
z
= (es1+es2)/k1k2,
где s1
и k1
– сумма и количество
положительных
элементов
массива X(100);
s2
и k2
– сумма и количество
положительных
элементов
массива Y(80).
Вычислить
z
= (x1+y1)/(x2-y2),
где x1
и x2
– корни уравнения
2x2+x-4
= 0, y1
и y2
– корни уравнения
ay2+2y-1
= 0 .
N<=80
M<=70 9
Вычислить
z,
где xi
и yi
– заданы массивами
Вычислить
z
= (xmax-ymin)/2,
где xmax
– максимальный
элемент массива
X(50);
ymin
– минимальный
элемент массива
Y(40) xmax
и ymin
вычислять в
одной подпрограмме | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||