- •Работает
- •1.1. История создания эвм.
- •1.3. Размещение данных и программ в памяти пэвм.
- •1.4.Файловая система хранения информации
- •1.5.Операционная система.
- •Лекция 2. Как составляются и выполняются программы в системе delphi
- •2.1. Понятие алгоритма и способы его записи
- •2.2. Общая характеристика языка Паскаль
- •2.3. Как составляется программа в системе Delphi
- •2.4. Наша первая программа реализует линейный алгоритм
- •3.1. Данные и их типы.
- •3.2. Операции над переменными основных скалярных типов
- •Алгоритмов
- •4.1. Понятие разветвляющегося алгоритма
- •4.2. Оператор условия if
- •4.3. Оператор выбора Case
- •4.4. Некоторые возможности, предоставляемые Delphi для организации разветвлений
- •Лекция 5. Составление и програмирование циклических алгоритмов
- •5.1. Понятие цикла
- •5.2. Оператор Repeat...Until
- •5.3. Оператор While...Do
- •5.4. Оператор For...Do
- •5.5. Вложенные циклы
- •5.6. Примеры некоторых часто встречающихся циклических алгоритмов Вычисление заданного члена рекуррентной последовательности
- •Вычисления сумм с использованием рекуррентной последовательности
- •6.1. Ошибки на этапе компиляции
- •6.4. Защищенные блоки
- •6.5. Некоторые стандартные типы исключительных ситуаций
- •6.6. Инициирование собственных исключительных ситуаций
- •6.7. Примеры фрагментов программ
- •Лекция 7. Составление программ с использованием массивов
- •7.1. Понятие массива
- •7.2. Некоторые возможности ввода-вывода в Delphi
- •7.3. Примеры часто встречающихся алгоритмов работы с массивами Сумма n элементов одномерного массива:
- •Произведение диагональных элементов квадратной матрицы:
- •Нахождение максимального элемента одномерного массива:
- •8.1. Статическое и динамическое распределение оперативной памяти
- •8.2. Понятие указателя
- •8.3. Наложение переменных
- •8.4. Динамическое распределение памяти
- •8.5. Организация динамических массивов
- •9.1. Понятие подпрограммы
- •9.2. Описание подпрограмм
- •9.3. Передача данных между подпрограммой и вызывающей ее программой
- •9.4. Оформление подпрограмм в библиотечный модуль
- •9.5. Примеры подпрограмм, оформленных в отдельные библиотечные модули
- •Пример программы, использующей модуль RabMas:
- •Множества
- •10.1. Понятие множества
- •10.2. Операции над множествами
- •10.3. Примеры работы с множествами
- •Interface
- •11.1. Зачем нужны строки
- •11.2. Описание переменных строкового типа «Короткие строки»
- •11.3. Основные операции над переменными строкового типа
- •11.4. Некоторые процедуры и функции обработки строк
- •11.5. Примеры алгоритмов обработки строк
- •Лекция 12. Программирование с использованием записей
- •12.1. Понятие записи
- •12.2. Операции над записями
- •12.3. Использование записей для работы с комплексными числами
- •13.1. Понятие файла
- •13.2. Операции над файлами
- •13.2.1. Типизированные файлы
- •13.2.2. Текстовые файлы
- •13.3. Подпрограммы работы с файлами
- •13.4. Компоненты tOpenDialog и tSaveDialog
- •Лекция 14. Программирование с отображением графической информации
- •14.1. Как рисуются изображения
- •14.2. Построение графиков с помощью компонента tChart
- •Лекция 15. Программирование с использованием рекурсии
- •15.1. Понятие рекурсии
- •15.2. Примеры рекурсивных вычислений
- •16.1. Организация работы с базами данных
- •16.2. Поиск в массиве записей
- •16.3. Сортировка массивов
- •16.3.1. Метод пузырька
- •16.3.2. Метод прямого выбора
- •16.3.3. Метод Шелла
- •16.3.4. Метод Хоара (Hoare)
- •17.1. Работа со списками
- •17.2. Добавление нового элемента в список на заданную позицию
- •17.3. Удаления элемента с заданным номером
- •17.4. Пример программы
- •Лекция 18. Связанные списки на основе рекурсивных данных
- •18.1. Что такое стек и очередь
- •18.2. Понятие рекурсивных данных и однонаправленные списки
- •18.3. Процедуры для работы со стеками
- •18.4. Процедуры для работы с односвязными очередями
- •18.5. Работа с двухсвязными очередями
- •18.6. Процедуры для работы с двусвязными очередями
- •19.1. Основные понятия и определения
- •19.2. Прямые методы решения слау
- •19.3. Итерационные методы решения слау
- •20.1. Зачем нужна аппроксимация функций?
- •20.3. Какие бывают многочлены и способы интерполяции?
- •20.4. Что такое среднеквадратичная аппроксимация?
- •20.5. Метод наименьших квадратов (мнк)
- •21.1. Формулы численного дифференцирования
- •21.2. Формулы численного интегрирования
- •22.1. Как решаются нелинейные уравнения
- •22.2. Итерационные методы уточнения корней
- •22.2.2. Метод Ньютона
- •23.1. Постановка задач оптимизации, их классификация
- •23.2. Методы нахождения минимума функции одной переменной
- •24.1. Задачи для обыкновенных дифференциальных уравнений
- •24.2. Основные положения метода сеток для решения задачи Коши
- •24.3. Многошаговые схемы Адамса
- •Литература
3.2. Операции над переменными основных скалярных типов
Во-первых, следует всегда помнить, что в операторе присваивания <имя переменной>:=<выражение>;
результат выражения (арифметического, логического) должен соответствовать типу переменной а, т. е. здесь нельзя смешивать типы. Исключение составляет возможность присваивать переменной вещественного типа результат целого типа.
Арифметические выражения
Арифметические выражения строятся из числовых констант, переменных, стандартных функций и операций над ними. Для обозначения операций используются символы: + сложение, - вычитание, * умножение, и / деление.
В арифметическом выражении принят следующий приоритет операций:
вычисление значений стандартных функций;
умножение и деление;
сложение и вычитание.
Порядок выполнения операций изменяется с помощью скобок.
Стандартные функции
Отметим, что в тригонометрических функциях аргумент должен быть задан только в радианах.
Как видно из таблицы 3.3 в Pascal имеются стандартные функции для вычисления только трех тригонометрических функций. Для вычисления остальных необходимо использовать известные математические соотношения:
tg (x) = x)/ cos( x);
arcsm(х) = arctgx/(1 - x2 ));
arccos(x) = n / 2 - arcsm(х);
arcctg(x) = n / 2 - arctg (x);
Для вычисления логарифма с основанием а используется соотношение log a (x) = /п(x)/ /п(а);
Так как в Pascal отсутствует операция возведения в степень, то для вычисления выражения xy используется известное математическое соотношение:
ХУ = еУ-lnx = еХр(y . /„(x));
Но таким образом нельзя возвести в целую степень отрицательное число. Это можно сделать с использованием операторов цикла.
Над переменными целого типа определенными, например, как:
Var m, n, i, k : integer;
наряду с операцией присваивания возможны следующие целочисленные арифметические операции и логические отношения:
Табл.3.4.
Код операции |
операция |
пример |
Логические отношения | |
+ |
Сложить |
m+n |
m>n | |
- |
Отнять |
m-n |
m<n | |
* |
Умножить |
m*n |
m=n | |
Div |
Разделить |
m div n |
m>=n | |
Mod |
Остаток от деления |
m mod n |
m<=n | |
|
m<>n |
а также функции и процедуры:
Табл.3.5.
Функции |
процедуры | ||
abs(i) |
i |
Dec(i) |
i:=i-1 |
sqr(i) |
2 i |
Dec(i,k) |
i:=i-k |
odd(m) |
возвращает True,если m-нечетное и False, если четное |
Inc(i) |
i:=i+1 |
chr(n) |
возвращает символ по его коду |
Inc(i,k) |
i:=i+k |
При выполнении действий с целыми числами, если операнды имеют различные целые типы, то тип результата будет соответствовать типу, который включает в себя оба операнда. Например, при действиях с ShortInt и Word общим будет тип Integer.
Над переменными вещественного типа определенными, например, как:
Var x, y, a, b : extended;
возможны операции (+ - *) и логические отношения, те же, что и для целых. Для деления используется /. Результат операции 5/2, будет действительным, равным 2.5, в отличие от операции div. Результат следующих функций является целым числом: Round(x) - округление до ближайшего целого, Trunc(x) - усечение дробной части.
Логические выражения
Логические выражения строятся из логических констант и переменных, операций отношения и логических операций. В операциях отношения могут участвовать арифметические и логические выражения, а также символьные данные. Результатом логического выражения является значение TRUE (истина) или FALSE (ложь).
Операции отношения : < (меньше), > (больше), = (равно), <= (меньше или равно), >= (больше или равно), < > (не равно). Логические операции:
Not --> НЕ - логическое отрицание; And --> И - логическое умножение; Or --> ИЛИ - логическое сложение. Xor --> исключительное ИЛИ. В логических выражениях операции выполняются слева направо с соблюдением следующего приоритета:
Not;
*, /, Div, Mod, And, Shr, Shl ;
+, -, Or, Xor;
=, <>, <, >, <=, >=, in.
К переменным символьного типа, определенным, например, как: Var ch : char;
кроме операции присваивания, применима функция Ord^h), которая возвращает порядковый номер символа в кодовой таблице. Обратная к ней функция Сш^порядковый номер символа >) возвращает символ по его порядковому номеру. Для кодировки в Windows используется кодировка ANSI (American National Standart Institute). Функция Pred^h) возвращает символ, предшествующий символу ch в кодовой таблице. Функция Succ(ch) возвращает символ, следующий за символом ch в кодовой таблице .
В виду такой упорядоченности над символами допустимы логические операции отношения, например: ch > 'a' , 'ф' <> ch, '!' <= ch.
ЛЕКЦИЯ 4. ПРОГРАМИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ