КАТЕГОРИИ: Архитектура-(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; Просмотров: 513; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |