Функции
<<  Функции Общее понятие функции  >>
Функции
Функции
Функции
Функции
Функции
Функции
Функции
Функции
Функции
Функции
Программа
Программа
Задача
Задача
Задача
Задача
Логические функции
Логические функции
Логические функции
Логические функции
Сравнение процедур и функций
Сравнение процедур и функций
Задания
Задания
Записи
Записи
Описание анкеты студента в Паскале будет выглядеть так: Type anketa
Описание анкеты студента в Паскале будет выглядеть так: Type anketa
program primer1; type anketa=record fio: string[45]; dat_r: string[8];
program primer1; type anketa=record fio: string[45]; dat_r: string[8];
Пусть нам необходимо иметь сведения о многих студентах
Пусть нам необходимо иметь сведения о многих студентах
Задача
Задача

Презентация на тему: «Функции». Автор: mari. Файл: «Функции.ppt». Размер zip-архива: 119 КБ.

Функции

содержание презентации «Функции.ppt»
СлайдТекст
1 Функции

Функции

2 Функции

Функции

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

3 Функции

Функции

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

function Max (a, b: integer): integer; begin if a > b then Max := a else Max := b; End;

Формальные параметры

Это результат функции

4 Функции

Функции

Особенности: заголовок начинается словом function формальные параметры описываются так же, как и для процедур можно использовать параметры-переменные в конце заголовка через двоеточие указывается тип результата функции располагаются ВЫШЕ основной программы

5 Функции

Функции

Особенности: можно объявлять и использовать локальные переменные значение, которое является результатом, записывается в переменную, имя которой совпадает с названием функции; объявлять ее НЕ НАДО:

6 Программа

Программа

program qq; var a, b, max: integer; begin writeln('Введите два числа'); read(a, b); max := Max ( a, b ); writeln('Наибольшее число ', max ); end.

c

function Max (a, b: integer): integer; begin ... end;

c

c

Фактические параметры

Вызов функции

7 Задача

Задача

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

8 Задача

Задача

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.

9 Логические функции

Логические функции

Задача: составить функцию, которая определяет, верно ли, что заданное число – простое. Особенности: ответ – логическое значение (True или False) результат функции можно использовать как логическую величину в условиях (if, while) Алгоритм: считаем число делителей в интервале от 2 до N-1, если оно не равно нулю – число составное.

Count := 0; for i := 2 to N-1 do if N mod i = 0 then count := count + 1; if count = 0 then { число N простое} else { число N составное }

for i := 2 to N-1 do if N mod i = 0 then count := count + 1;

10 Логические функции

Логические функции

Результат – логическое значение

function Prime (N: integer): boolean; var count, i: integer; begin i := 2; count := 0; while i*i <= N do begin if N mod i = 0 then count := count + 1; i := i + 1; end; Prime := (count = 0); end;

Условие – это логическое значение

Вызов функции

program qq; var N: integer; begin writeln('Введите целое число'); read(N); if Prime(N) then writeln(N, ' – простое число') else writeln(N, ' – составное число'); end.

11 Сравнение процедур и функций

Сравнение процедур и функций

Процедуры

Функции

1

Может иметь несколько результатов или выполнять некоторое действие

Имеет только один результат, тип которого указывается отдельно при объявлении функции.

2

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

Результат может быть только значением типа real, integer или char.

3

Команда вызова процедуры – отдельная команда, которая употребляется самостоятельно

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

4

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

12 Задания

Задания

«1»: Составить функцию, которая определяет сумму всех чисел от 1 до N и привести пример ее использования. «2»: Составить программу, которая в двумерном массиве определяет максимальный элемент в каждом столбце и записывает его в одномерный массив. Для определения максимального элемента в столбце использовать функцию, а для ввода и вывода массивов –процедуру. «3»: Составить функцию, которая определяет наибольший общий делитель двух натуральных и привести пример ее использования. Пример: Введите два числа: 14 21 НОД(14,21)=7 «4»: Написать программу, которая определяет, является ли билет «Счастливым», т.е. сумма правых трех цифр числа должна быть равна сумме левых трех цифр. (использовать функцию, считающую сумму 3 цифр в числе).

13 Записи

Записи

Запись Паскаля – структурированный комбинированный тип данных, состоящий из фиксированного числа компонент (полей) разного типа. Описание: type < имя _ типа >= record <имя_поля1>: тип; <имя_поля2>: тип; …………………. <имя_поля K >: тип end ;

Записи являются очень удобным инструментом для создания баз данных.

14 Описание анкеты студента в Паскале будет выглядеть так: Type anketa

Описание анкеты студента в Паскале будет выглядеть так: Type anketa

=record fio: string[45]; pol: char; dat_r: string[8]; adres: string[50]; curs: 1..5; grupp: string[3]; end;

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

Такая запись Паскаля, так же как и соответствующее ей дерево, называется двухуровневой.

Имя типа

Имя поля

Имя поля

15 program primer1; type anketa=record fio: string[45]; dat_r: string[8];

program primer1; type anketa=record fio: string[45]; dat_r: string[8];

adres: string[50]; curs: 1..5; grupp: string[3] end; var student: anketa;

Задача. Пусть нам необходимо заполнить сведения о студенте (Ф.И.О., дата рождения, адрес, курс и группа), а затем вывести эти сведения на экран.

Begin writeln (‘введите сведения о студенте’); writeln (‘введите фамилию, имя и отчество’); readln (student.Fio); writeln (‘введите дату рождения’); readln (student.Dat_r); writeln (‘введите адрес’); readln (student.Adres); writeln (‘введите курс’); readln (student.Curs); writeln (‘введите группу’); readln (student.Grupp); writeln (‘ввод закончен’); writeln ; writeln (‘фамилия студента: ’, student . fio ); writeln(‘ дата рождения : ’, student.Dat_r); writeln(‘ адрес : ’, student.Adres); writeln(‘ курс : ’, student.Curs); writeln(‘ группа : ’, student.Grupp); end.

Ввод каждого поля осуществляется отдельно

Вывод записи осуществляется по полям

16 Пусть нам необходимо иметь сведения о многих студентах

Пусть нам необходимо иметь сведения о многих студентах

А затем из общего списка вывести фамилии студентов 2-го курса. Следовательно, необходимо организовать массив записей Паскаля.

program primer 2 ; type anketa=record {Описание } var student: array [1..10] of anketa; I: integer;

Begin for I:=1 to 10 do begin with student[i] do begin writeln (‘введите сведения о’, I , ‘-м студенте’); writeln (‘введите фамилию, имя и отчество’); readln (fio); writeln (‘введите дату рождения’); readln (dat_r); writeln (‘введите адрес’); readln(adres); writeln (‘введите курс’); readln(curs); writeln (‘введите группу’); readln (grupp); end; writeln (‘ввод закончен’); writeln ; for I:=1 to 10 do if student[i].Curs=2 then writeln(‘ фамилия студента : ’, student[i].Fio); end.

Оператор позволяет не упоминать имя записи, а записывать только имена компонентов записи.

17 Задача

Задача

На вход программе подаются сведения о сдаче экзаменов учениками 9-ых классов в некоторой школе. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из N строк имеет следующий формат: ФАМИЛИЯ ИМЯ ОЦЕНКИ (через пробел), где ФАМИЛИЯ - строка < 20 символов, ИМЯ – строка < 15 символов, ОЦЕНКИ – через пробел три цифры. Требуется написать программу, которая будет на экран фамилии и имена трёх лучших по среднему баллу учеников. Если среди остальных есть ученики, набравшие тот же средний балл, что и один из трёх лучших, то следует вывести их фамилии и имена.

«Функции»
http://900igr.net/prezentacija/algebra/funktsii-104272.html
cсылка на страницу
Урок

Алгебра

35 тем
Слайды