Главная      Учебники - Разные     Лекции (разные) - часть 32

 

Поиск            

 

Лабораторная работа по информатике, вариант №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, несущий в этом задании вспомогательную функцию вычисления среднего числа массивов в частности. Подпрограмма оформлена в виде отдельной процедуры, как и в задании А, однако без этой процедуры обойтись, как в первом задании, нельзя, так как разбросав её на алгоритмы ввода и генерации данных мы усложняем, запутываем алгоритм программы, снижая тем самым её производительность (быстродействие).


Лабораторная работа №6

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

Цель работы – овладение навыками алгоритмизации задач с использованием подпрограмм пользователя различных видов, овладение навыками написания программ и обращения к ним, выбора параметров подпрограмм.


Задание для самостоятельной работы.


  1. Изучить:

  • правила записи подпрограмм различных видов и способов обращений к ним;

  • способы передачи параметров в подпрограмму;

  • правила записи программ, использующих подпрограммы.

  1. Разработать алгоритм решения задачи.

  2. Составить программу решения задачи.

  3. Подготовить тестовый вариант программы и исходных данных.


Задание к работе

Задание А.


  1. Выполнить на ЭВМ программу, использующую подпрограмму функцию, в соответствии с номером параметра, указанным в таблице.

  2. Проверить правильность выполнения программы с помощью тестового варианта.


Вариант

Задания

Условия задачи Примечания
1

Вычислить большие корни кв. уравнений

x2-ax+b=0

cy2-dy-f=0

Все корни действительные
2 Подсчитать число точек, находящихся внутри круга радиусом r с центром в начале координат; координаты заданы массивами X(100), Y(100) Расстояние точки от начала координат вычислять в подпрограмме
3
  • Определить периметры энугольников, координатами их вершин заданы в массивах X, Y.

Длину стороны энугольников вычислять в подпрограмме
4 Подсчитать число точек, находящихся внутри круга радиусом r с центром в точке с координатами (1,1); координаты заданы массивами X(80), Y(80) Расстояние точки от центра круга определять в подпрограмме
5

Вычислить z=(v1+v2+v3)/3 , где v1 ,v2,v3, - объёмы шаров с радиусами r1 , r2 и r3 соответственно

Vi вычислять в подпрограмме

6 Вычислить суммы положительных элементов массивов X(N), Y(M), Z(K)

N<=60 M<=60 K<=70

7 Вычислить среднее арифметическое положительных элементов для массивов A(N1), B(N2), C(N3)

N1<=100 N2<=100

N3<=100

8

Подсчитать количество элементов матриц X(10,15) и Y(20,12), удовлетворяющих условиям 0<=xij<=1 и 0<=yij<=1


9 Вычислить суммы положительных элементов каждой строки для матриц A(10,12) и B(15,10)
10

Вычислить z=(xm1+xm2)/2 , где xm1 и xm2 – наименьшие элементы массивов X1(70), X2(80)


11 Вычислить суммы элементов главных диагоналей матриц A(N,N) B(M,M)

M<=20 N<=30

12

Вычислить z=(s1+s2)/2, где s1- сумма положительных элементов массива X(50); s2- сумма отрицательных элементов массива Y(60)

Обе суммы вычислять в одной подпрограмме

13

Подсчитать число нулевых элементов для матриц A(N,M) и B(M,N)

M<=20 N<=20

14 Вычислить суммы элементов нижних треугольных матриц для матриц A(15,15) и B(20,20)
15 Определить число положительных элементов до первого отрицательного в массивах X(40), Y(50), Z(N)

N<=50


Задание Б.


  1. Выполнить на ЭВМ программу, использующую подпрограмму-процедуру в соответствии с номером, указанным в таблице.

  2. Проверить правильность выполнения программы с помощью тестового варианта .


Вариант

Задания

Условие задачи

Примечания
1

Вычислить z = (s1+s2)/k1k2 ,где s1 и k1 – сумма и количество положительных элементов массива X(N); s2 и k2 – сумма и количество положительных элементов массива Y(M).

M<=100 N<=100

2

Вычислить z = (es1+es2)/k1k2, где s1 и k1 – сумма и количество положительных элементов массива X(100); s2 и k2 – сумма и количество положительных элементов массива Y(80).

Обе суммы вычислять в одной подпрограмме
3 Вычислить и запомнить суммы положительных элементов каждой строки матицы A(10,20), B(15,10).
4

Вычислить z = (x1+y1)/(x2-y2), где x1 и x2 – корни уравнения 2x2+x-4 = 0, y1 и y2 – корни уравнения ay2+2y-1 = 0 .

Все корни действительные
5 Найти наибольшие элементы и их порядковые номера массивов X(N) и Y(M)

N<=80 M<=70

6 Переписать положительные элементы массива X(100) и Y(80) в массив Z подряд Запись в массив Z осуществлять в подпрограмме
7 Найти наименьшие элементы и номера строк и столбцов, в которых они расположены, для матриц A(10,15) и B(15,12)
8 Вывести на печать элементы целочисленных матриц N(5,8) и M(10,6), кратные трём

9

Вычислить z, где xi и yi – заданы массивами


Все суммы вычислять в одной подпрограмме
10

Вычислить z = (xmax-ymin)/2, где xmax – максимальный элемент массива X(50); ymin – минимальный элемент массива Y(40)

xmax и ymin вычислять в одной подпрограмме

11 Вычислить и запомнить количество отрицательных элементов каждого столбца для матриц A(10,10), B(15,20)
12