Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Программа. Procedure Ptreug(x,y,z:real; Var Str:real);⇐ ПредыдущаяСтр 18 из 18
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((Х2-Х1)(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. Дайте понятие локальных и глобальных переменных.
|