- •Конспект лекций по курсу «Информатика» для студентов очной и заочной форм обучения.
- •Базовые положения
- •§.1. Физическое устройство и разумная деятельность мозга
- •§2. Самодостаточная эвм
- •2.1. Память (оперативная память)
- •2.2. Процессор
- •2.3. Программа
- •2.4. Жизненный цикл «Самодостаточной эвм»
- •§3. Язык процессора – базовый язык эвм
- •§4. Реальная эвм. Периферийные устройства
- •§5. Язык программирования. Программа транслятор
- •§6. Язык программирования Pascal
- •6.1. Базовые типы числовых информационных объектов
- •6.2. Явные константы
- •6.3. Оператор описания var
- •Var и1, и2, и3, . . . . ,Иn: Итипа;
- •6.5. Операторы консольного ввода информации
- •6.5.1. Стандартные форматы вывода числовой информации.
- •6.6. Логические переменные
- •6.7. Операторы управления программой
- •6.7.1. Условный оператор if then
- •If Условие then Оператор ;
- •6.7.2. Условный оператор выбора if then else
- •6.8. Метки операторов. Оператор безусловного перехода
- •6.9. Циклические вычисления. Операторы зацикливания
- •Организация циклических вычислений операторами if then goto
- •Программа вычисления корня по формуле Герона.
- •6.9.3. Оператор цикла for to
- •6.9.4. Оператор цикла for downto
- •6.9.5. Оператор цикла while
- •6.9.6. Программа вычисления длины дуги кривой
- •7. Массивы переменных
- •7.1. Программа нахождения экстремальных значений
- •7.2. Программа решения системы линейных алгебраических уравнений
- •8. Сортировка информации
- •8.1. Элементы формальной логики, теории множеств и операций
- •8.2. Упорядоченные структуры информационных объектов
- •8.3. Алгоритм сортировки «поплавок»
- •8.3.1. Программа сортировки массива «на месте»
- •8.3.2. Программа сортировки «индексов» массива
- •8.4. Алгоритм быстрого поиска информации в линейно упорядоченном массиве
- •8.4.1. Программа поиска в отсортированных массивах.
- •9. Символьные переменные
- •9.1.Строковые переменные
- •9.1.1. Программа написания чисел прописью
- •10. Клавиатурное управление эвм
- •§.11. Информационные объекты класса – изображение
- •11.1. Устройство функционированиемонитора
- •11.2. Процедурный язык управления графическим экраном
- •11.3. Оцифровка и масштабирование реальных изображений (чертежей) для последующего их вывода на экран
- •11.4. Пример построения фрагмента графика функции
- •11.5. Ввод и обработка информации в форме изображений
- •§12. Информационные объекты класса – подпрограммы
- •12.1. Подпрограммы типа procedure
- •12.1.1. Пример оформления подпрограммы-процедуры
- •12.2. Подпрограммы класса function
- •12.2.1.Пример оформления подпрограммы-функции
- •12.3. Процедурные языки программирования
- •12.4. Библиотечные модули Unit
- •§13. Динамическое распределение оперативной памяти эвм
- •13.1. Программа использующая динамические переменные
- •§14. Переменные типа record
- •§15. Внешняя память эвм. Работа с файлами
- •15.1. Процедурный язык обработки файлов
- •15.2.Программа “ Жизненный путь файла “
- •15.3. Текстовые файлы
- •§16. Элементы объектно-ориентированного программирования
- •Основная рекомендуемая литература.
7. Массивы переменных
Эффективность автомата-вычислителя ЭВМ проявляется только при решении задач, в которых требуется многократное повторение одних и тех же операций, проводимых над большим количеством однотипных исходных данных.
Повторение однотипных операций обработки описывается в языках программирования специальными операторами циклов. Перебор же однотипных объектов обработки легко формализуется, если эти объекты размещены в оперативной памяти упорядоченно, т.е. им присуще понятие – порядковый номер.
Опр. Конструктивный метод образования новых типов информационных объектов основан на упорядоченном объединении (плотном размещении «один за другим») некоторого количества, стандартных или ранее введенных, информационных объектов в единое целое, с наделением новообразованных структур уникальным именем.
Опр. Класс информационных объектов ARRAY (массив) образуется путем упорядоченного объединения нескольких однотипных информационных объектов в единое целое.
Определяющие структурные характеристики информационных объектов класса ARRAY:
однотипность объединяемых элементов, т.е. в единое целое могут быть объединены несколько переменных одного и того же стандартного типа (integer, real, word и т.д.) или типа, предварительно созданного самим пользователем (см. ниже),
упорядоченность объединяемых элементов, т.е. каждому элементу присущ (может быть автоматически вычислен) порядковый номер,
количество объединяемых элементов и плотность их размещения: позволяют автоматически вычислять:
необходимые размеры оперативной памяти для всего объекта,
- адрес каждого из элементов сложно структурированного объекта.
Каждый информационный объект класса ARRAY наделяется уникальным именем (идентификатором), которое является адресом первого байта первого элемента объекта.
Имена отдельных элементов, объединенных в массив, являются составными и включают: собственно имя массива и порядковый номер (индекс) элемента в этом массиве.
Математические аналоги вводимого понятия массив: последовательности, таблицы, векторы, матрицы.
Для использования переменных класса ARRAY необходимо предварительно сообщить программе-транслятору – как устроены эти информационные объекты, т.е. дать описание их структуры.
Опр. Оператор TYPE описывает структуру ново образуемых объектов и присваивает этой структуре уникальное имя (идентификатор).
Синтаксис описательного оператора TYPE для объектов класса ARRAY:
TYPE Имя1 = ARRAY[N1..N2] OF Имя2 ;
где:
TYPE - ключевое слово, за которым обязательно следует один или несколько пробелов: символов - разделителей,
Имя1 - имя (идентификатор), которым будет называться тип (структура) создаваемых программистом объектов обработки,
= служебный символ-разделитель (избыточный синтаксис языка Pascal), за которым желателен разделитель-пробел,
ARRAY- служебное слово - название класса ново образуемых переменных,
[N1..N2] – в квадратных скобках, через символы-разделители (две точки), указываются вещественные константы, задающие интервал изменения индексов, т.е. числовых имен, которые присваиваются отдельным элементам массива, общее количество элементарных объектов обработки объединяемых в единое целое равно (N2 - N1 +1),
OF – служебное слово-разделитель (избыточный синтаксис языка Pascal), за которым желательно ставить разделитель-пробел,
Имя2 - стандартное или ранее описанное имя (название) типа элементарного объекта обработки.
Примеры:
Type Tvec= array[1..4] of real;
Type Tmatr= array[0..7] of Tvec;
Звуковая транскрипция этих операторов:
назвать именем Tvec, новую структуру информационных объектов, образованную объединением в единое целое четырех информационных объектов стандартного типа REAL,
назвать именем Tmatr, новый тип объектов обработки, образованный объединением в единое целое восьми ранее описанных элементов типа Tvec.
Для описания переменных нового типа используется стандартный оператор Var.
Пример: Var PP, sss: Tmatr;
V, V1: Tvec;
Стандартный синтаксис языка Pascal включает только две операции для обработки сложно структурированных информационных объектов это:
операция пересылки, т.е. побитного копирования содержимого одной переменной в другую однотипную ей переменную, например:
PP:=sss; или v1:=v;
операция побитного сравнения (на полное совпадение) содержимого двух однотипных (одной структуры) переменных, например:
Var b: boolean; . . . . b:= PP = sss;
Все прочие содержательные операции обработки: арифметика, ввод-вывод, сравнение больше/меньше и т.д., применяются только к конкретным элементам сложно структурированных переменных.
Имя конкретного элемента массива состоит из: имени массива и индекса этого элемента, который указывается в квадратных скобках. Имена отдельных элементов массива являются вычисляемыми, т.е. значение индекса можно задавать любой целочисленной переменной или целочисленным выражением.
Примеры:
Var k: integer; a, b : real;
. . . . . . .
a:=V[2]+b; {сложить число из второго элемента массива V с числом b,
результат поместить в переменную a}
k:=1;
V[k*k]:=b; {вычислить индекс, т.е. номер элемента массива V (он будет
равен 1) и внести в соответствующий элемент массива
значение из переменной b}
V[2]:= V[k+3] + V[k]; {сложить числа, находящиеся в 4-ом и 1-ом
элементах массива V и поместить результат во
второй элемент этого же массива}