Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример выполнения работы. Условие: Используя подпрограмму-процедуру, расположить в порядке возрастания элементы массивов А(10) и В(12)




Задание 1

Условие: Используя подпрограмму-процедуру, расположить в порядке возрастания элементы массивов А(10) и В(12).

Программа:

{Лабораторная работа №8. Задание №1}

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

{Выполнена Ф.И.О.}

{Группа }

program massiv;

uses crt;

type mas=array[1..20] of integer;

var a,b:mas;

i,n:integer;

procedure vvod(n:integer;var c:mas);

begin

writeln('Сформированный массив');

for i:=1 to n do

begin

c[i]:=random(11);

write(c[i]:2,'':2);

end;

writeln;

end;

procedure vozrast(n:integer;var c:mas);

var v,k:integer;

begin

for i:=1 to n-1 do

for k:=i+1 to n do

if c[i]>c[k] then

begin

v:=c[i];

c[i]:=c[k];

c[k]:=v;

end;

writeln('Изменнёный массив');

for i:=1 to n do

write(c[i]:2,'':2);

writeln;

end;

 

{-----------------основная программа----------------}

begin

clrscr;

writeln('Введите число элементов массива A');

read(n);

vvod(n,a);

vozrast(n,a);

writeln;

writeln('Введите число элементов массива B');

read(n);

vvod(n,b);

vozrast(n,b);

end.

 

Результат выполнения программы:

 

Введите число элементов массива A

Сформированный массив

0 10 10 10 0 6 7 10 8 0

Изменнёный массив

0 0 0 6 7 8 10 10 10 10

 

Введите число элементов массива B

Сформированный массив

6 8 4 7 9 4 0 10 3 7 6 4 6 10 9 0 5 5 2 4

 

Изменнёный массив

0 0 2 3 4 4 4 4 5 5 6 6 6 7 7 8 9 9 10 10

 

 

Условие: Используя подпрограмму-процедуру, вычислить сумму элементов, расположенных под главной диагональю двух матриц А и В.

Программа:

{Лабораторная работа №8. Задание №1}

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

{Выполнена Ф.И.О.}

{Группа }

 

program matriza;

uses crt;

type matr=array[1..10,1..10] of integer;

var a,b:matr;

n:integer;

procedure wwod(n:integer; var c:matr);

var i,j:integer;

begin

for i:=1 to n do

for j:=1 to n do

c[i,j]:=random(21);

end;

procedure wuwod(n:integer; var c:matr);

var i,j:integer;

begin

writeln(' Матрица');

writeln;

for i:=1 to n do

begin

for j:=1 to n do

write(' ',c[i,j]:3);

writeln;

end;

writeln;

end;

procedure summa(n:integer; var c:matr);

var s:integer;

i,j:integer;

begin

s:=0;

for i:=1 to n do

for j:=1 to n do

if j<i then s:=s+c[i,j];

writeln('Сумма элементов, расположенных под главной диагональю = ',s:3);

writeln;

end;

 

{--------------основная программа----------------------}

begin

clrscr;

randomize;

writeln(' Введите размерность матрицы A');

readln(n);

wwod(n,a);

wuwod(n,a);

summa(n,a);

writeln(' Введите размерность матрицы B');

readln(n);

wwod(n,b);

wuwod(n,b);

summa(n,b);

end.

Результат выполнения программы:

 

Введите размерность матрицы A

Матрица

 

0 19 2

4 15 1

11 19 14

 

Сумма элементов, расположенных под главной диагональю = 34

 

Введите размерность матрицы B

Матрица

 

8 19 15 4

2 8 6 13

3 11 7 5

9 13 20 10

 

Сумма элементов, расположенных под главной диагональю = 58

 

 

Задание 2

 

Условие: Используя подпрограмму-функцию, вычислить сумму четных элементов в трех одномерных массивах.

Программа:

{Лабораторная работа №8. Задание №2}

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

{Выполнена Ф.И.О.}

{Группа }

program massiv;

uses crt;

type mas=array[1..100] of integer;

var i,n:integer;

a,b,c:mas;

summaA,summaB,summaC,summa:integer;

function chetn(n:integer;d:mas): integer;

var s:integer;

begin

s:=0;

for i:=1 to n do

if d[i] mod 2=0 then s:=s+d[i];

chetn:=s;

end;

{--------основная программа-------------}

begin

clrscr;

randomize;

write(' Введите размерность массива А n= ');

readln(n);

for i:=1 to n do

begin

a[i]:=random(101);

write(a[i]:4,'':2);

end;

writeln;

summaA:=chetn(n,a);

writeln('summaA = ',summaA:4);

writeln;

write('Введите размерность массива В n= ');

readln(n);

for i:=1 to n do

begin

b[i]:=random(201);

write(b[i]:4,'':2);

end;

writeln;

summaB:=chetn(n,b);

writeln('summaB = ',summaB:4);

writeln;

write('Введите размерность массива С n= ');

readln(n);

for i:=1 to n do

begin

c[i]:=random(301);

write(c[i]:4,'':2);

end;

writeln;

summaC:=chetn(n,c);

writeln('summaC = ',summaC:4);

writeln;

summa:=summaA+summaB+summaC;

writeln('summa = ',summa:6);

readln;

end.

 

Результат выполнения программы:

Введите размерность массива А n= 5

9 31 11 56 38

summaA = 94

 

Введите размерность массива В n= 7

103 24 185 128 27 154 36

summaB = 342

 

Введите размерность массива С n= 8

234 276 104 119 249 107 293 160

summaC = 774

 

summa = 1210

 

Условие: Используя подпрограмму-функцию, вычислить

y = (F(a)+F(b))/(3F(c+a)).

Программа:

{Лабораторная работа №8. Задание №2}

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

{Выполнена Ф.И.О.}

{Группа }

program func;

uses crt;

var y,a,b,c:real;

function f(x:real):real;

begin

f:=sqrt(x)+6*sqr(x)+sin(x)/cos(x);

end;

begin

clrscr;

write(' Введите значение переменной a= ');

readln(a);

write(' Введите значение переменной b= ');

readln(b);

write(' Введите значение переменной c= ');

readln(c);

y:=(f(a)+f(b))/(3*f(c+5));

writeln(' Значение переменной y= ',y:6:3);

readln;

end.

 

Результат выполнения программы:

Введите значение переменной a= 12.65

Введите значение переменной b= 43.76

Введите значение переменной c= 8.098

Значение переменной y= 4.018

 

 

Контрольные вопросы

1. Указать, при каких условиях целесообразно использо­вание подпрограмм, какие выгоды они предоставляют пользо­вателю.

2. Указать, в чем отличие различных видов подпрограмм пользователя.

3. Указать способы обращения к подпрограммам пользо­вателя.

4. Указать способы передачи параметров в подпрограмму.

5. Указать, как организовать подпрограмму без параметров.

6. Перечислить, как согласуются формальные и фактиче­ские параметры.

7. Указать конструкции, которые могут быть формальными и фактическими параметрами.

8. Пояснить, как и куда осуществляется выход из подпрограммы.

 




Поделиться с друзьями:


Дата добавления: 2014-12-25; Просмотров: 490; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.032 сек.