Раздел описания типов данных

Первое поколение.

К первому поколению (англ. first-generation programming language, 1GL) относят машинные языки - языки программирования на уровне команд процессора конкретной машины. Для программирования не использовался транслятор, команды программы вводились непосредственно в машинном коде переключателями на передней панели машины. Такие языки были хороши для детального понимания функционирования конкретной машины, но сложны для изучения и решения прикладных задач.

Второе поколение.

Языки второго поколения (2GL) создавались для того, чтобы облегчить тяжёлую работу по программированию, перейдя в выражениях языка от низкоуровневых машинных понятий ближе к тому как обычно мыслит программист. Эти языки появились в 1950-е годы, в частности, такие языки как Фортран и Алгол. Наиболее важной проблемой, с которыми столкнулись разработчики языков второго поколения, стала задача убедить клиентов в том, что созданный компилятором код выполняется достаточно хорошо, чтобы оправдать отказ от программирования на ассемблере. Скептицизм по поводу возможности создания эффективных программ с помощью автоматических компиляторов был довольно распространён, поэтому разработчикам таких систем должны были продемонстрировать, что они действительно могут генерировать почти такой же эффективный код, как и при ручном кодировании, причём практически для любой исходной задачи.

Третье поколение.

Под третьим поколением (3GL) первоначально понимались все языки более высокого уровня, чем ассемблер. Главной отличительной чертой языков третьего поколения стала независимость от аппаратного обеспечения, то есть выражение алгоритма в форме, не зависящей от конкретных характеристик машины, на которой он будет исполняться. Код, написанный на языке третьего поколения, перед исполнением транслируется либо непосредственно в машинные команды, либо в код на ассемблере и затем уже ассемблируется. При компиляции, в отличие от предыдущих поколений, уже нет соответствия один-к-одному между инструкциями программы и генерируемым кодом. Стала широко использоваться интерпретация программ - при этом инструкции программы не преобразуются в машинный код, а исполняются непосредственно одна за другой. Независимость от «железа» достигается за счёт использования интерпретатора, скомпилированного под конкретную аппаратную платформу. Одним из ранних интерпретируемых языков стал Лисп.

Четвертое поколение.

Термин языки программирования четвёртого поколения (4GL) лучше представлять как среды разработки четвёртого поколения. Они относятся к временному периоду с 1970-х по начало 1990-х.

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

Пятое поколение.

Рождение языков пятого поколения произошло в середине 90-х годов. К ним относятся также системы автоматического создания прикладных программ с помощью визуальных средств разработки, без знания программирования. Основная идея была заключена в возможности автоматического формирования результирующего текста на универсальных языках программирования (который необходимо откомпилировать). Инструкции же вводятся в компьютер в максимально наглядном виде с помощью методов, наиболее удобных для человека, не знакомого с программированием.

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

Языки веб-программирования - это языки, которые в основном предназначены для работы с веб-технологиями. Языки веб-программирования можно условно разделить на две пересекающиеся группы: клиентские и серверные.

Клиентские .Как следует из названия, программы на клиентских языках обрабатываются на стороне пользователя, как правило, их выполняет браузер. Это и создает главную проблему клиентских языков - результат выполнения программы (скрипта) зависит от браузера пользователя. То есть, если пользователь запретил выполнять клиентские программы, то они исполняться не будут, как бы ни желал этого программист. Кроме того, может произойти такое, что в разных браузерах или в разных версиях одного и того же браузера один и тот же скрипт будет выполняться по-разному. С другой стороны, если программист возлагает надежды на серверные программы, то он может упростить их работу и снизить нагрузку на сервер за счет программ, исполняемых на стороне клиента, поскольку они не всегда требуют перезагрузку (генерацию) страницы.

Серверные.Когда пользователь дает запрос на какую-либо страницу (переходит на неё по ссылке или вводит адрес в адресной строке своего браузера), то вызванная страница сначала обрабатывается на сервере, то есть выполняются все программы, связанные со страницей, и только потом возвращается к посетителю по сети в виде файла. Этот файл может иметь расширения: HTML, PHP, ASP, ASPX, Perl, SSI, XML, DHTML, XHTML.

Работа программ уже полностью зависима от сервера, на котором расположен сайт, и от того, какая версия того или иного языка поддерживается. К серверным языкам программирования можно отнести: PHP, Perl, Python, Ruby, любой .NET язык программирования (технология ASP.NET), Java, Groovy.

Важной стороной работы серверных языков является возможность организации непосредственного взаимодействия с системой управления базами данных (или СУБД) - сервером, на котором упорядоченно хранится информация, которая может быть вызвана в любой момент.

№3 Алгоритм и его свойства. Алгоритмы линейной структуры Алгоритмы циклической структуры.

Алгоритм- это строгая последовательность действий, направленная на решение поставленной задачи.

Свойства алгоритма:

· Конечность(результативность) алгоритма означает, что за конечное число шагов должен быть получен результат;

· Дискретность алгоритма означает, что алгоритм должен быть разбит на последовательность выполняемых шагов;

· Понятностьалгоритма означает, что алгоритм должен содержать только те команды, которые входят в набор команд, который может выполнить конкретный исполнитель;

· Точность алгоритма означает, что каждая команда должна пониматься однозначно;

· Массовость алгоритма означает, что однажды составленный алгоритм должен для решения подобных задач с разными исходными данными.

· Детерминированность (определенность). Алгоритм обладает свойством детерминированности, если для одних и тех же наборов исходных данных он будет выдавать один и тот же результат, т.е. результат однозначно определяется исходными данными.

Линейные – все действия выполняются от начала и до конца ,не зависящие от каких-либо условий.

Циклические: цикл с параметром; цикл с предусловием(работает по истинности); цикл с постусловием(работает по ложности). Используется ,когда необходимо выполнить одно и то же действие многократно.

№ 4 Алгоритмы разветвляющейся структуры. Алгоритмы сложной структуры.

Алгоритмы сложной структуры- сочетание видов алгоритмов в одном алгоритме ( есть и линейный ,и циклический, и разветвляющийся).

Разветвляющая структура.

№5 Общие сведения о языке паскаль. Основные элементы программирования. Алфавит языка паскаль. Слова в паскале. Идентификаторы. Константы и переменные. Стандартные функции.

Язык программирования Паскаль (назван в честь французского учёного Блеза Паскаля), разработан в 1968-1971 годах Никлаусом Виртом для обучения программированию, но вскоре стал использоваться для разработки программных средств в профессиональном программировании.

Для повышения качества и скорости разработки программ в середине 80-х годов была создана система программирования Turbo Pascal. Слово Turbo – это отражение торговой марки фирмы-разработчика Borland International Inc. (США).

Систему программирования Турбо Паскаль называют интегрированной средой программирования, так как она объединяет в себе средства, используемые при разработке программ: редактор текстов, компилятор, компоновщик, отладчик.

Перевод программы с языка программирования на язык машинных кодов называется трансляцией, а выполняется специальными программами – трансляторами.

Существует три вида трансляторов: интерпретаторы, компиляторы и ассемблеры.

Интерпретатор – это транслятор, производящий пооператорную (покомандную) обработку и выполнение программы.

Компилятор преобразует (транслирует) всю программу в модуль на машинном языке, после этого программа записывается в память компьютера и лишь потом исполняется. Ассемблеры переводят программу, записанную на языке ассемблера, в программу на машинном языке.

Алфавит и словарь языка Паскаль

Для написания программ можно использовать:

Прописные строчные буквы латинского алфавита.

Цифры от 0 до 9.

Шестнадцатеричные цифры (строятся из десятичных цифр от 0 до 9 и латинских букв от A(a) до F(f)).

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

Слова, используемые в Паскале, можно разделить на три группы: зарезервированные слова, стандартные идентификаторы и идентификаторы пользователя.

Идентификатор – имя, используемое для обозначения программ, а в программе переменных и постоянных величин, различных процедур, функций, объектов (identification – установление соответствия объекта некоторому набору символов).

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

Стандартные идентификаторы используются для обозначения заранее определенных разработчиками языка типов данных, констант, процедур и функций. Пример: integer, cos, sin, sqrt, read, write и т.д.

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

Const <имя константы>=<значение константы> ;

(раздел описания констант)

Var

<имя переменной1, имя переменной2, … >: <Тип1 переменных>;

<имя переменной1, имя переменной2, … >: <Тип2 переменных>;

(раздел описания переменных, этот раздел необязателен в случае, если программа не использует никаких переменных)

Begin (начало программы)

<тело программы> (последовательность команд (операторов), разделенных знаком “;”)

End. (конец программы)

Арифметические функции:

· Abs(x), где аргумент и результат являются переменными целого или вещественного типа - вычисляет модуль (абсолютную величину) числа х;

· Cos(x), где аргумент и результат являются переменными вещественного типа - вычисляет косинус х;

· Sin(x), где аргумент и результат являются переменными вещественного типа - вычисляет синус х;

· Frac(x), где аргумент и результат являются переменными вещественного типа - выделяет дробную часть числа х;

· Int(x), где аргумент и результат являются переменными вещественного типа - выделяет целую часть числа х;

· Pi, где результат является переменной вещественного типа - вычисляет значение π;

· Random(x), где аргумент и результат являются переменными целого типа - генерирует случайное число в пределах от 0 до х включительно. Если параметр х не задан, то формируется вещественное число от 0 до 1. Перед использованием данной функции нужно инициализировать генератор случайных чисел при помощи процедуры Randomize (см. ниже);

· Sqr(x), где аргумент и результат являются переменными целого или вещественного типа - вычисляет x2;

· Sqrt(x), где аргумент и результат являются переменными целого или вещественного типа - вычисляет √x.

· Х^nà exp(n*ln(x))

· Chrвозвращает символ по его коду

Div– (деление нацело) ,возвращает целое частное 2-х чисел.

Mod – возвращает целый остаток от деления 2-х чисел.

№6 Общая структура программы. Раздел USES. Раздел описания типов TYPE. Раздел описания переменных VAR. Основной блок программы. Комментарии.

Общая структура программы:

PROGRAM имя программы;

(английскими буквами, одно слово. Хотите глубже? То необходимо воспользоваться правилами написания идентификаторов )

USES подключаемые библиотеки (модули);

(дополнительные возможности, их можно подключать к программе в этой строке)

LABEL список меток;

(из одного места программы «прыгать» в другое)

CONSTраздел описания констант;

(постоянные величины, их нельзя изменять)

TYPE описание типов переменных; (тайп)

VARопределение глобальных переменных;

(описание всех переменных величин, которые в программе могут изменяться)

ОПРЕДЕЛЕНИЕ ПРОЦЕДУР;

ОПРЕДЕЛЕНИЕ ФУНКЦИЙ;

BEGIN

основной блок программы

END.

Раздел USES

Ключевое слово USES указывает программе, что необходимо подключить дополнительный внешний модуль (файл с описанием и определение различных функций) .

Crt является одним из стандартных модулей. В нем описаны и определены функции для работы с текстовой информацией на дисплее (изменение цвета текста, управление курсором и др.).

Аббревиатура CRT будет расшифровываться по-русски как «электронно-лучевая

трубка».

Раздел описания типов данных

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

Формат:

type <имя типа> = <значения типа>:

Пример:

type

LatLetter = ('A'..'z');

Days = 1..31:

Matr = аггау[1..10] of integer;

Каждое описание задает множество значений и связывает с этим множеством некоторое имя типа. Например, в данном описании тип LatLetter определяет множество букв латинского алфавита, Days – множество целых чисел от 1 до 31, Matr – массив из 10 целых чисел.