- •В.А. Лучников программирование на языке паскаль
- •Содержание
- •Программирование и алгоритмические языки в историческом аспекте
- •Введение в Паскаль
- •Алфавит Паскаля
- •Служебные (ключевые) слова
- •Константы
- •Запись чисел
- •Переменные
- •Типы данных
- •Стандартные функции
- •Выражения
- •Выражения целого типа
- •Выражения вещественного типа
- •3,61·109 X – 526,237 3.61e9 * X – 526.237 * Sqrt(0.2*y) Выражения логического типа
- •Операторы присваивания
- •Программа и этапы ее разработки. Структура программы
- •Var X, s : Word;
- •Комментарии
- •Ввод данных
- •Вывод данных
- •Бесформатный способ вывода
- •±D.DdddddddddE±dd
- •Форматный способ вывода
- •Алгоритм и его свойства
- •Схемы алгоритмов
- •Базовые структуры
- •Цепочка
- •Ветвления
- •Альтернатива
- •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 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, 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;
- •Vector : Array [1..K] Of Integer;
- •Var I, j, m, t : Integer;
- •Vector : Array [1..K] Of Integer;
- •Var I, j, b, c : Word;
- •Var I, j: Byte;
- •Множества
- •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
- •Б)Ошибки ввода-вывода
- •В)Критические ошибки
- •Г)Фатальные ошибки
Var Ozenka : Array [1..2,1..3] Of Word;
В этом случае по оператору присваивания:
Ozenka[2,1]:=3;
трудно догадаться, что у Петрова П. по математике оценка3.
Опишем этот массив, введя новые типы данных:
Type Fam = (Ivanov, Petrov);
Predm = (Math, Phis, Inf);
Var Ozenka : Array [Fam, Predm] Of 2..5;
Сейчас можно поставить Петрову П.оценку по математике следующим образом:
Ozenka[Petrov,Math]:=3;
Конечно, такое описание массива повышает наглядность программы.
При решении некоторых задач полезно использовать массивы размерностью более двух, например, трехмерные массивы. Такие массивы представляют собой объемную конструкцию типа куба. Этот куб состоит из нескольких слоев -двумерных массивов. Каждый из них имеет строки и столбцы.
Например, целочисленный массив Aразмером3слоя, по 4строки и5 столбцов в каждом слое, можно описать так:
Var a: Array [1..3, 1..4, 1..5] Of Integer;
и представить в следующем виде:

Примеры:
1.Задать элементы целочисленного вектораvectornслучайными числами, лежащими в диапазоне отvect_minдоvect_max.
Для решения этой задачи используется стандартная функция – генератор случайных чисел Random(k).При каждом обращении к этой функции она вырабатываетцелое случайное число, лежащее в диапазоне от0доk - 1.
Program Primer_1;
Uses WinCrt;
Const n = 10; задание исходных данных в виде именованных констант
vect_min = -10;
vect_max = 20;
Var i : Word; параметр цикла
Vector : Array [1..n] Of Integer; описание вектора с использованием константы n
Begin
ClrScr; очистка экрана
Randomize; запуск генератора случайных чисел
For i:=1 To n Do заполнение вектора случайными числами
Vector[i]:=Random(vect_max – vect_min + 1) + vect_min;
For i:=1 To n Do форматный вывод вектора на экран в одну строку
Write(Vector[i]:5);
WriteLn; переход на новую строку на экране
ReadLn; задержка картинки на экране до нажатия на ENTER
End.
2.Задать элементы целочисленного массиваmassivnmслучайными числами, лежащими в диапазоне отmass_minдоmass_max. Полученный массив вывести на экран построчно.
Program Primer_2;
Uses WinCrt;
Const n = 5;
m = 8;
mass_min = -50;
mass_max = 50;
Var i, j : Word; параметры циклов
Massiv : Array [1..n, 1..m] Of Integer; описание массива с использованием констант n и m
Begin
ClrScr;
Randomize; запуск генератора случайных чисел
For i:=1 To n Do заполнение массива случайными числами
For j:=1 To m Do в заданном диапазоне
Massiv[i, j]:=Random(mass_max – mass_min + 1) + mass_min;
For i:=1 To n Do форматный вывод массива на экран построчно
Begin
For j:=1 To m Do
Write(Massiv[i, j]:5);
WriteLn; переход на новую строку на экране
End;
WriteLn;
ReadLn;
End.
3.Задать элементы целочисленного массиваmassivnmв виде чисел от 1доn*m. Полученный массив вывести на экран построчно:
Program Primer_3;
Uses WinCrt;
Const n = 3;
m = 5;
