Подразделения логическихопераци:Not, and, Or, Xor, shl, shr.
Основные понятия: Язык программирования, алфавит,лексемы,синтаксис,семантика. A. Языки программирования – это формальные искусственные языки служащие для написания программ. Как и естественные языки, они имеют алфавит, словарный запас, синтаксис и семантику. B. Алфавит – разрешенный к использованию набор символов, с помощью которого могут быть образованы слова и предложения языка. C. Лексемы – особые языковые конструкции (аналог словам), имеющие самостоятельный смысл. Лексемы строятся при помощи символов алфавита языка. D. Синтаксис – система правил, определяющих допустимые конструкции языка программирования. E. Семантика – система правил однозначного толкования каждой языковой конструкции. СП Delphiпредназначена для создания приложений, работающих под управлением операционной системы Windows, т.е. оконныхприложенийи создание консольных приложений Алфавит языка: Латинские буквы, арабские цифры, специальные символы, пробельные символы; Лексемы– это особые языковые конструкции, имеющие самостоятельный смысл. Основные классы лексем: зарезервированные (служебные слова), идентификаторы (имена), изображения (значения), знаки операций, разделители, комментарии, пробел. Директивы компилятора – это указания компилятору на выполнение каких либо действий. 2. Структура программы: Блок описаний Pascal-программа состоит из следующих разделов: [program<имя_программы>;] [ uses<имена_подключаемых_модулей>;] [ label<список_меток>;] [ const<имя_константы> = <значение_константы>;] [ type<имя_типа> = <определение_типа>;] [ var<имя_переменной> : <тип_переменной>;] [ procedure<имя_процедуры><описание_процедуры>] [ function<имя_функции><описание_функции>;] Блок операторов: begin {начало основного тела программы} <операторы> end. (* конец основного тела программы *) Описание каждого раздела заканчивается знаком;
|
|
Прежде чем объект будет использован, он должен быть объявлен и описан.
Данные в программах
С данными в программах связываются такие важные понятия языка, как ячейка, значение, константа, переменная.
1) Ячейка. Устаревший, но удобный термин обозначает некий контейнер в оперативной памяти, определенного объема, имеющий уникальное имя, в котором можно хранить данные (значение) определенного типа.
2) Значение – это постоянная величина или структурный комплекс постоянных величин, выраженных в явном виде. Значение не имеет имени.
Константа – это ячейка, в которой значение не изменяется во время работы программы. Всякая константа должна быть описана, т. е. либо явно указан ее тип, либо он неявно определяется по значению.
|
|
3) Переменная – это ячейка значение, в которой в любой момент времени может быть изменено программой. Всякая переменная должна быть описана, т .е. должен быть явно указан ее тип.
Концепция типа данных определяет:
диапазон (множество) возможных значений
объем занимаемой памяти и формат представления данного;
операции и функции, которые могут применяться к данным.
3. Константа- это объект, значение которого известно еще до начала работы программы, и не изменяется во время выполнения программы.
1) Обычные: числовые константы, символьные, строковые, логические, множества
2) Именованные: необходимы для оформления наглядных программ, незаменимы при использовании в тексте программы многократно повторяемых длинных значений, удобны в случае необходимости изменения этих значений сразу во всей программе. Есть имя, которое надо описать разделом const.
3) Типизированные константы:представляют собой переменные(!) с начальным значением, которое к моменту старта программы уже известно.
A. нельзя использовать для определения других констант, типов данных и переменных;.
B. можно изменять их значения в процессе работы программы
4. Переменные – это именованные данные, которые в процессе выполнения программы могут менять свое значение. Каждой переменной в памяти отводится область, длина которой зависит от типа переменной. Изменение значения переменных соответствует изменению области памяти.
|
|
5. Выражения–состоят из операндов, операции, скобок. Операнды– константы, переменные, функции участвующие в написании выражения. Выражения различаются по типу их результата.
Основное требование к записи выражений является размещение всех его элементов в одной строке (на одном уровне).
Назначение – выполнение действий по обработке данных. Подразделяются на простые и сложные.
a. Простые– не содержат в себе других операторов в качестве составных частей
b. Сложные - содержат в себе другие операторы в качестве составных частей
Оператор присваивания предназначен для изменения содержимого значения переменной или типизованной константы.
Семантика оператора присваивания:
сначала вычисляется выражение y, затем получившийся результат в виде значения записывается в переменную x.
Пример консольной программы
program Project1;// генерируется автоматически системой
{$APPTYPE CONSOLE} // директива указывающая на то, что приложение консольное
uses
SysUtils; //автоматически помещается ссылка на модуль, где описаны основные функции и типы
Const
n: integer = -10; //описана типизированная константа
var
a,b :real; // компилятор в ОЗУ выделит участки памяти для хранения значений a и b
I : integer;
begin
{$J+} //включена локальная директива позволяющая изменять типизированные конст
a:=1.25; // переменной a присваивается значение
b:=a+3.14; // считается значение выражения в правой части и присваивается b
b:= b+a;
{считается значение выражения в правой части затем старое значение переменной b стирается и записывается вновь посчитанное}
n:=1; //изменение значения типизированной константы
I:=b; // будет сгенерирована ошибка «несоответствие типов»
end.
Ввод с консоли:Ввод с клавиатуры данных в ранее описанные переменные проводится с помощью вызова стандартных процедур (SysUtils). Список ввода - это последовательность имен переменны разделенных запятыми.
|
|
Вывод на консоль: Для того чтобы вывести на экран данные пользуются вызовом процедур write(<список_вывода>) или writeln(<список_вывода>).
Система типов языка:
Порядковые типы
К порядковым типам относятся:
- простые (базовые) - целые, символьные, логические;
- конструируемые – перечислимый и ограниченный.
Особенности порядковых типов:
- представление данных порядкового типа – точное;
- каждому данному может быть сопоставлен уникальный (порядковый) номер;
- определен порядок в соответствии с нумерацией, т.е. Из двух данных можно точно сказать, которое из них меньше, а которое – больше.
8. Целыетипы:Integer, Longint, Shortint, Smallint, Int64, Byte,Word, Longword, Cardinal
Основной тип Integer
9. Символьный тип :AnsiChar, WideChar,Char Символьный тип обрабатывается всеми функциями порядкового типа в соответствии c таблицей кодировки
10. ЛОГИЧЕСКИЕ (БУЛЕВСКИЕ) ТИПЫ:Boolean, ByteBool, WordBool, LongBool
Переменные булевского типа принимают два значения 0 и 1 или что тоже false и true, т.е. используют только один бит памяти.
Логические операции:Директива {$B-}обеспечивает сокращенный режим вычисления логических выражений, т.е., если результат очевиден, вычисления прекращаются, Приоритет операций not, and, or, xor,
Подразделения логическихопераци:Not, and, Or, Xor, shl, shr.
11. Перечислимый тип: Задает упорядоченное множество значений путем перечисления имен, обозначающих эти значения, например:
Type
fam=(Ivanov, Petrov, Sidorov, Fedorov);
Var
x :fam; //переменная fam может иметь только одно из выше перечисленных значений
Begin
For x:=Ivanov toFedorovdo ….
….
End.
12. Ограниченный типы(диапазон):Создаются из порядковых типов путем наложения ограничений (первый при этом называется базовым), например:
Type
Color = (red, blue, green, black); // объявление перечислимого типа
Color1= red ..green; // объявление ограниченного типа на основе перечислимого
Digit =0 ..9; // заметим .. Две точки, а не три
Symbol = ‘a’ ..’z’;
Var
k: 1..3; k1: Digit ;
13. Вещественныетипы:real, double, real48, single, extended, comp, currency
Основной тип среди вещественныхreal . Наибольшая производительность в real, double.Типы real, doubleодинаковы для обеспечения приемственности с Pascal.
ФУНКЦИИ ВЕЩЕСТВЕННОГО ТИПА: ABS(X), ARCTAN(X), COS(X), SIN(X), EXP(X), LN(X), SQR(X), SQRT(X), PI, FRAC(X), TRUNC(x), ROUND(X), INT(x)
Если в разделе USES указать модуль MATH, то дополнительно доступны ф-ции:
Power(a,b) а в степени b
Logn(a,b) логарифм b по a и т.д.
14. Тип дата-время:Тип предназначен для хранения даты и времени одновременно. Определяется тип с помощью стандартного идентификатора TdataTime
Дата и время вводятся в виде символьной строки процедурой readln
15. ЭКВИВАЛЕНТНОСТЬ И СОВМЕСТИМОСТЬ ТИПОВ:
Два типа Т1 и Т2 являются эквивалентными (идентичными), если выполняется одно из двух условий:
-Т1 и Т2 представляют собой одно и то же имя типа;
-тип Т2 описан с использованием типа Т1 с помощью равенства или цепи равенств
Типы являются совместимыми, если:
-они эквивалентны;
-являются оба либо целыми, либо действительными;
-один тип - интервальный, другой - его базовый;
-оба интервальные с общим базовым;
Операторы языка:
16. СОСТАВНОЙ И ПУСТОЙ ОПЕРАТОРЫ:Зарезервированные слова beginend называются операторными скобками.
Составным оператором называется группа операторов заключенных в операторные скобки.
Пустой оператор не выполняет никаких действий, но может быть помечен меткой.
17. Оператор перехода:Оператор перехода goto<метка>передает управление в программе на тот оператор, который помечен меткой.
Метка – это произвольный идентификатор или целое число без знака.
18. Условный оператор IF:Условный оператор предназначен для реализации ветвящихся алгоритмов.
if<логическое выражение>then<оператор1>else< оператор2>; //полная форма
if<логическое выражение>then<оператор1>; //укороченная форма замечаем, что перед else; не ставится.
Семантика оператора:
вычисляется логическое выражение, если в результате ИСТИНА (true), то выполня-ется оператор 1, следующий после then,если ЛОЖЬ (false), выполняется оператор 2, следующий после else.
19. Оператор выбора CASE:Оператор выбора позволяет выбрать один переход из нескольких вариантов.
Синтаксис оператора:
case<выражение порядкового типа>of
<список констразделеный запятыми или диапазон >:<оператор 1>;
< список конст или диапазон >:< оператор 2 >;
……
< список конст или диапазон >:< оператор N>;
Else
< оператор >
end;
Семантика:
- вычисляется выражение, его результат – порядковый;
- полученное значение сравнивается с каждым списком, если результат
сравнения ИСТИНА, то выполняется оператор помеченный данным списком;
- сравнения с остальными не производится, управление передается
следующему после end; оператору;
- если сравнение по всем списками дает ложный результат, выполняется
оператор следующий после else;
Операторы циклов:
20. Операторы циклов: Цикл с параметром –организует выполнение оператора заранее известное число раз.
Синтаксис имеет два вида:
for<счетчик>:=<начальн значение>to<кон значение>do< оператор >;
for< счетчик >:=<начальн значение >downto< кон значение >do<оператор>;
<счетчик> – переменная порядкового типа, параметр цикла;
Семантика оператора первого вида:
- вычисляются выражения для начального и конечного значения;
- счетчику присваивается начальное значение;
- счетчик сравнивается с конечным значением, и если он меньше или равен конечного выполняется тело цикла;
- счетчик увеличивается до следующего значения;
если счетчик больше конечного значения, то выполняется следующий оператор.
21. Вложенные циклы:
- все вложенные циклы For – Do должны иметь различные счетчики (иначе это противоречило бы требованию на запрет изменения значения счетчика внутри цикла);
- нет никаких ограничений на досрочный выход из внутреннего цикла наружу;
- недопустим вход во внутренний цикл For – Do, минуя его заголовок, что соответствует общему требованию о корректном входе в цикл.
22. ЦИКЛЫ С ПРЕДУСЛОВИЕМ И ПОСТУСЛОВИЕМ: Синтаксис цикла с предусловием
While<логическое выражение>do<оператор>;
Семантика:
вычисляется значение логического выражения;
если лог выр имеет значение true, то выполняется (следующий) оператор тело цикла;
если оно имеет значение false, то выполняется следующий оператор.
Синтаксис цикла с постусловием
Repeat<оператор 1>;< оператор 2>; … < оператор n>
until<логическое выражение>;
Семантика:
выполняется группа операторов оп1,оп2 . . . опn ;
вычисляется значение логического выражения, и если оно true, то выполняется следующий после цикла оператор (цикл прекращается).
23. Оператор Break:Во всех циклах для досрочного прерывания используется оператор break; оператор continue передает управление на начало цикла.
Оператор Break может быть размещен в теле цикла. При его выполнении цикл прекращает работу и считается выполненным.
Пример.
s:= 0; i:=0; Repeat Inc (i); s:= s + z[i]; if (s > 14) then Break; Until (i = 44); | s:= 0; i:=0; Repeat Inc (i); s:= s + z[i]; if (s > 20) thenContinue; if (s > 14) thenBreak; Until (i = 44); |
Оператор ОператорContinue:Оператор Continue также может быть размещен в теле цикла. При его выполнении управление независимо от того, где он расположен, сразу передается в начало цикла для выполнения следующего шага.
24. Подпрограммы –это законченная алгоритмическая единица, которая предназ-начена для выполнения некоторого ограниченного по отношению к использующей ее программе круга операций.
Описание подпрограмм
Синтаксис описания подпрограммы таков:
Заголовок процедуры или функции:
procedure<имя_процедуры><описание_процедуры>
[ function<имя_функции><описание_функции>;]
[ uses<имена_подключаемых_модулей>;]
локальные описания:
[ const<описание локальных констант>;]
[ type<описание локальных типов>;]
[ var< описание локальных переменных>;]
[ procedure< описание локальных процедур>;]
[ function< описание локальных функций>;]
тело подпрограммы
Begin
<операторы>
End.
25. ОПИСАНИЕ ЗАГОЛОВКА ПРОЦЕДУРЫ:Синтаксис описания заголовка процедуры:
Procedure<имя процедуры> (<список формальных параметров>);
Список формальных параметров может включать:
- параметры-значения;
- параметры-переменные;
- параметры-константы;
- выходные параметры.
(параметры-значения)Используются параметры-значения для передачи входных данных.
Пример:
const n=10;
var
x,y,z:real;
procedure OutPuter(x:real); // x этопараметр-значение
Begin writeln(x); x:=1; end;
begin
read(x,y,z);
OutPuter(x+y+z); // привызовепараметр-значениезаменяетсяарифмвыражением
OutPuter(n); writeln(n); // значение n будетпопрежнему 10
end.
(параметры-переменные)Используются параметры-переменные для передачи данных и для возвращения результатов работы процедуры.
Пример,
var
x,y,z:real;
procedureSum (x,y:real; varz:real); // z это параметр-переменная
Beginz:=x+y;end;
begin
read(x,y,z);
Sum(x,y,z);
Sum(x+1,y,z);
Sum(x,y,Z+1.25); // будет выдана ошибка
Sum(x,y,1.25); // тоже будет выдана ошибка
end.
параметры- константы и выходные параметры:
В описании перед параметрами-константами ставится слово const
Используются в тех случаях, когда мы хотим быть уверены, что параметр не изменится.
Пример
procedureSum (x,y:real; varz:real); // z может изменяться в процедуре
procedureSum (x,y:real; constz:real); // z не может изменяться в процедуре
В описании перед выходными параметрами ставится слово out.
Подобен переменной, но может использоваться только для возвращения значения.
Пример.
procedure Sum (x,y:real; out z:real);
26. Функции:есть возвращение одного значения произвольного типа. Поэтому в заголовке функции указывается тип возвращаемого значения.
Function<имя функции>(<список форм парам-в>):<тип возвращ параметра>;
ГЛОБАЛЬНЫЕ И ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ:Переменные, описанные в основной программе, являются глобальными по отношению к переменным описанным в процедурах и функциях.
Переменные, описанные в процедурах и функциях, являются локальными по отношению к переменным описанным в основных программах.
Локальные переменные порождаются при каждом вхождении в процедуру и уничтожаются при выходе из нее
Дата добавления: 2018-05-12; просмотров: 210; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!