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

6891
знак
1
таблица
5
изображений

Цель работы.


Целью работы является написание программы на языке программирования «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;

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)

N


Информация о работе «Лабораторная №6 вариант №13 по информатике, выполненная с использованием подпрограмм-процедур и подпрограмм-функций»
Раздел: Информатика, программирование
Количество знаков с пробелами: 6891
Количество таблиц: 1
Количество изображений: 5

Похожие работы

Скачать
4802
1
0

... её на алгоритмы ввода и генерации данных мы усложняем, запутываем алгоритм программы, снижая тем самым её производительность (быстродействие). Лабораторная работа №6 Программирование с использованием подпрограмм пользователя. Цель работы – овладение навыками алгоритмизации задач с использованием подпрограмм пользователя различных видов, овладение навыками написания программ и обращения к ним, ...

Скачать
72489
13
13

... средства и технологии: Rational Rose 2003, Microsoft Word 2007. 1)         Rational Rose 2003 - мощное CASE-средство для проектирования программных систем любой сложности. Одним из достоинств этого программного средства является возможность использования диаграмм на языке UML. Можно сказать, что Rational Rose является графическим редактором UML диаграмм. В распоряжение проектировщика системы ...

Скачать
89261
12
5

... одном из элективных курсов. Выбор естественно-математического профиля, во-первых, определяется целью введения данного курса в школе (расширение научного мировоззрения) и, во-вторых, сложностью темы в математическом аспекте. Глава 2. Содержание обучения технологии нейронных сетей Авторы данной работы предлагают следующее содержание обучения технологии нейронных сетей. Содержание образования ...

Скачать
235892
25
6

... работе в графическом режиме предназ­начается для обучения студентов младших курсов Санкт-Петербургской государственной Академии аэрокосмического приборостроения навыкам программирования, а именно работе в графическом режиме языка Turbo-Pascal . Для работы с настоящей программой необходимо знание стандарта языка, интегрированной среды и элементарным навыкам работы с персональным компьютером . ...

0 комментариев


Наверх