Лабораторная работа по информатике, вариант №13, с методическим пособием.zip

Лабораторная работа по информатике, вариант №13, с методическим пособием.zip

Целью работы является написание программ на ЭВМ, согласно условию в

выбранном варианте, первая программа для задания А, и вторая программа для

задания Б. Для написания программ использовался 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, несущий в этом задании

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

Подпрограмма оформлена в виде отдельной процедуры, как и в задании А,

однако без этой процедуры обойтись, как в первом задании, нельзя, так как

разбросав её на алгоритмы ввода и генерации данных мы усложняем, запутываем

алгоритм программы, снижая тем самым её производительность

(быстродействие).