Подразделения логическихопераци: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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!