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

Пример основной программы

Читайте также:
  1. Begin {начало основной программы} . . .
  2. Begin {начало основной программы} . . .
  3. HTML. Теги основной части документа
  4. I Пример слияния в MS WORD 2003. Изучите материал и выполните пример на компьютере.
  5. I. Примерный перечень вопросов рубежного контроля.
  6. II. Организация и программы Олимпийских игр.
  7. II. Основной этап

Способы передачи параметров

1) по значению,

2) по ссылке,

3) в виде процедур или функций.

Параметры-значения

ПП при выполнении использует копии переданных параметров-значений, а не сами параметры. Если в подпрограмме эти параметры изменяются, то изменяется их копия, сами же параметры сохраняют своё значение.

Примеры

procedure xyz(x,y:real;z:integer);

или

procedure xyz(x:real;y:real;z:integer);

 

Параметры-переменные (var)

При вызове ПП в ПП передается адрес параметра (параметр передаётся по ссылке). Изменение значения параметра внутри программы влечёт изменение фактического параметра.

procedure sum_pr(x,y:real; var S,P:real)

begin

S:=x+y;

P:=x*y

end;

Описание подпрограмм-функций отличается от описания процедур:

– в заголовке функции всегда указывается тип результата функции;

– в теле функции должен присутствовать хотя бы один оператор присваивания, в левой части которого стоит имя функции;

– в теле функции имя функции не может присутствовать нигде, кроме левой части оператора присваивания.

При вызове ПП формальные параметры заменяются фактическими параметрами, и алгоритм ПП выполняется над фактическими параметрами. Фактические параметры должны иметь тот же тип, что и формальные.

Вызов процедурысамостоятельный оператор, он имеет вид:

<имя процедуры>[(список фактических параметров)]

Вызов функцииуказатель функции (один из элементов выражения):

<имя функции>[(список фактических параметров)]

Пример. Описать процедуру нахождения минимум и максимум двух чисел

procedure min_max(x,y:real;var min,max:real)

begin

if x>y then

begin max:=x;min:=y end

else

begin max:=y;min:x end

end;

 

Пример основной программы

var u,v,a,b:real;

begin

readln(a,b);

min_max(a,b,u,v);

writeln(‘max=’,u,’ min=’,v)

end.

При вызове подпрограммы фактические параметры разделяются запятой.

В качестве фактических параметров-значений можно передавать переменные, константы, выражения.

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

Пример. Описать процедуру вычисления площади треугольника по формуле Герона, если заданы длины трёх сторон треугольника.

procedure Geron(a,b,c:real;var S:real);

var p:real;

begin

p:=(a+b+c)/2;

if p>0 then

S:=sqrt(p*(p-a)*(p-b)*(p-c));

else

S:=0

end;

var x,y,z,pl:real;

begin

writeln ('x,y,z…'); readln(x,y,z);

Geron(x,y,z,pl);

writeln('pl=',pl)

end.

Пример. Описать функцию вычисления площади треугольника по формуле Герона, если заданы длины трёх сторон треугольника.

function Geron(a,b,c:real):real;

var p:real;

begin

p:=(a+b+c)/2;

if p>0 then

Geron:=sqrt(p*(p-a)*(p-b)*(p-c));

else Geron:=0

end;

var x,y,z:real;

begin

writeln ('x,y,z…'); readln(x,y,z);

writeln Geron(x,y,z);

end.

1. Описать функцию вычисления f (x) по формуле

Используя эту функцию, для заданных чисел a, b, c вычислить значение функций f (a), f (b), f (c) и вывести их в порядке убывания.

2. Описать функцию вычисления f (x) по формуле

Используя эту функцию, для заданных чисел a, b, c вычислить значение функций f (a), f (b), f (c) и вывести их и найти наибольшее значение функции.

3. Описать логическую функцию проверки, является ли заданное целое число положительным и нечетным.

Для заданных чисел a, b, c найти сумму и произведение положительных нечетных чисел.

4. Описать функцию добавления к целому числу справа цифры со значением с.

К каждому из заданных чисел a, b, c добавить справа цифру (её значение вести с экрана) и вывести исходные числа и полученные числа.

5. Описать функцию проверки, имеет ли квадратное уравнение два вещественных различных корня.

Продемонстрировать выполнение процедуры.

6. Описать процедуру нахождения корней квадратного уравнения . Выходному параметру b присвоить значение true,если корни вещественные и false, если вещественных корней нет.

Продемонстрировать выполнение процедуры.

7. Описать функцию Quarter(x, y) целого типа, определяющую номер координатной четверти, в которой находится точка с ненулевыми вещественными координатами (x, y).

С помощью этой функции найти номера координатных четвертей для трех точек с данными ненулевыми координатами.

8. Описать функцию IsPrime(N) логического типа, возвращающую True, если целый параметр N (> 1) является простым числом, и False в противном случае (число, большее 1, называется простым, если оно не имеет положительных делителей, кроме 1 и самого себя). Дан набор из 10 целых чисел, больших 1.

С помощью функции IsPrime найти количество простых чисел в данном наборе.

9. Описать функцию DigitN(K, N) целого типа, возвращающую N -ю цифру целого положительного числа K (цифры в числе нумеруются справа налево). Если количество цифр в числе K меньше N, то функция возвращает −1. Для каждого из пяти данных целых положительных чисел K 1, K 2, …, K 5 вызвать функцию DigitN с параметром N, изменяющимся от 1 до 5.

10. Описать функцию Fact2(N) вещественного типа, вычисляющую двойной факториал:

N!! = 1·3·5·…· N, если N — нечетное; N!! = 2·4·6·…· N, если N — четное

(N > 0 — параметр целого типа; вещественное возвращаемое значение используется для того, чтобы избежать целочисленного переполнения при больших значениях N).

С помощью этой функции найти двойные факториалы пяти данных целых чисел.

11. Описать процедуру ShiftRight3(A, B, C), выполняющую правый циклический сдвиг: значение A переходит в B, значение B — в C, значение C — в A (A, B, C — вещественные параметры, являющиеся одновременно входными и выходными).

С помощью этой процедуры выполнить правый циклический сдвиг для двух данных наборов из трех чисел: (A 1, B 1, C 1) и (A 2, B 2, C 2).

12. Описать процедуру Mean(X, Y, AMean, GMean), вычисляющую среднее арифметическое AMean = (X + Y)/2 и среднее геометрическое
GMean
= (X · Y)1/2 двух положительных чисел X и Y (X и Y — входные, AMean и GMean — выходные параметры вещественного типа).

С помощью этой процедуры найти среднее арифметическое и среднее геометрическое для пар (A, B), (A, C), (A, D), если даны A, B, C, D.

13. Описать процедуру AddLeftDigit(D, K), добавляющую к целому положительному числу K слева цифру D (D — входной параметр целого типа, лежащий в диапазоне 1–9, K — параметр целого типа, являющийся одновременно входным и выходным).

С помощью этой процедуры последовательно добавить к данному числу K слева данные цифры D 1 и D 2, выводя результат каждого добавления.


Дата добавления: 2015-07-26; просмотров: 331 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Примерные контрольные даты| ВВЕДЕНИЕ

mybiblioteka.su - 2015-2024 год. (0.01 сек.)