РефератыИнформатика, программированиеЛаЛабораторная №6 вариант №13 по информатике, выполненная с использованием подпрограмм-процедур и подпрограмм-функций

Лабораторная №6 вариант №13 по информатике, выполненная с использованием подпрограмм-процедур и подпрограмм-функций

Цель
работы.


Целью
работы является
написание
программы на
языке программирования
«
Pascal»
для
DOS
с использованием
подпрограмм
и функций, задания
для которых
обозначены
вариантом
лабораторной
работы.


2.
Постановка
задачи.



Главной
задачей программиста
является создание
наиболее простого,
и, следовательно,
быстрого алгоритма
программы,
выполняющего
оба задания
– А и Б, причём
задание А необходимо
оформить в виде
процедуры, а
задание Б в
виде функции.
При этом сделать
программу как
можно проще
в использовании.


3.
Описание алгоритма
программы.



Помимо
короткого
основного
модуля программы,
который управляет
процедурами
и функциями,
в программу
включены две
функции и одна
процедура, они
же и являются
подпрограммами,
которые было
необходимо
использовать
по условию
лабораторной
работы.



Процедура
представляет
собой задание
А, в котором
необходимо
было подсчитать
количество
нулей в матрицах.
В программе
матрицы представлены
двухмерным
массивом, числа
в которые заносятся
автоматически
посредством
случайного
их генератора,
после чего над
ними производятся
вычисления.
Необходимо
подчеркнуть,
что как для
занесения в
матрицы случайных
чисел, так и
для подсчёта
их нулевых
элементов,
использовался
один двойной
цикл оператора
FOR.



Первая
функция – это
программное
меню, которое
предоставляет
пользователю
программы выбор
вычисления
заданий и выход.
Соответственно
вторая функция
– это задание
Б, для выполнения
которого автор
программы
использовал
те же принципы
построения
подпрограммы,
что и для выполнения
подпрограммы
задания А.


4.
Блок-схема
программы.



См. на
следующей
странице.



5.
Общие условия.



В программе
использовались
два вида условий.
Первое из них
– условие оператора
IF.
Оно присутствует
в основном
модуле программы,
который управляет
подпрограммами
(т. е. процедурами
и функциями)
и выполняет
задание А или
Б в зависимости
от выбора
пользователя
из меню программы.
Можно также
выйти из программы
без выведения
на экран результатов.



Второе
условие – это
условие оператора
FOR,
которое является
скрытым условием.
Оператор проверяет,
все ли элементы
массивов заполнены.


6.
Исходный текст
программы.



program lab6v13;



uses crt;



const



m1=20;



n1=20;



m2=100;



n2=100;



var



kl,cycle00,cycle01,null_el_a,null_el_b:integer;



a:array [0..n1,0..m1]
of real;



b:array
[0..m1,0..n1] of real;



x:array [0..n2] of
real;



y:array [0..m2] of
real;



mid_x,mid_y,sum_x,sum_y,delt_x,delt_y:real;



label



exitprogr,funct,startprg;



procedure labproc_q_a;



begin



null_el_a:=0;



null_el_b:=0;



for cycle00:=0 to n1
do begin



for cycle01:=0 to m1
do begin



a[cycle00,cycle01]:=int(random(40));



if
a[cycle00,cycle01]=0 then null_el_a:=null_el_a+1;



b[cycle01,cycle00]:=int(random(50));



if
b[cycle01,cycle00]=0 then null_el_b:=null_el_b+1;



end;



end;



window (1,5,75,7);



gotoxy (2,6);



write
('
Количество
нулей
в
матрице
А:
',null_el_a:3);



clreol;



writeln (' ');



gotoxy (3,7);



write ('Количество
нулей в матрице
Б: ',null_el_b:3);



clreol;



end;



function
mid_delt(mid_x,mid_y,delt_x,delt_y:real):real;



begin



sum_x:=0;



sum_y:=0;



for cycle00:=0 to m2
do begin



for cycle01:=0 to n2
do begin



x[cycle01]:=int(random(100));



y[cycle00]:=int(random(200));



sum_x:=sum_x+x[cycle01];



sum_y:=sum_y+y[cycle00];



end;



end;



mid_x:=sum_x/n2;



mid_y:=sum_y/m2;



delt_x:=mid_x/mid_y;



delt_y:=mid_y/mid_x;



end;



function menu:byte;



var
str1,str2,str3:string[9];kl:byte;key:char;



begin



str1:='ФУНКЦИЯ';str2:='ПРОЦЕДУРА';str3:='ВЫХОД';



window(25,24,55,24);



textcolor(15);gotoxy(13,1);write(str2);



textcolor(15);gotoxy(25,1);write(str3);



textcolor(14);gotoxy(3,1);write(str1);kl:=1;<

/B>



repeat



key:=readkey;



case key of



#75: begin



if kl=2 then begin
kl:=1;



textcolor(15);gotoxy(13,1);write(str2);



textcolor(14);gotoxy(3,1);write(str1);



end;



if kl=3 then begin
kl:=2;



textcolor(15);gotoxy(25,1);write(str3);



textcolor(14);gotoxy(13,1);write(str2);



end;



end;



#77: begin



if kl=2 then begin
kl:=3;



textcolor(15);gotoxy(13,1);write(str2);



textcolor(14);gotoxy(25,1);write(str3);



end;



if kl=1 then begin
kl:=2;



textcolor(15);gotoxy(3,1);write(str1);



textcolor(14);gotoxy(13,1);write(str2);



end;



end;



end;



until key=#13;



menu:=kl;



end;


begin



gotoxy (1,1);



write ('Лабораторная
работа - 6, вариант
- 13.');



startprg:



kl:=menu;



textcolor(15);



if kl=3 then goto
exitprogr;



if kl=2 then
labproc_q_a;



if kl=1 then goto
funct;



goto startprg;



funct:



window
(1,5,75,7);clrscr;



gotoxy (3,6);



write ('Средние
значения массивов
X и Y и их отклонения
равны: ',mid_x:3:3,'; ',mid_y:3:3,';
',delt_x:3:3,'; ',delt_y:3:3);



clreol;



goto startprg;



exitprogr:



clrscr;



end.


7.
Входные и выходные
данные.



Входные
данные формируются
посредством
генератора
случайных чисел
и вносятся в
программные
массивы данных
машиной самостоятельно.
Это сделано
для упрощения
алгоритма
программы, в
ущерб вводу
данных с клавиатуры.
Причём в заданиях
заносятся в
массивы целочисленные
данные. Это с
деланно, в частности,
для задания
А с целью увеличения
количества
нулей в матрицах.
Выводные данные
в задании А
представляют
собой целые
числа, так как
они представляют
собой количество
нулей, а в задании
Б – действительные
числа.



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



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


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


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



Изучить:



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



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



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



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



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



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


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


Задание А.



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



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



































Вариант


Задания


Условия
задачи
Примечания
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)
Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Лабораторная №6 вариант №13 по информатике, выполненная с использованием подпрограмм-процедур и подпрограмм-функций

Слов:1026
Символов:12793
Размер:24.99 Кб.