Организация данных в ЭВМ и основы программирования (1017140)
Текст из файла
Министерство образования Российской Федерации
Московская Государственная академия приборостроения и информатики
Конспект лекций по информатике
для специальностей 2102, 0718
Автор доц., к.т.н. Каширская Е.Н.
Москва, 2003
ОРГАНИЗАЦИЯ ДАННЫХ В ЭВМ И ОСНОВЫ ПРОГРАММИРОВАНИЯ
1. ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ ПАСКАЛЬ
Любая программа, выполняемая на ЭВМ, обрабатывает данные с целью получения требуемого результата. В современных языках программирования имеются базовые типы данных и средств построения структурных типов данных из базовых; они облегчают составление программ для решения сложных задач,однако не избавляют программиста от проблем разработки алгоритмов и выбора подходящей структуры данных. При разработке алгоритма выбирается некоторая удобная абстрактная структура данных и алгоритм разрабатывается в терминах операций над этим абстрактным типом данных. После разработки алгоритма выбирается представление абстрактной структуры данных с помощью структуры данных языка программирования.
1.1. Структурное программирование
В последнее время замечено, что разработка структур данных является не менее важной частью решения задачи, чем разработка алгоритма. Часто хороший выбор структур данных позволяет формулировать более простые и эффективные алгоритмы. Однако большинство языков программирования предоставляет пользователю лишь ограниченный набор структур данных: простые переменные и массивы.
Ограниченный набор структур данных во многих случаях не позволяет использовать адекватное представление абстрактных понятий, а вынуждает программиста прибегать к их моделированию, что порой приводит к неэффективной работе программиста.
Язык программирования Паскаль содержит полный набор структурных типов данных:
-
простые переменные,
-
массивы,
-
последовательные файлы,
-
множества,
-
записи,
-
записи с вариантами,
-
указатели, а также развитые средства построения из них новых типов данных.
Язык программирования Паскаль был разработан для обучения программированию как систематической дисциплине, в частности структурному программированию. Структурное программирование - способ программирования с широким использованием подпрограмм.
Усилия по повышению качества программ, эффективности труда программистов, сокращению продолжительности и трудоемкости процесса программирования сосредоточены в двух направлениях: создание научно обоснованной методологии разработки программ ручным способом и создание соответствующих автоматизированных систем программирования.
Наибольшую известность получил структурный метод программирования, базирующийся на использовании лучших элементов технологии составлении программ классными программистами и методов теории программирования. Основой метода является использование принципа модульности построения сложных программ, причем каждый программный модуль должен иметь ограниченный объем, выполнять одну функцию по обработке данных и использовать композицию только трех базовых элементов - линейной, ветвящейся и циклической структур, для описания которых разработаны специальные языковые конструкции.
Основная цель структурного программирования - создать программу с минимальными взаимосвязями между ее модулями. В ИДЕАЛЕ каждый модуль должен иметь один вход и один выход.
Опыт использования методов структурного программирования позволяет сделать следующие выводы:
1) структурное программирование упрощает процесс создания сложных программ и способствует значительному уменьшению количества ошибок в них;
2) использование модулей небольших размеров позволяет упростить и ускорить процессы их отладки;
3) при использовании структурного программирования значительно сокращается трудоемкость разработки технической документации, т.е. в качестве документации на каждый модуль используется только описание его функций;
4) структурное программирование является хорошей базой автоматизации разработки модульных программ.
Язык Паскаль сыграл большую роль в развитии методов аналитического доказательства правильности программ. Эти методы имеют фундаментальное значение в современном программировании. Это пока единственный язык, для которого созданы программные системы, позволяющие доказывать правильность программ. Так как программы, используемые на практике, являются чрезвычайно сложными и имеют тенденцию к дальнейшему усложнению, ошибки при программировании всегда будут появляться. Вместо того чтобы доверяться устаревшим методам отладки программ, лучше ориентироваться на появляющиеся системы автоматической проверки правильности программ.
Еще одно огромное достоинство языка Паскаль - это краткость языка. Созданный первоначально для обучения программированию, язык Паскаль стал очень распространенным языком.
1.2. Основные символы языка
Алфавит языка. Основными символами языка являются:
- буквы A,B,C, .....,Z - заглавные,
- буквы a,b,c, .......,z - строчные
- цифры 0,1,2, .......,9,
- знаки + - * / = < > ( ) _ “пробел”,
- спецсимволы [ ] { } . , : ; ‘ # $.
Нет различий между заглавными и строчными буквами при их использовании для определения имен переменных, процедур, функций и меток.
Максимальная длина программной строки ограничена 126 символами.
Следующие слова зарезервированы и, следовательно, не могут быть использованы иначе как служебные (они зарезервированы):
ABSOLUTE - адрес
AND - логическое умножение
ARRAY - массив
BEGIN - начать
CASE - в случае (выбор)
CONST - константа
CONSTRUCTOR - создать объект
DIV - целочисленное деление
DO - делать (в цикле)
DOWNTO - шаг в уменьшении
ELSE - иначе
END - конец
EXTERNAL - внешняя процедура
FILE - описание файла
FOR - для
FORWARD - опережающее описание
FUNCTION - функция
GOTO - идти
IF - если
IMPLEMENTATION - правило выполнения модулей
IN - в
INLINE - включение в строку
INTERFACE - связь модулей
INTERRUPT - прерывание
LABEL - метка
MOD - остаток от целочисленного деления
NIL - пустота
NOT - нет
OBJECT - переменная типа “типа”
OF - из
OR - логическое сложение
PACKET - упакованный
PROCEDURE - процедура
PROGRAM - программа
RECORD - запись
REPEAT - повторить
SET - множество
STRING - строка
THEN - тогда
TO - к
TYPE - тип
UNIT - программный модуль
UNTIL - до тех пор, пока
USES - использовать
VAR- переменная
VIRTUAL - внутренняя переменная
WILE - пока
WITH - с
XOR - икс ор
1.3. Элементы языка
Идентификатор - начинается с буквы или “_” (символа подчеркивания) и состоит из букв, цифр и “_”. Длина идентификатора ограничена длинной программной строки, т.е. 126 символами, но при этом компилятор различает только первые 63 символа. Большие и маленькие буквы не различаются.
Пример. MYVAR три различных написания
myvar одной и той же
MyVar переменной
Числа в Паскаль - программе - это константы целого или действительного типа. Целые константы представляются в десятичной или шестнадцатеричной системе счисления. Признаком шестнадцатеричной системы является предшествующий символ $. Целые константы должны принадлежать диапазону от -2147483648 до 2147483647.
Пример. -1 константы
65535 целого типа
1.234 константы
-1.45Е+27 действительного
0.9542Е-12 типа
257Е0
Строки - последовательность символов, заключенных в апострофы (в одиночные кавычки). Максимальная длина строковой константы - 255 символов.
Пример. ‘TURBO PASCAL 6.0’
‘язык программирования’
Комментарий в Паскале - любой текст, ограниченный (*.........*) или {........}. Вложенность компонентов допускается лишь двумя способами:
(* ...... {........} ........*) или {......(*........*).......}
1.4. Интегрированная среда TURBO PASCAL
Система программирования TURBO PASCAL представляет собой интегрированную среду, включающую в себя экранный редактор, компилятор, редактор связей (Linker), отладчик.
Интегрированность среды проявляется не только в единой идеологии построения компонент, но и в связи их друг с другом: при возникновении ошибки Turbo автоматически переходит в режим экранного редактирования и позиционирует курсор в точку возникновения ошибки. Аналогичные действия выполняются и отладчиком при возникновении ошибки во время выполнения программы.
1.5. Структура программы в TURBO PASCAL
Program <название> - заголовок программы
Label - описание меток
Const - описание констант
Type - описание типов
Var - описание переменных
Procedure - описание процедур
Function – описание функций
Заголовок программы выполняет чисто декоративные функции и служит для удовлетворения эстетических запросов программиста. Заголовок программы компилятором игнорируется.
Раздел “описание” состоит из пяти секций.
Описание меток. Переход по метке выполняется оператором GOTO. Все метки должны быть описаны. Метки могут быть целочисленными от 0 до 9999 или идентификаторами. Каждая описанная метка должна появиться в программе.
Пример. Label X1, Finish, 4444;
Описание констант. Общий вид:
Const идентификатор = выражение (или число).
Пример.Const Limit = 256
M = 25*16;
K = M*Limit - 1
Error = ‘Ошибка’; - символьная константа;
Err1 = Error + ‘Повторите ввод’;
При построении выражений для определения значения констант можно использовать только ранее определенные константы, соединенные знаками операций, и следующие функции:
ABS - абсолютная величина
CHR - символическая переменная типа порядковый номер
HI - старший байт (хай)
LENGTH - длина строковой переменной
LO - младший байт
ORD – порядковый номер
PRED - предыдущее значение
PTR - указатель (пойнтер)
ROUND - округление
SIZEOF - размер переменной
SUCC - следующий
SWAP - перестановка байтов
TRUNC – отбрасывание дробной части числа
Предопределенные константы:
FALSE - истина
TRUE - ложь
MAXINT = 32767
MAXLONGINT = 2147483647
BOOLEAN - логическая переменная
INTEGER - целое
LONGINT - длинное целое
Каждое определение константы вводит свой идентификатор для обозначения некоторого постоянного значения. Идентификатор, использованный для определения константы, можно употреблять при определении последующих констант.
Пример. Const L = 100;
H = -L;
В данном примере сначала определяется идентификатор константы L, который затем используется при определении константы Н.
В качестве констант в языке Паскаль разрешается использовать целые и вещественные значения, а также строки.
Пример. Const PI = 3,14;
STR = ‘-----’;
LENGHT = 80;
1.6. Определение типов
Концепция типов является одной из основных в языке Паскаль. С каждым объектом программы связывается один и только один определенный тип. Тип - это множество значений плюс множество операций, которые можно выполнить над этими значениями. Таким образом, приписывая объекту некоторый тип, мы тем самым явно определяем набор значений, которые можно присвоить этому объекту, а также операции, с помощью которых можно манипулировать объектами. Поэтому проверку выполнения требований, накладываемых типом, можно осуществлять статически, т.е. на основании только текста программы без анализа тех конкретных значений, которые задаются объекту. Например, операция сложения определена для вещественных и целых типов, но не определена для логического типа.
Если в тексте программы операция сложения употребляется для операндов логического типа, то это ошибочное использование операции. Многочисленные ошибки, связанные с некорректным использованием тех или иных значений или операций, могут быть обнаружены еще во время компиляции без выполнения программы.
В языке Паскаль говорят, что он строго типизирован. Программист должен описать все объекты, указывая их типы, и использовать объекты только в соответствии с их типами. Эта избыточность, повышающая надежность программы. При компиляции информация о типе используется для представления переменной в памяти ЭВМ и для выбора необходимых команд для выполнения операций над переменными. Например, знак + (плюс) используется в языке Паскаль для сложения целых и вещественных величин, а также для объединения множеств. Возникает многозначная интерпретация этого знака операции, ведь все три указанных действия сложения выполняются компьютером по-разному. Вместе с тем концепция типа позволяет устранить подобную неопределенность на стадии компиляции.
Типы в языке Паскаль определяются в разделе определения типов. Каждое определение типа вводит идентификатор для обозначения некоторого типа. Этот идентификатор может использоваться для определения новых, более сложных типов данных, либо для описания переменных в разделе описания переменных.
Type идентификатор = тип;
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.