Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Программа. Procedure Ptreug(x,y,z:real; Var Str:real);






Program Plo;

Uses Crt;

Var a, b, c, d, e, k, m, S: real;

Procedure Ptreug(x, y, z: real; Var Str: real);

Var p: real;

Begin

p: =(x+y+z)/2;

Str: =sqrt(p*(p-x)*(p-y)*(p-z));

End;

Begin

Clrscr;

Writeln('Введите a, b, c, d, e, k, m');

Readln(a, b, c, d, e, k, m);

Ptreug(a, b, k, S1);

Ptreug(k, c, m, S2);

Ptreug(m, d, t, S3);

S: =S1+S2+S3;

Writeln('S1=', S1: 5: 2, ' S2=', S2: 5: 2, ' S3=', S3: 5: 2, ' S=', s: 5: 2);

Readln;

End.

 

Варианты заданий с подпрограммами - функциями:

1.Даны действительные s и t. Получить f(t, -2s, 1.17)+f(2.2, t, s-t), где

 

подпрограмма – функция.

 

2..Даны действительные а, b, с. Получить

 

, где max(x, y) подпрограмма – функция.

3. Даны действительные числа S и t. Получить

f(t, -3*s, 2.5-t)+f(5.2, 3*t, s-t), где

подпрограмма – функция.

 

4. Даны действительные числа S и t. Получить

f(1.5*t, 2*s)+f(t, 3-s)-f(2*s-3, t+s), где

подпрограмма – функция.

 

5. Даны действительные числа S и t.

Получить

h(s, t)+max(h2 (s-t, s*t), h4 (s-t, s+t))+h(1, 1), где

и max(x, y) подпрограммы – функции.

6. Даны действительные числа a, b. Получить:

Y=min(a, b), Y1=min(min(a*b, a+b), min(a2 –b*a, b3-3*a)), Y2=min(Y12+Y, 5.25),

где min(x, x1) определить как функцию, х и х1 ее аргументы.

7.Даны действительные числа S и t. Получить

f(t, 4*s, 2.5*t)+f(5, 2*t, s+t),

где подпрограмма – функция.

 

8. Даны действительные числа S и t. Получить

h(s, t)+min(h3 (s-t, s*t), h2 (s-t, s+t))+h(1, 1), где

подпрограмма – функция.

9. Даны действительные числа a, b, c. Получить

max(x, x1) определить как функцию, где х и х1–аргументы.

 

10. Вычислить К=(М1+М2+М3)/3, где М1, М2, М3 - максимальные элементы массивов Х(30), Y(15), Z(20). Использовать подпрограмму – функцию.

 

11. Два треугольника заданы координатами своих вершин. Вычислить их площади по формуле S=1/2((Х21)(Y3-Y1)-(X3-X1)(Y2-Y1)) и определить, какой из них имеет большую площадь. Использовать подпрограмму – функцию.

 

12. В порт в среднем приходят 3 корабля в день. Какова вероятность того, что в день придет 2 корабля, 4 корабля? Вероятность вычислять по формуле:

Р=3*е-3/к!. Использовать подпрограмму – функцию.

 

13. Вычислить Z=(v1+v2+v3)/3, где v1, v2, v3 – объемы шаров с радиусами r1, r2, r3 соответственно. Объем шара вычислять по формуле V=4/3*Пi*R3. Использовать подпрограмму – функцию.

 

14. Четырехугольник задан координатами своих вершин. Найти его периметр. Использовать подпрограмму – функцию.

 

15. Определить число сочетаний из n по m (n> m), по формуле С=n! /m! (n-m). Использовать подпрограмму – функцию.

 

16. Вычислить Z=(m1+m2)/2, где m1 и m2 - наименьшие элементы массивов Х(20) и Х(35). Использовать подпрограмму – функцию.

 

17. Вычислить среднее арифметическое значение положительных элемен

18. тов для массивов Р(к), L(m), Q(n). Использовать подпрограмму – функцию.

 

19. Составить программу вычисления значения функции

S= x2+y2+sin(2*x2*y2) + x+z+sin(2*x*z) + y2+z2+sin(2*y2*z2), используя функцию вида: a+b+sin(2*a*b).

 

20. Сформировать массив А(n), где а1=1!, а2=2!,..., аn=n!. Использовать подпрограмму – функцию.

 

21. Даны две квадратных матрицы Х(5, 5) и Y(7, 7). Определить сумму элементов, расположенных на главных диагоналях. Использовать подпрограмму – функцию.

 

22. Написать программу вычисления суммы факториалов всех четных чисел от 2 до 100, используя подпрограмму вычисления факториала. Использовать подпрограмму – функцию.

 

Варианты заданий с подпрограммами – процедурами:

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

Вспомогательные локальные переменные-массивы в процедурах/функциях при выполнении заданий использовать не следует.

1. Описать процедуру Polynom(A, N, X) вещественного типа, находящую значение полинома P в вещественной точке X. Полином P задается параметрами N (степень полинома, 0< N< 8) и A (коэффициенты полинома, вещественный массив размера N+1):

P(X)=A[1]·XN+A[2]·XN–1+...+A[N]·X+A[N+1]. Используя эту процедуру, найти значения заданного полинома в пяти данных точках.

2. Описать процедуру Min(A, N) вещественного типа, находящую минимальный элемент массива A, состоящего из N вещественных чисел. С помощью этой функции найти минимальные элементы массивов A, B, C размера NA, NB, NC соответственно.

3. Описать процедуру NMin(A, N) целого типа, находящую номер минимального элемента массива A (массив состоит из N вещественных чисел). С помощью этой функции найти номера минимальных элементов массивов A, B, C размера NA, NB, NC соответственно.

4. Описать процедуру NMinmax(A, N, NMin, NMax), находящую номера минимального и максимального элемента массива A из N вещественных чисел. Выходные параметры: NMin (номер минимального элемента) и NMax (номер максимального элемента). С помощью этой процедуры найти номера минимальных и максимальных элементов массивов A, B, C размера NA, NB, NC соответственно.

5. О писать процедуру NODN(A, N) целого типа, находящую наибольший общий делитель элементов целочисленного массива A размера N. С помощью этой функции найти наибольшие общие делители элементов массивов A, B, C размера NA, NB, NC соответственно.

6. Описать процедуру NOKN (A, N) целого типа, находящую наименьшее общее кратное элементов целочисленного массива A размера N. С помощью функции NOKN найти наименьшие общие кратные элементов массивов A, B, C размера NA, NB, NC соответственно.

7. Описать процедуру Factors(A, N, F), находящую разложение натурального числа A на простые множители. Количество множителей возвращается в целой переменной N, а сами множители (в порядке не убывания) — в целочисленном массиве F (N и F — выходные параметры; максимальное число элементов массива F считать равным 15). С помощью этой процедуры разложить на простые множители пять данных чисел.

8. Описать процедуру PerimN (X, Y, N) вещественного типа, находящую периметр N -угольника, координаты вершин которого (в порядке их обхода) передаются в вещественных массивах X, Y размера N (> 2). С помощью этой функции найти периметры трех данных многоугольников (с числом вершин NA, NB, NC соответственно), если даны координаты их вершин.

9. Описать процедуру Invert(A, N), меняющую порядок следования элементов массива A из N вещественных чисел на противоположный («инвертирование массива»). Массив A — входной и выходной параметр, N — входной параметр. С помощью этой процедуры инвертировать массивы A, B, C размера NA, NB, NC соответственно.

10. Описать процедуру MoveLeft(A, N, k), осуществляющую циклический сдвиг элементов вещественного массива A размера N на k позиций влево (0 < k < 5, k < N). Массив A — входной и выходной параметр, N и k — входные параметры. С помощью этой процедуры осуществить сдвиг элементов данного массива размера N на k1 позиций, а затем — сдвиг элементов полученного массива на k2 позиций (k1 и k2 даны). После каждого вызова процедуры выводить на экран результирующий массив.

11. Описать процедуру Smooth(A, N), заменяющую каждый элемент вещественного массива A размера N на его среднее арифметическое со своими соседями («сглаживание массива»). Массив A — входной и выходной параметр, N — входной параметр. С помощью этой процедуры выполнить пятикратное сглаживание данного массива A размера N, выводя на экран результаты каждого сглаживания.

12. Описать процедуру RemoveX(A, N, X), удаляющую элементы, равные числу X, из массива A целых чисел размера N. Массив A и число N являются входными и выходными параметрами. С помощью этой процедуры удалить из массивов A, B, C размера NA, NB, NC числа XA, XB, XC соответственно.

13. Описать процедуру DoubleX(A, N, X), дублирующую элементы, равные числу X, в массиве A целых чисел размера N. Массив A и число N являются входными и выходными параметрами. С помощью этой процедуры продублировать в массивах A, B, C размера NA, NB, NC каждое вхождение чисел XA, XB, XC соответственно.

14. Описать процедуру SortInc(A, N), выполняющую сортировку по возрастанию массива A из N вещественных чисел. Массив A является входным и выходным параметром. С помощью этой процедуры отсортировать массивы A, B, C размера NA, NB, NC соответственно.

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

 

1. Что такое подпрограмма?

2. Какие виды подпрограмм есть в языке Pascal?

3. Как описывается процедура?

4. Как описывается функция? В чем отличие описания процедуры от функции?

5. Что такое формальные параметры?

6. Что такое фактические параметры? Как они связаны между собой?

7. Какие основные типы параметров различают в языке Pascal?

8. Что такое рекурсия?

9. Дайте понятие локальных и глобальных переменных.


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

mylektsii.su - Мои Лекции - 2015-2024 год. (0.01 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал