- •Иркутский государственный университет путей сообщения кафедра “информатика” конспект лекций по дисциплине “программирование на алгоритмическом языке высокого уровня”
- •Иркутск
- •Программирование и алгоритмические языки в историческом аспекте
- •Введение в Паскаль
- •Алфавит Паскаля
- •Служебные (ключевые) слова
- •Константы
- •Запись чисел
- •Переменные
- •Типы данных
- •Стандартные функции
- •Выражения
- •Выражения целого типа
- •Выражения вещественного типа
- •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
- •Б)Ошибки ввода-вывода
- •В)Критические ошибки
- •Г)Фатальные ошибки
Вывод данных
Под выводом данных понимается передача информации из оперативной памяти компьютера на внешние устройства (принтер, диски).
Вывод информации в программе осуществляется операторами:
Write(x1, x2, x3, …);
WriteLn(x1, x2, x3, …);
где x1, x2, x3, … - список вывода – перечень имен переменных, значения которых выводятся.
Оператор WriteLnпосле вывода значения последней переменной списка вывода переводит курсор в начало следующей строки на экране монитора или в текстовом файле.
Вывод данных может быть осуществлен бесформатнымиформатнымспособами.
Бесформатный способ вывода
В этом случае для вывода данных различных типов компьютер автоматически отводит заранее определенное число позиций на экране:
для целыхчисел отводится столько позиций, сколько в числезначащихцифр плюс позиция для знака ”минус”: например, число+025будет выведено как25.
Таким образом, знак +при выводе не печатается, а само число занимает столько позиций на экране, сколько в нем значащих цифр,
для данных вещественноготипа отводится17позиций:
±D.DdddddddddE±dd
Позиции распределяются следующим образом:
1-я- знак числа (если число положительное, то выводится пробел),
2-я- первая значащая цифра числа,
3-я- десятичная точка,
4 - 13-я- десять цифр дробной части с округлением,
14-я - буква E,
15-я - знак показателя степени,
16 – 17-я- две цифры показателя степени.
Пример: следующие числа
3,14159265358979
-798,344
9112,0789
-0,00598×10-5
бесформатным способом будут выведены так:
3.1415926536E+00
-7.9834400000E+02
9.1120789000E+03
-5.9800000000E-08
Таким образом, вещественные числа при выводе округляются или дополняются нулями до 10 цифрпосле запятой.
Для вывода данных символьноготипа отводитсяоднапозиция,логического–пять.Строкивыводятся по количеству символов в строке.
Использовать бесформатный вывод не всегда удобно – получаются длинные и трудночитаемые числа. Поэтому для вывода целых и вещественных чисел используется форматный способ.
Форматный способ вывода
В этом случае программист сам задает форматвывода – количество позиций для вывода значения переменной.
Для целыхчисел указывается длинаполя вывода– общее количество позиций для вывода числа:
i:=-12;
WriteLn(i);
WriteLn(i:3);
WriteLn(i:7);
WriteLn(i:1);
На экран будет выведено:
-12
-12
-12
-12
Таким образом, если указанное количество позиций (длина поля вывода) большеколичества символов в числе, то перед числом выводится соответствующее количествопробелов(число прижимается к правому краю поля вывода), а еслименьше(программист ошибся) – то число выводитсябесформатнымспособом.
Для данных вещественноготипа необходимо указать как общую длину числа, включая его знак и десятичную точку, так и количество цифр в его дробной части –точность вывода:
Pi:=3.14159265358979;
WriteLn(Pi);
WriteLn(Pi:6:2);
WriteLn(Pi:7:4);
WriteLn(Pi:2:1);
WriteLn(Pi:0:2);
WriteLn(Pi:3:0);
На экран будет выведено:
3.1415926536e+00
3.14
3.1416
3.1
3.14
3
Таким образом, при некорректном задании формата вывода (вторая цифра формата больше или равна первой) определяющей для вывода числа является заданная точностьвывода.
Вывод чисел без всякой дополнительной информации называется “немым” – он некрасив и непонятен. Поэтому при выводе чисел желательно выводить и поясняющий текст, заключая его в апострофы:
WriteLn(‘Pi=’,Pi:7:4);
На экран будет выведено:
Pi=3.1416
Для отступа от левого края экрана нужно указать необходимое количество пробелов слева от выводимого значения:
WriteLn(‘ ‘:30,‘Pi=’,Pi:7:4);
На экран будет выведено:
Pi=3.1416
30 пробелов
Оператор WriteLnбез списка вывода пропускает на экране одну чистую строку.