- •Иркутский государственный университет путей сообщения кафедра “информатика” конспект лекций по дисциплине “программирование на алгоритмическом языке высокого уровня”
- •Иркутск
- •Программирование и алгоритмические языки в историческом аспекте
- •Введение в Паскаль
- •Алфавит Паскаля
- •Служебные (ключевые) слова
- •Константы
- •Запись чисел
- •Переменные
- •Типы данных
- •Стандартные функции
- •Выражения
- •Выражения целого типа
- •Выражения вещественного типа
- •3,61·109 X – 526,237 3.61e9 * X – 526.237 * Sqrt(0.2*y) Выражения логического типа
- •Операторы присваивания
- •Программа и этапы ее разработки. Структура программы
- •Var X, s : Word;
- •Комментарии
- •Ввод данных
- •Вывод данных
- •Бесформатный способ вывода
- •±D.DdddddddddE±dd
- •Форматный способ вывода
- •Структуры данных
- •Массивы
- •Var a : Array [1..2,1..3] Of Integer;
- •Error 201: Range check error
- •Var a : tMatrix;
- •Var Doska : Array [‘a’..’h’,1..8] Of Char;
- •Var Roma : Array [1..787] Of Word;
- •Var Roma : Array [-754..33] Of Word;
- •Var Ozenka : Array [1..2,1..3] Of Word;
- •Var Ozenka : Array [Fam, Predm] Of 2..5;
- •Var a: Array [1..3, 1..4, 1..5] Of Integer;
- •Var I, j: Byte;
- •Алгоритм и его свойства
- •Схемы алгоритмов
- •Базовые структуры
- •Цепочка
- •Ветвления
- •Альтернатива
- •If (условие)
- •Вариант 2 – с использованием операции конъюнкция
- •Часто встречающиея ошибки программирования:
- •Var X, y, s_left, s_right, alfa, sin_alfa, segment : Real;
- •Переключатель
- •Var Month: 1..12;
- •Бесконечные циклы
- •Циклы с предусловием
- •Var I, s : Word;
- •Var I, s, n : Word;
- •Программа
- •Var n, min, max, s, count: Word;
- •Часто встречающиея ошибки программирования:
- •Циклы с постусловием
- •Var I, s : Word;
- •Var I, s, n : Word;
- •Программа
- •Var n,min,max,s,count: Word;
- •Var k : Word;
- •X, y, s : Real;
- •Var Month: 1..12;
- •Var n, s : Word;
- •Var I, s : Word;
- •Примеры:
- •Var I, j, k : Word;
- •Var I, i_max, vector_max : Integer;
- •Vector : Array [1..N] Of Integer;
- •Var I, s : Integer;
- •Vector : Array [1..N] Of Integer;
- •Var I, k, m : Integer;
- •Vector : Array [1..N] Of Integer;
- •Var I, s, count : Integer;
- •Vector : Array [1..N] Of Integer;
- •Var I, k, min, max, i_min, i_max : Integer;
- •Vector : Array [1..N] Of Integer;
- •Var I, k, i_otr, i_pol : Integer;
- •Vector : Array [1..N] Of Integer;
- •Var I, k, posl : Integer;
- •Vector : Array [1..N] Of Integer;
- •Var I, j, t : Integer;
- •Vector : Array [1..K] Of Integer;
- •Var I, j, t : Integer;
- •Vector : Array [1..K] Of Integer;
- •Var I, j, k : Integer;
- •Var I, j, k, posl : Integer;
- •Var I, j, k, m : Integer;
- •Var I, j, k, i_max, j_min : Word;
- •Var I, j, t : Integer;
- •V : Array [1..K] Of Integer;
- •Var I, j, m, t : Integer;
- •V : Array [1..K] Of Integer;
- •Var I, j, b, c : Word;
- •Часто встречающиея ошибки программирования:
- •Множества
- •Var r : tSymb;
- •Основные операции со множествами
- •Типизированные файлы
- •Var f_int : tFile_Int;
- •Var n : Integer;
- •Функции для работы с типизированными файлами
- •И процедуры:
- •Var n : Integer;
- •Текстовые файлы
- •Var f_text : tFile_text;
- •Программа:
- •Var stud_1 : tStudent;
- •Var student : tKadr;
- •Var coord : tCoord;
- •Ключ : ();
- •Подпрограммы
- •Подпрограммы-функции
- •Var p : Real;
- •Var s : Real;
- •Var I: Word;
- •Var a, b, c : Integer;
- •Var a, b, c : Integer;
- •Var a, b : Integer;
- •Var a, b, c: Integer;
- •Рекурсия
- •5 * 4 * Factorial(3)
- •5 * 4 * 3 * Factorial(2)
- •5 * 4 * 3 * 2 * Factorial(1)
- •Var k: Integer; Func_2
- •Var temp : Integer;
- •Особенности рекурсии:
- •Процедуры
- •Var I: Word;
- •Var I, i_min, i_max: Word;
- •Var I: Word;
- •Var I: Word;
- •Var I: Word;
- •Var I: Word;
- •Var I, j, k: Word;
- •Var I: Word;
- •Var I: Word;
- •Var I, j, k: Word;
- •Var I: Word;
- •Var I: Word;
- •Var I, j, k: Word;
- •Var I: Word;
- •Var I: Word;
- •Var I, j: Word;
- •Программные модули
- •Структура модуля
- •Interface
- •Implementation
- •Var f: Text;
- •Var p: Real;
- •Var temp: Real;
- •Компиляция модулей
- •Взаимное использование модулей
- •Ссылки и динамические переменные
- •Var a, b: tPntint;
- •X, y: tPntchar;
- •Динамические структуры данных
- •Связные списки
- •Inf: Integer;
- •Var head, q : tPoint;
- •Inf: Integer;
- •Var head, q : tPoint;
- •Добавление нового элемента в список
- •Var head, q, r: tPoint;
- •Inf: Integer;
- •Var head, q, r : tPoint;
- •Удаление элемента из списка
- •Inf: Integer;
- •Var head, q, r : tPoint;
- •Сортированные списки
- •Var head, q, r, V: tPoint;
- •Inf: Integer;
- •Var head, q, r, V : tPoint;
- •Бинарные деревья
- •Var root, q, V: tRebro;
- •Интерфейс:
- •Var root, q, V : tRebro;
- •Поиск заданного узла в дереве
- •Var root, q, V : tRebro;
- •Удаление узла из дерева
- •Var root, q, V, r : tRebro;
- •Объектно-ориентированное программирование
- •Var X, y, dx, dy: Word;
- •Var x0, y0, dx, dy: Word;
- •Var x0, y0, dx, dy, radius: Word;
- •Var x0, y0, dx, dy, radius: Word;
- •Основы алгебры логики
- •Логическая функция не (отрицание)
- •Логическая функция и (конъюнкция – логическое умножение)
- •Логическая функция или (дизъюнкция – логическое сложение)
- •Логическое следование (импликация)
- •Логическое совпадение(эквивалентность)
- •Закон исключенного третьего
- •Закон противоречия
- •Закон двойного отрицания
- •Закон контрапозиции
- •Закон расширенной контрапозиции
- •Закон перестановки посылок
- •Закон силлогизма
- •Закон де Моргана
- •Системы счисления
- •Двоичная система счисления
- •Восьмеричная система счисления
- •Шестнадцатиричная система счисления
- •Арифметические операции в двоичной системе счисления
- •1111 11 11 - Переносы
- •Арифметические операции в восьмеричной системе счисления
- •Арифметические операции в 16-ричной системе счисления
- •1. Ошибки при компиляции
- •2. Ошибки времени выполнения а) Ошибки системы ms-dos
- •Б)Ошибки ввода-вывода
- •В)Критические ошибки
- •Г)Фатальные ошибки
Введение в Паскаль
Язык программирования Паскаль, названный в честь французского философа и математикаБлеза Паскаля, был создан в начале 70-х годов швейцарским ученымНиклаусом Виртом, во-первых, с целью внедрения системного подхода к программированию, созданию прозрачных программ и применению методов автоматической проверки их целостности и, во-вторых, как средство обучения новой компьютерной культуры. Он получился строгим, логичным, достаточно легким для понимания и овладения им и сразу завоевал сердца программистов. Будучи педагогом, Н.Вирт сознательно попытался поднять саму дисциплину “программирование” от уровня простого ремесла до ранга сложной инженерной деятельности. Широкое распространение язык получил благодаря усилиям французского математикаФилиппа Кана, разработавшего в 1983 году компактный, быстродействующий и дешевый компилятор, который он назвалТурбо Паскаль. В начале 80-х годов он создал фирму по разработке программного обеспеченияBorland International, занимавшуюся первоначально распространениемТурбо Паскалядля микрокомпьютеров. В конце 80-х годов появилась уже его шестая версия, обеспечивавшая многооконный и многофайловый режимы работы, использование мыши, применение объектно-ориентированного программирования. Она обладала встроеннымассемблероми имела другие возможности. В 1992 году фирма выпустила две системы программирования на основе языка Паскаль:Turbo Pascal 7.0иBorland Pascal7.0
Они различаются некоторыми опциями (режимами работы) и библиотеками подпрограмм.
Основными особенностямиязыка Паскаль являются следующие:
это в широком смысле универсальныйязык, предназначенный как для решения традиционных задач программирования (обработка числовой и символьной информации), так и для создания, например, баз данных,
Паскаль позволяет создавать большиепрограммы, разрабатываемые коллективами программистов,
он реализует возможность декомпозициизадач на независимые подзадачи и позволяет поддерживать надежный интерфейс между ними, то есть компоновать программу из отдельных независимых компонентов. Такой подход значительно ускоряет процесс создания больших программных комплексов, повышает уровень взаимозаменяемости программных фрагментов, упрощает корректировки и повышает надежность работы программных комплексов,
он обеспечивает возможность гибкой структуризацииданных за счет использования массивов, записей, множеств, файлов, динамических структур,
язык обеспечивает механизм надежной передачи параметровв подпрограммы и их рекурсивность,
он требует соблюдения строгой дисциплиныиспользования типов данных,
в Паскале имеется возможность создания новых типов данныхв широком диапазоне – от создания синонимов для уже существующих типов данных до определения внутреннего представления объектов нового типа данных и набора операций для объектов этого типа,
в Паскале существует иерархиявыполнения операций.
Алфавит Паскаля
Любой язык имеет свой алфавит– набор символов для написания слов.
Алфавит Паскаля – это набор символов, используемых для написания программ.
Алфавит состоит из:
букв
цифр
специальных знаков.
К категории буквотносятся 26 буквлатинскогоалфавита:
a b c d e f g h i j k l m n o p q r s t u v w x y z
Паскаль не различает строчные и прописные буквы. К категории буквотносится и символ подчеркивания_.
Для написания комментариев и вывода текста может быть использована кириллица.
Ко второй категории – цифрам– относятся десятьарабскихцифр:
2 3 4 5 6 7 8 9 0
Третьей категорией – специальными знаками– являются следующие символы, расположенные на клавиатуре:
+плюс^ карат
- минус пробел (не имеет обозначения)
*звездочка#знак номера
/ дробная черта@эт
< меньше&амперсанд
>больше$знак доллара
=равно‘ апостроф
. точка
,запятая
; точка с запятой
:двоеточие
() круглые скобки
[] квадратные скобки
{}фигурные скобки