Функции в Turbo Pascal Шутилина Л.А. Lshutilina@yandex.ru.

Презентация:



Advertisements
Похожие презентации
Учитель НСШ Кумакшев А.Н, учитель БСШ2 Вахмистров Г.Г. Элективный курс по информатике «Процедуры и функции на языке Pascal».
Advertisements

Шутилина Л.А. Процедуры в Turbo Pascal ( часть 1: процедуры с параметрами)
Процедуры в Turbo Pascal Шутилина Л.А.
Что такое структурный подход в программировании? Как он реализуется в ЯП Паскаль? Что такое процедура? Кто дает название процедуре? Где записывается процедура?
© М.Е.Макарова
Подпрограммы в Паскале.
При создании программы для решения более или менее сложной задачи выполняется разделение этой задачи на подзадачи, этих подзадач – на более мелкие подзадачи.
Организация повторений в Паскале. Найди ошибки: Program new Uses crt; Var a, b, c integer Begin clrscr Readln(a,b); C:=a*a+b*b Wreteln(c); End.
Функции в Паскале Подпрограммы в Паскале. Подпрограмма - автономная часть программы, выполняющая определенный алгоритм и допускающая обращение к ней из.
Процедуры и функции Вербицкая Ольга Владимировна, Заозерная школа 16.
Подпрограмма – это самостоятельная часть программы, реализующая определенный алгоритм.
Организация повторений в Паскале. i,1,n Действие 1 Действие 2 i,1,n Действие 1 Действие 2 FOR i:=1 TO N DO BEGIN действие 1; действие 2; END; FOR i:=1.
Шутилина Л.А., A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5]
Функции. Функция- это подпрограмма, которая вычисляет и возвращает некоторое значение. Функции описываются в разделе описаний следующим образом: Function.
© М.Е.Макарова
Основные понятия языка программирования. Арифметические операции + – * / целочисленное деление – div 30 div 4 = 7 остаток от деления – mod 30 mod 4 =
Цель: Показать сходство и различие цикла с параметром в языках программирования QBasic и Turbo Pascal 7.0.
© М.Е.Макарова
ПРОЦЕДУРЫ И ФУНКЦИИ CPascal Подпрограмма – группа операторов реализующая законченный алгоритм и оформленная как самостоятельная синтаксическая единица.
Подпрограммы Процедуры Функции Дибиров Магомедшапи Дибиргаджиевич.
Транксрипт:

Функции в Turbo Pascal Шутилина Л.А.

В Паскале помимо процедур можно использовать функции. Их еще называют функции пользователя ( в отличие от стандартных функций, таких как sin, random и др.) Обращение к функции приводит к вычислению ее значения – объекта типа real, integer или char. Function Имя(параметры):тип результата; var список локальных переменных begin Команды Имя:=выражение; end; Вызов функции пользователя осуществляется так же, как и стандартных функций в Паскале, т.е. их значения могут присваиваться переменным, входить в состав выражений.

Составить программу для вычисления площади выпуклого четырехугольника, заданного длинами его сторон и диагональю. A B D C Диагональ делит четырехугольник на два треугольника, к которым применима формула Герона: Рассмотрим пример:

program Function_of_user; uses Crt; var AB,BC,CD,DA,AC,S1,S2,S:real; Function f(a,b,c:real):real; var p:real; begin p:=(a+b+c)/2; F:=Sqrt(p*(p-a)*(p-b)*(p-c)); end; begin readln (AB,BC,CD,DA,AC); S1:=f(AB,BC,AC); S2:=f(CD,DA,AC); s:=S1+S2; writeln (S:8:2); Writeln (f(AB,BC,AC)+ f(CD,DA,AC):8:2); readln; end. Вызов функции

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

ПроцедурыФункции 1Может иметь несколько результатов или выполнять некоторое действие Имеет только один результат, тип которого указывается отдельно при объявлении функции. 2Результатами могут быть значения любого типа массивы, строки, числа и т.д. Результат может быть только значением типа real, integer или char. 3Команда вызова процедуры – отдельная команда, которая употребляется самостоятельно Обращение к функции может использоваться только как компонент выражения соответствующего типа. 4В теле функции должен быть хотя бы один оператор присваивания, в левой части которого указано имя функции. Сравнение процедур и функций.

Написать программу вывода на экран компьютера таблицы тригонометрических функций sin x, cos x. tg x. Для вычисления функции tg x использовать функцию пользователя, а для вывода таблицы – процедуру. Мы с вами знаем много стандартных функций ЯП Паскаль. К ним относятся и функции sin x и cos x. А для вычисления такой распространенной функции, как тангенс, стандартной функции в Паскале нет. Поэтому мы напишем ее самостоятельно. Пример задачи 1

Program Table_of_function; uses CRT; var x, nx,kx: integer; function Tg(kx:integer):real; begin if cos(kx) 0 then Tg:=sin(kx)/cos(kx) else Tg:=-100; end; procedure output(a:integer;b,c,d:real); var i:integer; begin for i:=1 to 35 do write('_'); writeln; writeln (a:8,b:8:2,c:8:2,d:8:2); end; begin clrscr; writeln ('Zadayte diapason dlja x: nx, kx'); Readln (nx, kx); {*** zagolovok tablizy***} writeln ('x sinx cosx tgx'); for x:=nx to kx do output(x,sin(x),cos(x),tg(x)); readln; end.

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

Написать программу, которая определяет, является ли билет «Счастливым», т.е. сумма правых трех цифр числа должна быть равна сумме левых трех цифр. Для написания этой программы нам надо вспомнить операции DIV целая часть от деления и MOD остаток от деления. 20 div 7 =2 123 div 10 = mod 7 =6 123 mod 100 = 23 Пример задачи 2

Program Bilet; uses Crt; var Nomer: longint; lev,prav:integer; function summa(x:integer):integer; var i,j,k:integer; Begin i:=x div 100; j:=x div 10 mod 10; k:=x mod 10; summa:=i+j+k; end; begin clrscr; writeln ( Zadayte nomer bileta-); writeln (celoe 6-zn chislo'); readln (nomer); lev:= nomer div 1000; prav:= nomer mod 1000; if summa(lev)=summa(prav) Then writeln ('Yes) else writeln ('No'); readln; end.

Написать программу для вычисления значения функции f(0.8,a)+f(a,b)-f(2a-1,ab), где a, b действительные числа и Пример задачи 3

Program F_X_Y; uses CRT; var a,b,z: real; function f(x,y:real):real; begin f:= (sqr(x)-sqr(y))/(sqr(x)-2*x*y+sqr(y)+6); end; begin clrscr; writeln ('Zadayte a,b'); readln(a,b); z:=f(0.8,a)+f(a,b)-f(2*a-1,a*b); writeln(z:8:2); readln; end. При а=1 и в=2 ответ –0,06 При а=2, в=3 ответ –0,15

Даны отрезки a,b,c и d. Для каждой тройки этих отрезков, из которых можно построить треугольник, определить периметр этого треугольника. Использовать функцию, которая будет определять, существует ли треугольник с данными сторонами x,y,z, если да, то высчитывает его периметр, если нет, то выводит значение 0 и процедуру вывода ответов на экран ПК. Написать программу с использованием функции, которая переворачивает заданное целое 4-значное число «задом наперед». Задачи для самостоятельного решения