Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ээээээ ээээээээээээээээ

.pdf
Скачиваний:
21
Добавлен:
14.05.2015
Размер:
628.39 Кб
Скачать

BASIC

dim <имя><тип элементов>(<дополнительная информация>)

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

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

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

PASCAL

<имя>:array[<дополнительная информация>] of <тип элементов>

Ввод и вывод массивов обычно происходит поэлементно.

Основные операции – это обращение по индексам для запоминания или считывания значений элементов.

В языке Pascal можно выполнять оператор присваивания с массивами и задать константу-массив.

Обобщения массива.

Существует возможность хранить и обрабатывать упорядоченные данные разного типа.

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

Взаписях требует уточнений: количество и тип полей. Как это оформляется в языке pascal показано ниже. Структурированные типы данных - запись

PASCAL <имя записи>:record

<имя поля>:<тип поля>; <имя поля>:<тип поля>;

...

end;

Вязыке BASIC нет небазовых типов, кроме массивов. Но элемент файла прямого доступа фактически является записью. Особенностью является, что все поля – строкового типа, различаются только длиной. Хранение чисел осуществляется как строки цифр.

Основной операцией при работе с записями является обращение по именам к значениям полей для запоминания или считывания.При оформлении, после имени самой записи ставится точка, затем имя поля.PASCAL <имя записи>.<имя поля>Элементы записи могут быть любого типа (кроме файлового), в том числе и массивы, и другие записи.Оформление в языке программирования PASCAL:

Пусть имеем перечислимый тип t1.

Тогда <имя типа> = set of t1; определяет множество.

* Способ образования.Элементы нового типа - группы выбранных элементов (в том числе и пустое множество) типа t1..Операции над множествами в языке PASCAL

пересечение множеств a и b

a*b

объединение множеств a и b

a+b

разность множеств a и b a-b

Для множеств возможны:

Проверка на равенство множеств a и b a=b

Проверка на неравенство множеств a и b a<>b

Проверка, является ли a подмножеством от b a<=b , b>=a

Проверка на принадлежность элемента e множеству a e in a

Все проверки дают результат логического типа.

23. Переменные (присваивание, сравнение)

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

Pencil: Real = 5; Типизированные константы инициализируются всего один раз – в начале программы.

Локальные и глобальные переменные в Turbo Pascal'e.

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

изменения, вносимые в текст процедуры и затрагивающие имена и типы переменных, потребуют соответствующих изменений в основной программе, что осложняет ее отладку Указанные трудности в Паскале устраняются благодаря ПРИНЦИПУ ЛОКАЛИЗАЦИИ, суть которого состоит в том, что вводимые

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

Имена, используемые для описания переменных, констант и других программных объектов внутри подпрограммы, называются ЛОКАЛЬНЫМИ для данной подпрограммы. Программные объекты, описанные в основной программе, называются ГЛОБАЛЬНЫМИ. Основные правила работы с глобальными и локальными именами можно сформулировать так:

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

Имена, описанные в одном блоке, могут совпадать с именами из других, как содержащих данный блок, так и вложенных в него. Это объясняется тем, что переменные, описанные в разных блоках (даже если они имеют одинаковые имена), хранятся в разных областях оперативной памяти. Имя, описанное в блоке, "закрывает" совпадающие с ним имена из блоков, содержащие данный. Это означает, что если в двух блоках, один из которых содержится внутри другого, есть переменные с одинаковыми именами, то после входа во вложенный блок работа будет идти с локальной для данного блока переменной. Пременная с тем же имнем, описанная в объемлющем блоке, становится временно недоступной и это продолжается до момента выхода из вложенного блока.

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

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

Операторы присваивания и сравнения

Обычно в качестве оператора присваивания значения объекту, переменной или константе используется знак равенства (=). Например, выражение =Now() может присваивать полю таблицы значение по умолчанию, и тогда знак равенства действует как оператор присваивания. С другой сторону, знак = представляет собой оператор сравнения, определяющий, равны ли два операнда. Оператор сравнения соотносит значения двух операндов и возвращает логические значения (True или False), соответствующие результату сравнения. Основное назначение операторов сравнения — создание условий на значение, установление критериев выборки записей в запросах, определение действий макросов и контроль выполнения программ в VBА

13. Строка. Представление а памяти ЭВМ.

Строки используются для хранения последовательностей символов. В Паскале три типа строк: стандартные

(string);определяемые программистом на основе string;строки в динамической памяти. Строка типа string может содержать до 255 символов. Под каждый символ отводится по одному байту, в котором хранится код символа. Еще один байт отводится под фактическую длину строки. Для коротких строк использовать стандартную строку неэффективно, поэтому в язык введена возможность самостоятельно задавать максимальную длину строки, например: type str4 = string [4]; Здесь описан собственный тип данных с именем str4. Переменная этого типа занимает в памяти 5 байт. Длина строки должна быть константой или константным выражением. Примеры описания строк:

const n = 15;

 

var s : string;

{ строка стандартого типа }

s1 : str4;

{ строка типа str4, описанного выше }

s2 : string [n]; { описание типа задано при описании переменной }

Инициализация строк, как и переменных других типов, выполняется в разделе описания констант: const s3 : string [15] = 'shooshpanchik' ;Операции Строки можно присваивать друг другу. Если максимальная длина результирующей строки меньше длины исходной, лишние символы справа отбрасываются: s2 := 'shooshpanchik'; s1 := s2; { в s1 будут помещены символы "shoo" } Строки можно склеивать между собой с помощью операции конкатенации, которая обозначается знаком +, например: s1 := 'ком'; s2 := s1 + 'пот'; { результат - "компот" } Строки можно сравнивать друг с другом с помощью операций отношения. При сравнении строки рассматриваются посимвольно слева направо, при этом сравниваются коды соответствующих пар символов. Строки равны, если они имеют одинаковую длину и посимвольно

эквивалентны: abc' > 'ab' abc' = 'abc' abc' < 'abc ' Имя строки может использоваться в процедурах ввода-вывода: readln (s1, s2); write (s1); При вводе в строку считывается из входного потока количество символов, равное длине строки или меньшее, если символ перевода строки (Enter) встретится раньше. При выводе под строку отводится количество позиций, равное ее фактической длине.К отдельному символу строки можно обращаться как к элементу массива символов, например, s1[4]. Символ строки совместим с типом char, их можно использовать в выражениях одновременно, например: s1[4] := 'x'; writeln (s2[3] + s2[5] + 'r'); Процедуры и функции для работы со строками Функция Concat(s1, s2, ...,

sn) возвращает строку, являющуюся слиянием строк s1, s2, ..., sn. Ее действие аналогично операции конкатенации. Функция Copy(s, start, len) возвращает подстроку длиной len, начинающуюся с позиции start строки s. Параметры len иstart должны быть целого типа. Процедура Delete(s, start, len) удаляет из строки s, начиная с позиции start, подстроку длиной len. Процедура Insert(subs, s, start) вставляет в строку s подстроку subs, начиная с позиции start. Функция Length(s) возвращает фактическую длину строки s, результат имеет тип byte. Функция Pos(subs, s) ищет вхождение подстроки subs в строку s и возвращает номер первого

символа subs в s или 0, еслиsubs не содержится в s.

Процедура Str(x, s) преобразует числовое значение x в строку s, при этом для x может быть задан формат, как в процедурах

вывода write и writeln, например, Str(x:6:2, s). Процедура Val(s, x, errcode) преобразует строку s в значение числовой переменной x, при этом строка s должна содержать символьное изображение числа. В случае успешного преобразования

переменная errcode равна нулю. Если же обнаружена ошибка, то errcode будет содержать номер позиции первого ошибочного символа, а значение не x определено.

21. Классификация программного обеспечения.Языки программирования и их классификация. Метаязыки. Парадигмы и технологии программирования. Трансляторы и их виды.

Программное обеспечение-это совокупность программ, выполненных вычислительной системой. К программному обеспечению (ПО) относится также вся область деятельности по проектированию и разработке (ПО): технология проектирования программ (нисходящее проектирование, структурное программирование и др.); методы тестирования программ; методы доказательства правильности программ; анализ качества работы программ и др.

Программное обеспечение - неотъемлемая часть ЭВМ. Оно является логическим продолжением технических средств ЭВМ, расширяющие их возможности и сферу использования.

Классификация программного обеспечения: -системное програмное обеспечение; -прикладное програмное обеспечение;- инструментарий программирования.

Существует три категории: 1) Прикладные программы, непосредственно обеспечивающие выполнение необходимых пользователям работ.2) Системные программы: управление ресурсами ЭВМ;создание копий используемой информации; проверку работоспособности устройств компьютера;выдачу справочной информации о компьютере и др.. 3) Инструментальные программные системы, облегчающие процесс создания новых программ для компьютера.

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

Языки программирования и их классификация

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

и высокого уровня.Если язык близок к естественному языку программиров ания, то он называется языком высокого уровня, если ближе к машинным командам, –