1 / 15

Подпрограммы

Подпрограммы. Использование подпрограмм позволяет: Улучшить структуру программы с точки зрения ее читаемости и наглядности; Уменьшить вероятность ошибок и облегчить процесс отладки; Сократить объем программы.

Download Presentation

Подпрограммы

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Подпрограммы • Использование подпрограмм позволяет: • Улучшить структуру программы с точки зрения ее читаемости и наглядности; • Уменьшить вероятность ошибок и облегчить процесс отладки; • Сократить объем программы. это повторяющаяся группа операторов, оформленная в виде самостоятельной программной единицы. Она записывается однократно, а в соответствующих местах программы обеспечивается лишь обращение к ней по имени. В языке Паскаль механизм подпрограмм реализован в виде ПРОЦЕДУР и ФУНКЦИЙ

  2. Процедуры Procedure <имя> [(<список формальных параметров>)]; Begin End; <описательная часть> <тело процедуры> Результат выполнения процедуры передается в основную программу через значение ее параметра. При вызове процедуры ее формальные параметры заменяются фактическими в порядке их следования. Фактические параметры – это параметры, которые передаются процедуре при обращении к ней

  3. Составить программу, которая будет находить an. а и n– целые числавводятся с клавиатуры, n>0 . Составим процедуру, которая вычисляет степень целого числа: Procedure Degree(x,y : integer; Var st : longint); Var i : integer; Begin {вычисляем XY, результат – в st} st :=1; For i :=1 to y do st :=st * x; End; ПРИМЕР

  4. Program Primer1; Var a,n : integer; s : longint; Procedure Degree(x,y : integer; Var st : longint); Var i : integer; Begin st :=1; For i :=1 to y do st :=st * x; End; Begin Writeln (‘Введите два числа ’); Readln (a,n); Degree(a,n,s); Writeln (‘Результат = ‘,s); Readln; End.

  5. x 3 a 3 n 4 s - y 4 st - i - Program Primer1; Begin … End. … Degree(a,n,s); … Procedure Degree 1,2,3,4 81 81

  6. Функции Функции предназначены для того, чтобы вычислить только одно значение. Function <имя> [(<список формальных параметров>)]:<тип результата>; Begin End; <описательная часть> <тело процедуры> <имя>:=<значение>; В теле функции обязательно должен быть хотя бы один оператор присвоения, где в левой части стоит имя функции, а в правой – ее значение. Иначе значение не будет определено.

  7. Составить программу, которая будет находить an. а,и n– целые числа (n>0) – вводятся с клавиатуры. Составим функцию, которая вычисляет степень целого числа: Function Stepen (x, y : integer): longint; Var i : integer; st : longint; Begin{вычисляем XY, результат – в st} st :=1; For i :=1 to y do st :=st * x; Stepen:=st; End; ПРИМЕР

  8. Program Primer2; Var a,n : integer; s : longint; Function Stepen (x, y : integer): longint; Var i : integer; st : longint; Begin st :=1; For i :=1 to y do st :=st * x; Stepen:=st; End; Begin Writeln (‘Введите два числа ’); Readln (a,n); s:= Stepen (a,n); Writeln (‘Результат = ‘,s); Readln; End.

  9. Дом. работа: Написать программы.1. Вычислить периметр треугольника.2. Найти число сочетаний из n по k (с использованием функции)

  10. Решение задач ЗАДАЧА: упорядочить значения трех переменных а, в и с в порядке их возрастания. Напишем процедуру: даны два целых числа. Поменять местами их значения. Чтобы поменять местами значения двух чисел, надо воспользоваться промежуточной переменной. Procedure Swep (Var x,y : integer); Var z : integer; Begin z :=x; x :=y; y :=z; End;

  11. Program Primer3; Var a,b,c : integer; Procedure Swep (Varx,y : integer); Var z : integer; Begin z :=x; x :=y; y :=z; End; Begin Writeln (‘Введите три числа ’); Readln (a,b,с); If a>b then swep (a,b); If b>c then swep (b,c); If a>b then swep (a,b); Writeln (‘Результат = ‘, a, ’ , ’, b, ’ , ’, c); Readln; End.

  12. Анализ результатов выполнения программы Чтобы проверить, верно ли работает программа, необходимо произвести проверку для чисел, например: • a b c • 1 2 3 • 3 2 • 1 3 • 3 1 • 1 2 • 3 2 1 Во всех случаях должны получить: Результат = 1, 2, 3

  13. ЗАДАЧИ • Используя процедуру SWEP()упорядочить значения трех переменных а, в и с в порядке их убывания. • Вычислить значение выражения: y = a1*x4 + a2*x3 + a3*x2 + a4*x + a5, где a1, a2, a3, a4,a5и х - это числа, вводимые с клавиатуры. • Даны координаты трех вершин треугольника. Найти периметр треугольника. Написать процедуру (функцию) определения длины стороны по формуле: L=√(x2-x1)2 + (y2-y1)2

  14. 5. Составить программу нахождения наибольшего общего делителя нескольких чисел, используя функцию нахождения НОД двух чисел. • 6. Среди чисел из интервала от А до В найти все простые. Написать процедуру (функцию) определения, является ли натуральное число, простым.

  15. e d g a f c b 7. Даны вещественные числа a, b, c, d, e, f, g.Найти площадь пятиугольника. Определить функцию для расчета площади треугольника по трем его сторонам 8. Найти площадь пятиугольника (см. рис.), вершины которого имеют координаты (x1,y1), (x2,y2), …,(x5,y5). Определить функцию для расчета площади треугольника по координатам его вершин.

More Related