Процедуры и функции

Содержание

Слайд 2

Вопросы к экзамену Информатика Предмет и задачи информатики. Информация. Различные определения.

Вопросы к экзамену

Информатика
Предмет и задачи информатики.
Информация. Различные определения. Количество информации.
Информационные системы.

Информационные технологии.
Системы счисления. Непозиционные и позиционные системы. Двоичная и шестнадцатеричная системы счисления. Перевод из одной системы счисления в другую.
Арифметические основы работы ЭВМ.
Логические основы работы ЭВМ. Операции отрицания, дизъюнкции, конъюнкции, эквиваленции, импликации.
Базовая аппаратная конфигурация персонального компьютера. Системный блок. Монитор. Клавиатура. Мышь. Дополнительные устройства.
Внутренние устройства персонального компьютера. Блок питания. Материнская плата. Жесткий диск. Дисковод компакт-дисков. Видеокарта (видеоадаптер). Звуковая карта.
Прерывания. Виды прерываний.
Технология Plug and Play.
BIOS. Назначение.
Операционные системы. Основные функции. Загрузка ОС.
Принципы внедрения и связывания объектов.
MS Word
Назначение MS Word. Форматы поддерживаемых файлов. Возможности программы.
Создание стиля.
Использование шаблонов.
Использование макросов.
Создание вычисляемых и отображаемых формул.
Колонтитулы и нумерация страниц.
Графические объекты. Вставка изображений в документ. Объекты WordArt.
Технология OLE.
Слайд 3

Вопросы к экзамену. Delphi Алгоритмы и блок схемы. Языки программирования. Компиляторы.

Вопросы к экзамену. Delphi

Алгоритмы и блок схемы.
Языки программирования. Компиляторы. Интерпретаторы. Уровни

языков.
Интегрированная среда Delphi.
Характеристика проекта в Delphi. Формы, модули.
Структура программы в Delphi.
Типы данных в Delphi. Простые типы: целочисленные, вещественные, логические, литерные.
Типы данных в Delphi. Массивы. Статические и динамические массивы
Типы данных в Delphi.Записи.
Типы данных в Delphi. Переменные файлового типа.
Типы данных в Delphi. Указатели.
Линейные и разветвляющиеся алгоритмы: 1) оператор if, 2) оператор case.
Операторы для организации циклов. 1) for; 2) while; 3) repeat.
Процедуры и функции. Формальные и фактические параметры. Глобальные и локальные переменные. Параметры-значения и параметры-переменные.
Функции преобразования типов.
Модули. Структура модуля.
Основные концепции объектно-ориентированного программирования. Инкапсуляция. Наследование. Полиморфизм.
Классы и объекты. Описание объектов в Delphi. Поля, свойства, методы .
События в Delphi.
Слайд 4

Procedures and functions Подпрограммой называется именованная логически законченная группа операторов языка,

Procedures and functions

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

можно вызвать для выполнения по имени любое количество раз из различных мест программы.
function < имя функции>(параметры):< тип результата>;
< раздел описаний>
begin
< раздел операторов>
end;
Function del(a,b,c:real):real; var Fun,x,y,z:real ;
Var d,e:real;
begin Begin
d:=-(c-a)*(c-a)/(2.0*b*b); x:=1; y:=2; z:=3;
e:=20.0+d; Fun:=del (x,y,z);
if e<=0.0 then del:=0.0 End;
else del:=exp(d)
end;
Слайд 5

Procedure (параметры); begin end; Глобальные - константы, типы, переменные – это

Procedure < имя процедуры>(параметры); < раздел описаний>
begin
< раздел операторов>
end;

Глобальные - константы,

типы, переменные – это те, которые объявлены в головной программе.
Локальные – это константы, типы и переменные, существующие только внутри подпрограммы и объявленные либо в списке параметров, либо в соответствующих разделах блока описаний этой подпрограммы. При совпадении имен локальной и глобальной переменной сильнее оказывается локальное имя.
Слайд 6

Function del(a,b,c:real):real; var Fun,x,y,z:real ; Var x,y:real; begin Begin x:=-(c-a)*(c-a)/(2.0*b*b); x:=1;

Function del(a,b,c:real):real; var Fun,x,y,z:real ;
Var x,y:real;
begin Begin

x:=-(c-a)*(c-a)/(2.0*b*b); x:=1; y:=2; z:=3;
y:=20.0; Fun:=del (x,y,z);
if y<=0.0 then del:=0.0 End;
else del:=exp(x)
end;

x,y,z – фактические параметры
a,b,c – формальные параметры

Слайд 7

program test; var Zn1,Zn2,Zn3,Zn4:real; procedure Sum(a,b:real; var c:real); begin c:=a+b; end;

program test;
var Zn1,Zn2,Zn3,Zn4:real;
procedure Sum(a,b:real; var c:real);
begin c:=a+b; end;
function Proiz(a,b:real):real;
begin
Proiz:=a*b;
end;
Begin

Zn1:=5; Zn2:=7;
Sum(Zn1,Zn2,Zn3);
Zn4:=Proiz(Zn1,Zn2);
end.

Zn1,Zn2,Zn3,Zn4 – глобальные переменные
a,b,c – локальные переменные
a,b,c – формальные параметры
Zn1,Zn2,Zn3 – фактические параметры.
с – параметр - значение
a,b – параметр-переменная

Слайд 8

Некоторые арифметические и математические функции

Некоторые арифметические и математические функции

Слайд 9

Функции преобразования типов

Функции преобразования типов

Слайд 10

Процедуры и функции для работы со строковыми переменными

Процедуры и функции для работы со строковыми переменными

Слайд 11

Использование справки

Использование справки

Слайд 12

Рекурсия: Вызов подпрограммы самой подпрограммой Function Fact(n:integer):integer; Begin if n>=0 then

Рекурсия:
Вызов подпрограммы самой подпрограммой

Function Fact(n:integer):integer;
Begin
if n>=0 then Fact:=1 else

Fact:=n*Fact(n-1);
End;

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

Слайд 13

Для правильного определения области действия идентификаторов (переменных) необходимо придерживаться следующих правил:

Для правильного определения области действия идентификаторов (переменных) необходимо придерживаться следующих правил:
каждая

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

Модули unit ; interface {раздел интерфейса} uses ; const ; type

Модули

unit <имя модуля>;
interface {раздел интерфейса}
uses <список модулей>;

const <список констант>;
type <описание типов>;
var <объявление переменных>;
< заголовки процедур >
< заголовки функций >
implementation {раздел реализации}
uses <список модулей>
const <список констант>
type <описание типов>
var <объявление переменных>
< описание процедур >
< описание функций >
initialization {раздел инициализации}
<операторы>
finalization {раздел деинициализации}
<операторы>
End.

Модуль содержит переменные и подпрограммы, которые могут использоваться в других модулях и подпрограммах.
Есть пользовательские и встроенные модули.
Для каждой формы приложения создается отдельный модуль.
При компиляции модуля создается файл с расширением *.DCU
В разделе interface размещаются описания идентификаторов, которые должны быть доступны всем модулям или программам, использующим данный модуль.
В разделе implementation располагается код подпрограмм, заголовки которых приведены в разделе interface . Можно указывать только названия подпрограмм, поскольку список параметров и тип результата функции указаны в разделе interface . В разделе implementation описываются типы и объявляются переменные. Которые используются только в данном модуле.
В разделе initialization располагаются инструкции, выполняемые в начале работы программы, которая подключает данный модуль, раздел finalization содержит инструкции, выполняемые при завершении программы.

Слайд 15

Модуль, исполняемый вместе с формой.

Модуль, исполняемый вместе с формой.

Слайд 16

unit KP2_1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,

unit KP2_1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,

StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var x,f,z:real;
begin
z:=StrToFloat(Edit1.Text);
x:=StrToFloat(Edit2.Text);
f:=z+z/(sqr(z)+1)-3.7e-8+exp(x+z);
Edit3.Text:=FloatToStr(f);
end;
end.
Слайд 17

Типы данных

Типы данных

Слайд 18

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

Переменные типа запись

Записи объединяют фиксированное число элементов данных других типов.

Отдельные элементы записи имеют имена и называются полями. Различают фиксированные и вариантные записи.
Фиксированная запись состоит из конечного числа полей
type <имя_типа>=record
<идентификатор_поля_1>:<тип_поля_1>;
...
<идентификатор_поля_n>:<тип_поля_n>;
end;
var <идентификатор>:<имя_типа>;
Слайд 19

Примеры записей

Примеры записей

Слайд 20

with do begin ; end; Пример: with Element do begin N:=5; KoordY:=10; KoordX:=KoordY; end;

with <переменная_типа_запись> do
begin
<операторы>;
end;
Пример: with Element do
begin
N:=5;
KoordY:=10;

KoordX:=KoordY;
end;
Слайд 21

Вариантная запись, так же как и фиксированная, имеет конечное число полей,

Вариантная запись, так же как и фиксированная, имеет конечное число полей,

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

type Elements=record N:integer case Flag:boolean of true:(usel1,usel2,usel3:integer); false:(usel1,usel2,usel3,usel4:real); end; var Element:Elements;

type Elements=record
N:integer
case Flag:boolean of
true:(usel1,usel2,usel3:integer);
false:(usel1,usel2,usel3,usel4:real);
end;
var Element:Elements;


Element.Flag:=true;
with

element do begin
usel1:=3;
usel2:=4;
usel3:=5
end;

Element.Flag:=false;
with element do begin
usel1:=3.8; usel2:=4.2;
usel3:=5.7; usel4:=5.7
end;


Element.Flag:=true;
Element.usel1:=3;
Element.usel2:=4;
Element.usel3:=5

Element.Flag:=false;
Element.usel1:=3.8; Element.usel2:=4.2;
Element.usel3:=5.7; Element.usel4:=5.7