СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до 26.06.2025

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Презентация "Процедуры и функции в языке программирования Pascal"

Категория: Информатика

Нажмите, чтобы узнать подробности

Презентация по теме "Процедуры и функции в языке программирования Pascal" может быть использована при изучении программирования на уроках информатики в 10-11 классах. Используется система программирования PascalABC.NET. Разбираются типовые задачи по применению пользовательских процедур и функций, ко всем программам прилагаются скриншоты окна вывода при тестовом запуске программы.

Просмотр содержимого документа
«Презентация "Процедуры и функции в языке программирования Pascal"»

Язык программирования Паскаль  (версия PascalABC.NET) Процедуры и функции  в языке программирования Pascal

Язык программирования Паскаль (версия PascalABC.NET)

Процедуры и функции в языке программирования Pascal

Вспомогательный алгоритм –   это алгоритм решения какой-либо подзадачи,  который может вызываться из основного алгоритма.  В программировании вспомогательные алгоритмы называют подпрограммами (процедурами) . Процедура –  подпрограмма, которая начинает выполняться после вызова её из основной программы или другой процедуры. Каждая процедура имеет уникальное имя и список входных и выходных параметров. Входные параметры – переменные, значения которых устанавливаются до начала выполнения процедуры.  Выходные параметры – переменные, значения которых устанавливаются после окончания выполнения процедуры.

Вспомогательный алгоритм – это алгоритм решения какой-либо подзадачи, который может вызываться из основного алгоритма. В программировании вспомогательные алгоритмы называют подпрограммами (процедурами) .

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

Входные параметры – переменные, значения которых устанавливаются до начала выполнения процедуры.

Выходные параметры – переменные, значения которых устанавливаются после окончания выполнения процедуры.

Описание процедуры Procedure Имя(); Begin ...  ... End; Примечание: Описания процедур располагаются перед блоком операторов основной программы. Список формальных параметров может отсутствовать. Входные параметры описываются как параметры-значения : Имя( : тип); Выходные параметры описываются как параметры-переменные : Имя( var  : тип); Вызов процедуры Имя(); Примечание: Между формальными и фактическими параметрами должно быть соответствие по количеству, порядку следования и типу.

Описание процедуры

Procedure Имя();

Begin ... ... End;

Примечание: Описания процедур располагаются перед блоком операторов основной программы. Список формальных параметров может отсутствовать.

Входные параметры описываются как параметры-значения :

Имя( : тип);

Выходные параметры описываются как параметры-переменные :

Имя( var : тип);

Вызов процедуры

Имя();

Примечание: Между формальными и фактическими параметрами должно быть соответствие по количеству, порядку следования и типу.

Например //процедура Procedure Summa(a, b: integer; var c: integer); begin  c := a + b end; //основная программа Begin . . . Summa(2, 3, S); //вызов процедуры Write(S); //напечатается число 5 . . . End. При вызове процедуры её формальные  входные параметры заменяются на фактические , по окончании выполнения процедуры значения выходных параметров передаются в основную программу.

Например

//процедура

Procedure Summa(a, b: integer; var c: integer);

begin

c := a + b

end;

//основная программа

Begin

. . .

Summa(2, 3, S); //вызов процедуры

Write(S); //напечатается число 5

. . .

End.

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

y ввод a,b,c,d,e z := y z := x BID (a, b, max) BID (max, c, max) выход BID (max, d, max) a b max c max d max e max BID (max, e, max) вывод max конец " width="640"

Задача 1а

Найти большее из пяти заданных чисел, используя вспомогательный алгоритм нахождения большего из двух чисел.

Блок-схема алгоритма решения задачи

BID (x, y, z)

начало

xy

ввод a,b,c,d,e

z := y

z := x

BID (a, b, max)

BID (max, c, max)

выход

BID (max, d, max)

a b

max c

max d

max e

max

BID (max, e, max)

вывод max

конец

y then z:=x else z:=y end ; //основной алгоритм Begin writeln ( 'Введите пять чисел:' ); readln (a, b, c, d, e); BID (a, b, max); BID (max, c, max); BID (max, d, max); BID (max, e, max); writeln ( 'Максимальное число: ' , max); End . " width="640"

Задача 1а

Найти большее из пяти заданных чисел, используя вспомогательный алгоритм нахождения большего из двух чисел.

Program BIP;

Var a, b, c, d, e, max: integer ;

//вспомогательный алгоритм (x,y – вход, z – выход)

Procedure BID (x, y: integer ; var z: integer );

begin

if xy then z:=x else z:=y

end ;

//основной алгоритм

Begin

writeln ( 'Введите пять чисел:' );

readln (a, b, c, d, e);

BID (a, b, max);

BID (max, c, max);

BID (max, d, max);

BID (max, e, max);

writeln ( 'Максимальное число: ' , max);

End .

Функции Функция –  это вспомогательный алгоритм (подпрограмма), результатом работы которого является некоторое значение. Каждая функция имеет уникальное имя и список аргументов и возвращает одно  значение-результат . Тип результата указывается в заголовке функции. Function Имя() : тип; Begin ...  ... End; Примечание: в коде функции должен быть оператор, присваивающий значение переменной, имя которой совпадает с именем функции , эту переменную не нужно объявлять. Функции можно вызывать везде, где можно использовать выражение соответствующего типа: Имя();

Функции

Функция – это вспомогательный алгоритм (подпрограмма), результатом работы которого является некоторое значение.

Каждая функция имеет уникальное имя и список аргументов и возвращает одно значение-результат . Тип результата указывается в заголовке функции.

Function Имя() : тип;

Begin ... ... End;

Примечание: в коде функции должен быть оператор, присваивающий значение переменной, имя которой совпадает с именем функции , эту переменную не нужно объявлять.

Функции можно вызывать везде, где можно использовать выражение соответствующего типа:

Имя();

Например //функция Function Summa (a, b: integer ): integer ; begin  Summa := a+b end; //основная программа Begin . . . s:=Summa( 2 , 3 ); //вызов функции в выражении Write(s); //напечатается число 5 . . . End. При вызове функции её формальные аргументы заменяются на фактические , по окончании выполнения значение функции передаётся в основную программу в место вызова.

Например

//функция

Function Summa (a, b: integer ): integer ;

begin

Summa := a+b

end;

//основная программа

Begin

. . .

s:=Summa( 2 , 3 ); //вызов функции в выражении

Write(s); //напечатается число 5

. . .

End.

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

y then BID:=x else BID:=y end ; //основная программа Begin writeln ( 'Введите пять чисел:' ); readln (a, b, c, d, e); //вызовы функции в выражении max := BID (BID (BID (BID (a, b), c), d), e); writeln ( 'Максимальное число: ' , max); End . " width="640"

Задача 1б

Найти большее из пяти заданных чисел, используя вспомогательный алгоритм нахождения большего из двух чисел .

max := (BID (BID (BID (a, b), c), d), e)

Program BIP;

Var a, b, c, d, e, max: integer ;

//функция большее из двух

Function BID (x, y: integer ): integer ;

begin

if xy then BID:=x else BID:=y

end ;

//основная программа

Begin

writeln ( 'Введите пять чисел:' ); readln (a, b, c, d, e);

//вызовы функции в выражении

max := BID (BID (BID (BID (a, b), c), d), e);

writeln ( 'Максимальное число: ' , max);

End .

Задача 2а Подсчитать количество слов в тексте, используя вспомогательный алгоритм нахождения количества пробелов в строке. Program Kol_slov; Var a: string ; p: integer ; //процедура подсчета пробелов (x – вход, k – выход) Procedure Kol_prob (x: string ; var k: integer ); var i: integer ; //локальная переменная begin k:= 0 ; for i:= 1 to length(x) do  if x[i]= ' ' then k:=k+ 1 ; end ; //основная программа Begin writeln( 'Введите текст:' ); readln(a); Kol_prob (a, p); //вызов процедуры writeln ( 'Количество слов в этом тексте ' , p+ 1 ); End .

Задача 2а

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

Program Kol_slov;

Var a: string ; p: integer ;

//процедура подсчета пробелов (x – вход, k – выход)

Procedure Kol_prob (x: string ; var k: integer );

var i: integer ; //локальная переменная

begin

k:= 0 ;

for i:= 1 to length(x) do

if x[i]= ' ' then k:=k+ 1 ;

end ;

//основная программа

Begin

writeln( 'Введите текст:' ); readln(a);

Kol_prob (a, p); //вызов процедуры

writeln ( 'Количество слов в этом тексте ' , p+ 1 );

End .

Задача 2б Подсчитать количество слов в тексте, используя вспомогательный алгоритм нахождения количества пробелов в строке. Program Kol_slov; Var a: string ; p: integer ; //функция подсчета пробелов Function Kol_prob (x: string ): integer ; var i, k: integer ; //локальные переменные begin k:= 0 ; for i:= 1 to length(x) do  if x[i]= ' ' then k:=k+ 1 ; Kol_prob:=k; //значение функции end ; //основная программа Begin writeln( 'Введите текст:' ); readln(a); p:=Kol_prob(a); //вызов функции writeln ( 'Количество слов в этом тексте ' , p+ 1 ); End .

Задача 2б

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

Program Kol_slov;

Var a: string ; p: integer ;

//функция подсчета пробелов

Function Kol_prob (x: string ): integer ;

var i, k: integer ; //локальные переменные

begin

k:= 0 ;

for i:= 1 to length(x) do

if x[i]= ' ' then k:=k+ 1 ;

Kol_prob:=k; //значение функции

end ;

//основная программа

Begin

writeln( 'Введите текст:' ); readln(a);

p:=Kol_prob(a); //вызов функции

writeln ( 'Количество слов в этом тексте ' , p+ 1 );

End .

Задача 3а Удалить все пробелы в тексте, используя вспомогательный алгоритм удаления символов в строке. Program Udal_probelov; Var a, b: string ; //x – исх. строка, y – удал. символ, z – рез. строка Procedure Del (x, y: string ; var z: string ); var i: integer ; //локальная переменная begin z:= '' ; for i:= 1 to length(x) do  if x[i]y then z:=z+x[i]; end ; //основная программа Begin writeln( 'Введите текст:' ); readln(a); Del (a, ' ' , b); //вызов процедуры writeln( 'Текст без пробелов:' ); writeln(b); End .

Задача 3а

Удалить все пробелы в тексте, используя вспомогательный алгоритм удаления символов в строке.

Program Udal_probelov;

Var a, b: string ;

//x – исх. строка, y – удал. символ, z – рез. строка

Procedure Del (x, y: string ; var z: string );

var i: integer ; //локальная переменная

begin

z:= '' ;

for i:= 1 to length(x) do

if x[i]y then z:=z+x[i];

end ;

//основная программа

Begin

writeln( 'Введите текст:' ); readln(a);

Del (a, ' ' , b); //вызов процедуры

writeln( 'Текст без пробелов:' );

writeln(b);

End .

Задача 3б Удалить все пробелы в тексте, используя вспомогательный алгоритм удаления символов в строке. Program Udal_probelov; Var a, b: string ; //x – исходная строка, y – удаляемый символ Function Del (x, y: string ): string ; var i: integer ; z: string ; //локальные переменные begin z:= '' ; for i:= 1 to length(x) do  if x[i]y then z:=z+x[i]; Del:=z; //значение функции end ; //основная программа Begin writeln( 'Введите текст:' ); readln(a); b:=Del (a, ' ' ); //вызов функции writeln( 'Текст без пробелов:' ); writeln(b); End .

Задача 3б

Удалить все пробелы в тексте, используя вспомогательный алгоритм удаления символов в строке.

Program Udal_probelov;

Var a, b: string ;

//x – исходная строка, y – удаляемый символ

Function Del (x, y: string ): string ;

var i: integer ; z: string ; //локальные переменные

begin

z:= '' ;

for i:= 1 to length(x) do

if x[i]y then z:=z+x[i];

Del:=z; //значение функции

end ;

//основная программа

Begin

writeln( 'Введите текст:' ); readln(a);

b:=Del (a, ' ' ); //вызов функции

writeln( 'Текст без пробелов:' ); writeln(b);

End .

Задача 4а Составить программу для вычисления значения выражения:   Program Stepeni; Var x, s, s1: integer ; //процедура вычисления степени как произведения Procedure St (a, b: integer ; var p: integer ); var i: integer ; //локальная переменная begin  p:= 1 ;  for i:= 1 to b do p:=p*a; end ; Begin //основная программа writeln ( 's = x^3 + x^5 + x^7' ); write ( 'Введите x: ' ); readln (x); St(x, 3 , s1); s:=s1; //вызов проц. и добавление к сумме St(x, 5 , s1); s:=s+s1; St(x, 7 , s1); s:=s+s1; writeln ( 's = ' , s); End .

Задача 4а

Составить программу для вычисления значения выражения:

 

Program Stepeni;

Var x, s, s1: integer ;

//процедура вычисления степени как произведения

Procedure St (a, b: integer ; var p: integer );

var i: integer ; //локальная переменная

begin

p:= 1 ;

for i:= 1 to b do p:=p*a;

end ;

Begin //основная программа

writeln ( 's = x^3 + x^5 + x^7' );

write ( 'Введите x: ' ); readln (x);

St(x, 3 , s1); s:=s1; //вызов проц. и добавление к сумме

St(x, 5 , s1); s:=s+s1;

St(x, 7 , s1); s:=s+s1;

writeln ( 's = ' , s);

End .

Задача 4б Составить программу для вычисления значения выражения:   Program Stepeni; Var x, s: integer ; //функция вычисления степени как произведения Function St (a, b: integer ): integer ; var i, p: integer ; //локальные переменные begin  p:= 1 ;  for i:= 1 to b do p:=p*a;  St:=p //значение функции end ; Begin //основная программа  writeln ( 's = x^3 + x^5 + x^7' );  write ( 'Введите x: ' ); readln (x);  //вызовы функции в выражении  s := St(x, 3 ) + St(x, 5 ) + St(x, 7 );  writeln ( 's = ' , s); End .

Задача 4б

Составить программу для вычисления значения выражения:

 

Program Stepeni;

Var x, s: integer ;

//функция вычисления степени как произведения

Function St (a, b: integer ): integer ;

var i, p: integer ; //локальные переменные

begin

p:= 1 ;

for i:= 1 to b do p:=p*a;

St:=p //значение функции

end ;

Begin //основная программа

writeln ( 's = x^3 + x^5 + x^7' );

write ( 'Введите x: ' ); readln (x);

//вызовы функции в выражении

s := St(x, 3 ) + St(x, 5 ) + St(x, 7 );

writeln ( 's = ' , s);

End .

Задача 5а Составить программу для вычисления периметра треугольника, заданного координатами своих вершин. Длина отрезка AB по координатам его концов: y B B(x B, y B )   y A A(x A, y A ) x B x A Процедура для вычисления длины отрезка: Procedure Dlina (x1, y1, x2, y2: real ; var dl: real ); begin  dl:=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); end ;

Задача 5а

Составить программу для вычисления периметра треугольника, заданного координатами своих вершин.

Длина отрезка AB по координатам его концов:

y B

B(x B, y B )

 

y A

A(x A, y A )

x B

x A

Процедура для вычисления длины отрезка:

Procedure Dlina (x1, y1, x2, y2: real ; var dl: real );

begin

dl:=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

end ;

Задача 5а Составить программу для вычисления периметра треугольника, заданного координатами своих вершин. Program Perimetr_Treug; Var xa, ya, xb, yb, xc, yc, d, p: real ; //процедура вычисления длины отрезка Procedure Dlina (x1, y1, x2, y2: real ; var dl: real ); begin  dl:=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); end ; Begin //основная программа writeln( 'Введите координаты вершин треугольника' ); write( 'Точка A: ' ); readln(xa, ya); write( 'Точка B: ' ); readln(xb, yb); write( 'Точка C: ' ); readln(xc, yc); Dlina(xa, ya, xb, yb, d); p:=d; Dlina(xa, ya, xc, yc, d); p:=p+d; Dlina(xc, yc, xb, yb, d); p:=p+d; writeln( 'Периметр треугольника равен' , p: 8 : 2 ); End .

Задача 5а

Составить программу для вычисления периметра треугольника, заданного координатами своих вершин.

Program Perimetr_Treug;

Var xa, ya, xb, yb, xc, yc, d, p: real ;

//процедура вычисления длины отрезка

Procedure Dlina (x1, y1, x2, y2: real ; var dl: real );

begin

dl:=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

end ;

Begin //основная программа

writeln( 'Введите координаты вершин треугольника' );

write( 'Точка A: ' ); readln(xa, ya);

write( 'Точка B: ' ); readln(xb, yb);

write( 'Точка C: ' ); readln(xc, yc);

Dlina(xa, ya, xb, yb, d); p:=d;

Dlina(xa, ya, xc, yc, d); p:=p+d;

Dlina(xc, yc, xb, yb, d); p:=p+d;

writeln( 'Периметр треугольника равен' , p: 8 : 2 );

End .

Задача 5б Составить программу для вычисления периметра треугольника, заданного координатами своих вершин. Длина отрезка AB по координатам его концов: y B B(x B, y B )   y A A(x A, y A ) x B x A Функция для вычисления длины отрезка: Function Dlina (x1, y1, x2, y2: real ): real ; begin  Dlina:=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); end ;

Задача 5б

Составить программу для вычисления периметра треугольника, заданного координатами своих вершин.

Длина отрезка AB по координатам его концов:

y B

B(x B, y B )

 

y A

A(x A, y A )

x B

x A

Функция для вычисления длины отрезка:

Function Dlina (x1, y1, x2, y2: real ): real ;

begin

Dlina:=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

end ;

Задача 5б Составить программу для вычисления периметра треугольника, заданного координатами своих вершин. Program Perimetr_Treug; Var xa, ya, xb, yb, xc, yc, p: real ; //функция вычисления длины отрезка Function Dlina (x1, y1, x2, y2: real ): real ; begin  Dlina:=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); end ; Begin //основная программа writeln( 'Введите координаты вершин треугольника' ); write( 'Точка A: ' ); readln(xa, ya); write( 'Точка B: ' ); readln(xb, yb); write( 'Точка C: ' ); readln(xc, yc); p := Dlina(xa,ya,xb,yb) + Dlina(xa,ya,xc,yc) +  Dlina(xc,yc,xb,yb); writeln( 'Периметр треугольника равен' , p: 8 : 2 ); End .

Задача 5б

Составить программу для вычисления периметра треугольника, заданного координатами своих вершин.

Program Perimetr_Treug;

Var xa, ya, xb, yb, xc, yc, p: real ;

//функция вычисления длины отрезка

Function Dlina (x1, y1, x2, y2: real ): real ;

begin

Dlina:=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

end ;

Begin //основная программа

writeln( 'Введите координаты вершин треугольника' );

write( 'Точка A: ' ); readln(xa, ya);

write( 'Точка B: ' ); readln(xb, yb);

write( 'Точка C: ' ); readln(xc, yc);

p := Dlina(xa,ya,xb,yb) + Dlina(xa,ya,xc,yc) +

Dlina(xc,yc,xb,yb);

writeln( 'Периметр треугольника равен' , p: 8 : 2 );

End .

Задача 6 Составить программу для вычисления числа сочетаний из n по k . В комбинаторике набор k элементов, выбранных из данного множества, содержащего n различных элементов, называется сочетанием из n по k . Значение этой величины вычисляется по формуле: Program Sochetanie; Var c, n, k: integer ; Function F(x: integer ): integer ; //функция факториал var i, p: integer ; //локальные переменные begin p:= 1 ; for i:= 1 to x do p:=p*i; F:=p //значение функции end ; Begin //основная программа write ( 'Введите n (не больше 12): ' ); readln (n); write ( 'Введите k (не больше 12): ' ); readln (k); C := F(n) div F(k) div F(n-k); writeln ( 'Число сочетаний из ' , n, ' по ' , k, ' равно ' , c) End .

Задача 6

Составить программу для вычисления числа сочетаний из n по k .

В комбинаторике набор k элементов, выбранных из данного множества, содержащего n различных элементов, называется сочетанием из n по k . Значение этой величины вычисляется по формуле:

Program Sochetanie;

Var c, n, k: integer ;

Function F(x: integer ): integer ; //функция факториал

var i, p: integer ; //локальные переменные

begin

p:= 1 ;

for i:= 1 to x do p:=p*i;

F:=p //значение функции

end ;

Begin //основная программа

write ( 'Введите n (не больше 12): ' ); readln (n);

write ( 'Введите k (не больше 12): ' ); readln (k);

C := F(n) div F(k) div F(n-k);

writeln ( 'Число сочетаний из ' , n, ' по ' , k, ' равно ' , c)

End .


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!