Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
прога.doc
Скачиваний:
56
Добавлен:
21.02.2016
Размер:
207.36 Кб
Скачать

1. Классификация и обзор языков программирования.

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

Классификация языков программирования: 1)Языки низкого уровня (машинно-ориентированные языки, в них входят машинные коды и язык Ассемблер) 2)Языки высокого уровня (алгоритмические языки, вместо команды ассемблера языки высокого уровня позволяют написать нормальное математическое выражение со знаком «+», например а=с-р

Каждый язык программирования предназначен для решения определенного класса задач:

Фортран - старейший язык программирования, предназначен для решения математических задач.Кобол – для решения экономических задач.Бейсик, Паскаль – для обучения Джава- язык сетевого программирования

Для системного программирования наиболее подходят языки С, С++ и Ассемблер. С и язык разработанный для написания операционной системы Юникс.

Системы программирования- это комплексы программ и прочих средств, предназначенных для разработки и эксплуатации на конкретном языке программирования для конкретного вида ЭВМ.

Система программирования включает в себя: 1)Текстовый редактор-текст программы, написанный на конкретном алгоритмическом языке. 2)Программа- отладчик- отладка исходного текста программы(поиск и устранение ошибок) 3)Транслятор – программа на машинно-ориентированном языке,существляет автоматический перевод текстов программы с входного языка на язык машины.4)Компоновщик(редактор связей) – объединяет оттранслированные модули в единые загрузочные, готовые к выполнению 5)Программа, обеспечивающая запуск программы+ библиотека подпрограмм+ Помощь

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

2. Основные синтаксические конструкции языков программирования. Типы данных.

Идентификаторы- имена объектов и конструкций программы (меток,  констант, типов, переменных, типов, процедур, функций, объектов, модулей, программ, полей в записях и т.д.).Имя может иметь любую длину, однако различимыми являются только первые 63 символа.Имя состоит из буквы, за которой могут следовать буквы, цифры или символ подчеркивания. (Имя может начинаться с символа подчеркивания, но этого не желательно делатель  т.к. с него начинаются большинство системных программ).Нельзя в качестве имен использовать ключевые слова, и стандартные имена, которые служат для обозначения некоторых констант, типов, процедур, функций, файлов и др. объектов. Эти имена распознаются компилятором без их дополнительного описания в программе.

Константа — это фиксированное значение, которое не может быть изменено программой. Константа может относиться к любому базовому типу. Способ представления константы определяется ее типом. Символьные константы заключаются в одинарные кавычки. Например, 'а' и '%' — это символьные константы. Они используются для представления символов языков, имеющих в своем алфавите много букв. Целые константы определяются как числа без дробной части. Например, 10 и -100 — это целые константы. Константы в плавающем формате записываются как числа с десятичной точкой, например, 11.123. Допускается также экспоненциальное представление чисел (в виде мантиссы и порядка): 111.23е— 1.

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

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

Типы данных: Переменные типа integerмогут быть связаны только с целыми значениями обычно в диапазоне от -32768 до 32767. В Pascal есть другие целочисленные типы.

Переменные типа realхранят вещественные (дробные) числа.

Переменная булевского(логического) типа может принимать только два значения -true(1, правда) илиfalse(0, ложь).

Символьный тип (char)может принимать значения из определенной упорядоченной последовательности символов.

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

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

Все вышеописанное – это простые типы данных. Но бывают и более сложные, структурированные, которые базируются на простых типах.

Массив– это структура, занимающая в памяти единую область и состоящая из фиксированного числа компонентов одного типа.

Строкипредставляет собой последовательность символов. Причем количество этих символов не может быть больше 255 включительно. Такое ограничение характерная черта Pascal.

Запись– это структура, состоящая из фиксированного числа компонент, называемых полями. В разных полях данные могут иметь разный тип.

Множествапредставляют собой совокупность любого числа элементов, но одного и того же перечисляемого типа.

Файлыдля Pascal представляют собой последовательности однотипных данных, которые хранятся на устройствах внешней памяти (кстати, жесткий диск – это тоже внешняя память).

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

К стандартным относятся целые, действительные, логические, символьный и адресный типы. Целый тип

Тип

Диапазон допустимых значений

Отводимая память, в байтах

shotint

-128…127

1

integer

-32 768…32 767

2

longint

-2 147 483 648…2 147 483 647

4

byte

0…255

1

word

0…65 535

2

Переменные целого типа могут принимать только целые значения. Такие переменные в программе описываются следующим образом: a, b, c: integer;

Здесь a, b, c… - имена переменных, integer – тип переменных. Транслятор, встретив такое описание переменных a, b, c, запоминает, что эти переменные могут принимать только целые значения и формирует соответственно этому команды программы.

Таблица. Операции над целыми типами, дающие в результате значение целого типа

Знак операции

Операция

+

Сложение

-

Вычитание

*

Умножение

div

Целочисленное деление (остаток отбрасывается). Деление без округления (целая часть частного).

mod

Деление по модулю (выделение остатка от деления). Остаток от деления: a mod b = a – ((a div b) * b).

Операции над операндами целого типа выполняются правильно только при условии, что результат и каждый операнд не меньше минимального (крайнего левого) и не больше максимального (крайнего правого) значений диапазона. Например, в Паскале существует константа maxint, в которой содержится максимально допустимое значение для типа integer. Тогда при выполнении операций в программе должны соблюдаться следующие условия: (a операция b) <= maxint, a <= maxint, b <= maxint.

Над целыми типами, как и многими другими, допустимы операции отношения (сравнения). Результат таких операций относится к типу boolean и может принимать одно из двух значений – либо true (истина), либо false (ложь).

Таблица. Операции отношения

Знак операции

Операция

=

Равно

<>

Не равно

>=

Больше или равно

>

Больше

<=

Меньше или равно

<

Меньше

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

Таблица. Стандартные функции Pascal, применимые к аргументам целых типов

Функция

Тип результата

Результат выполнения

abs(x)

Целый

Модуль x (абсолютная величина x)

sqr(x)

Целый

Квадрат x

succ(x)

Целый

Следующее значение x (x+1)

pred(x)

Целый

Предыдущее значение x (x-1)

random(x)

Целый

Случайное целое число из интервала 0..x-1.

sin(x)

Действительный

Синус x (угол в радианах)

cos(x)

Действительный

Косинус x (угол в радианах)

arctan(x)

Действительный

Арктангенс x (угол в радианах)

ln(x)

Действительный

Натуральный логарифм x

exp(x)

Действительный

Экспонента x

sqrt(x)

Действительный

Квадратный корень из x

odd(x)

Логический

Значение true, если x – нечетное число; false – если четное.

Функция random возвращает равномерно распределенное случайное целое число, если ей передан целый аргумент. При повторном запуске программы она возвращает те же значения. Во избежание этого следует в начале программы вызвать процедуру без параметров randomize.

Процедуры inc и dec могут иметь по одному или по два параметра целого типа. Если параметров два, то значение первого увеличивается (для inc) или уменьшается (для dec) на величину, равную значению второго параметра. Например, inc(x,2) равнозначно x+2. Если параметр один, то его значение увеличивается (для inc) или уменьшается (для dec) на единицу. Например, dec(x) равнозначно x-1.

Следующие функции принимают в качестве аргументов значения вещественного типа, а возвращают значения целого типа: trunc(x) – отбрасывание десятичных знаков после точки; round(x) – округление до целого.

Примеры работы некоторых приведенных выше операций и функций: Пример 1. Пусть a = 17, b = 5. Тогда a div b дает 3, a mod b дает 2 (остаток от деления), sqr(b) дает 25. Пример 2. Пусть x = 4.7389. Тогда trunc(x) дает 4, round(x) дает 5. Пример 3. Выражение 4 * 21 дает результат целого типа, а 4 * 21.0 – вещественного, т.к. один из сомножителей вещественный.

Вещественные типы в Pascal

Тип

Диапазон

Число цифр

Память, байт

Real

2.9e-39 … 1.7e38

11-12

6

Single

1.5e-45 … 3.4e38

7-8

4

Double

5.0e-324 ...1.7e308

15-16

8

Extended

3.4e-4932 … 1.1e493

19-20

10

Comp

-9.2e63 … (9.2e63)-1

19-20

8

Число цифр определяет точность, с которой будет храниться вещественное число. Например, для Real разрядность мантиссы может составлять не более восьми десятичных знаков. Тип Comp содержит только целые значения, которые представляются в вычислениях как вещественные.

Над действительными числами выполнимы операции сложения (+), вычитания (-), умножения (*) и деления (/). Результатом этих операций является также действительное число. Даже если хотя бы один из операндов вещественный, то результат этих операций также будет вещественным.

Операция деления (/) дает вещественный результат и в случае двух целых операндов. Например, 6 / 2 = 3.0.

Для действительных чисел допустимы такие же операции отношения (сравнения), что и для целых чисел.

Стандартная функция abs(x) – модуль x – от целого аргумента дает целый результат, а от вещественного – вещественный, как и sqr(x) – квадрат x.

Функции

sin(x) – синус x (x в радианах), cos(x) – косинус x (x в радианах), ln(x) – натуральный логарифм x, exp(x) – экспонента x, sqrt(x) – корень квадратный из x, arctan(x) – арктангенс x дают вещественный результат, как для вещественного, так и для целого аргумента.

Функция int возвращает в виде действительного значения целую часть аргумента, frac возвращает дробную часть аргумента.

Функции trunc и round возвращают результат целого типа. Первая отсекает дробную часть от аргумента, а вторая выполняет округление до ближайшего целого.

Функция random без аргументов возвращает равномерно распределенное случайное число от 0 до 1.

Не имеющая аргументов функция pi возвращает число Пифагора.

Нельзя использовать переменные и константы вещественного типа:

  • в функциях pred, succ, ord;

  • в качестве индексов массивов;

  • в операторах передачи управления в качестве меток.

Булевский тип

Переменная булевского типа принимает значения true (истина) или false (ложь). Эти величины упорядочены следующим образом: false < true

Операции and, or, not (применяемые к булевским операндам) дают булевские значения.

Операция and (логическое умножение, пересечение, операция И)Выражение a and b дает значение true, только в том случае, если a и b имеют значение true. Во всех остальных случаях значения выражения a and b – false.

true and true = true

true and false = false

false and false = false

Операция or (логическое сложение, объединение, операция ИЛИ)Выражение a or b дает значение false, только в том случае, если a и b имеют значение false. Во всех остальных случаях результат – true.

true or true = true

true or false = true

false or false = false

Операция not (отрицание, операция НЕ)Выражение not a имеет значение, противоположное значению a.

not true = false

not false = true

Стандартные булевские функцииodd(x) = true, если x нечетный (x целый); eoln(x) = true, если встретился конец строки текстового файла x; eof(x) = true, если встретился конец файла x. В остальных случаях эти функции принимают значение false.