- •А.В. Кравцов, н.В. Чеканцев, е.С. Шарова, м.С. Гынгазова, ю.А. Смышляева, э.Д. Иванчина Проблемно-ориентированная информатика химико-технологических процессов
- •Введение
- •1. Общая характеристика языков программирования
- •2. Основы программирования на языке turbo pascal
- •2.1. Оператор присваивания
- •2.2. Программирование линейных алгоритмов
- •2.3. Программирование разветвляющихся алгоритмов. Условный оператор
- •2.4. Оператор варианта
- •2.5. Программирование циклических алгоритмов
- •2.6. Одномерные массивы
- •2.7. Матрицы
- •2.8. Файлы
- •3. Технология программирования и модули
- •3.1. Подпрограммы
- •3.2. Использование стандартных модулей
- •3.2.1. Модуль Сrt. Работа с экраном в текстовом режиме
- •3.2.2. Модуль Graph . Работа с экраном в графическом режиме
- •3.2.3. Закрашенные области
- •3.2.4. Вывод текстовой информации
- •4. Решение функциональных и вычислительных задач химической технологии
- •4.1. Обработка экспериментальных данных
- •4.1.1 Интерполяционный многочлен Лагранжа
- •4.1.2. Интерполяционный многочлен Ньютона
- •4.2. Итерационные методы решения нелинейных уравнений
- •4.2.1. Метод деления отрезка пополам
- •4.2.2. Метод простых итераций
- •4.2.3. Метод Ньютона (метод касательных)
- •4.2.4. Примеры составления программ
- •4.3. Приближенное решение обыкновенных дифференциальных уравнений первого порядка
- •4.3.1. Метод Эйлера
- •4.3.2. Метод Рунге-Кутта
- •5. Основы работы с windows
- •Управление манипулятором мышь
- •Курсор ввода
- •Рабочий стол
- •Окно программы мой компьютер
- •Корзина
- •Панель задач
- •Файловая система и структура
- •5.1. Основы работы с Microsoft Word
- •5.1.1. Запуск программы Word
- •5.1.2. Элементы окна редактора Word
- •5.1.3. Набор текста
- •5.1.4. Сохранение и загрузка документов
- •5.1.5 Основы форматирования текста
- •5.1.6. Создание таблиц
- •5.1.7. Формульный редактор
- •5.2. Построение графиков с использованием Microsoft Excel
- •Формулы для вычисления линий тренда
- •6. Основы работы в среде delphi
- •6.1. Знакомство со средой Delphi
- •6.1.1. Главное окно
- •Пиктографические кнопки
- •6.1.2. Окно формы
- •6.1.3. Окно Инспектора Объектов
- •6.1.4. Окно кода программы
- •6.2. Основы визуального программирования в среде Delphi
- •6.2.1. Пустая форма и ее модификация
- •6.2.1.1. Настройка Delphi
- •6.2.1.2. Имена в Delphi
- •6.2.1.3. Изменение свойств формы
- •6.2.1.4. Размещение нового компонента
- •6.2.2. Реакция на события
- •6.2.2.1. Обработчик события OnClick
- •6.2.2.2. Динамическое изменение свойств компонента
- •6.3. Использование компонентов общего назначения
- •6.3.1. TFrame – рама и шаблоны компонентов
- •6.3.2. TMainMenu - главное меню формы (программы)
- •6.3.3. TPopupMenu - вспомогательное (локальное) меню
- •6.3.4. TLabel - метка для отображения текста
- •6.3.5. TEdit - ввод и отображение строки
- •6.3.6. TMemo - ввод и отображение текста
- •6.3.7. TButton – кнопка
- •6.3.8. TCheckBox - независимый переключатель
- •6.3.9. TRadioButton - зависимые переключатели
- •6.3.10. TListBox - список выбора
- •6.3.11. TComboBox – раскрывающийся список выбора
- •6.3.12. TScrollBar - управление значением величины
- •6.3.13. TGroupBox - панель группирования
- •6.3.14. TRadioGroup - группа зависимых переключателей
- •6.3.15. TPanel – панель
- •6.3.16. TActionList - механизм действий
- •7. Базы данных и базы знаний. Сеть интернет.
- •7.1. Системы сбора, хранения и обработки информации о протекании промышленного процесса
- •7.1.1 Общая характеристика систем управления базами данных
- •7.1.2 Иерархические субд
- •7.1.3 Сетевые базы данных
- •7.1.4 Реляционные базы данных
- •7.1.5 Среда быстрой разработки приложений Delphi
- •7.1.6 Язык sql как стандартный язык реляционных бд
- •7.1.7 Базы данных на нефтеперерабатывающих заводах. Единая тематическая витрина данных на ооо «по «Киришинефтеоргсинтез»
- •7.1.8 Базы знаний
- •7.2. Сеть интернет
- •7.2.1. Что такое Интернет
- •7.2.2. История возникновения Интернет
- •7.2.3 Интернет - компьютерные сети и сетевые протоколы. Семейство протоколов tcp/ip
- •7.2.4 Службы (сервисы) Интернет и архитектура клиент-сервер
- •7.2.5 Интернет в цифрах
- •8.1. Анализ и задание требований к безопасности
- •8. Средства защиты информации
- •8.2. Безопасность в прикладных системах
- •8.3 Проверка достоверности входных данных.
- •8.4. Проверка достоверности внутренней обработки данных
- •8.5. Аутентификация сообщений
- •8.6. Защита файлов прикладных систем
- •8.7. Контроль рабочего программного обеспечения
- •8.8. Защита системных тестовых данных
- •8.9. Безопасность в среде разработки и рабочей среде
- •8.10. Процедуры управления процессом внесения изменений
- •8.11. Технический анализ изменений, вносимых в операционную систему
- •8.12. Ограничения на внесение изменений в пакеты программ
- •Литература
- •Оглавление
- •Учебное издание
- •Проблемно-ориентированная информатика химико-технологических процессов
3.2.3. Закрашенные области
1. Bar(X1,Y1,X2,Y2:integer) - выводит на экран закрашенный прямоугольник с координатами диагонали (X1,Y1) и (X2,Y2).
2. Bar3D(X1,Y1,X2,Y2:integer;Depth:word;Top:boolean) - выводит на экран изображение закрашенного прямоугольного параллепипеда, который рисуется в изометрическом изображении с глубиной Depth. Параметр Top определяет, рисовать ли верхнюю грань параллепипеда. Значение Top выбирается из соответствующего списка констант модуля Graph. Если рисовать, Top =TopOn, если нет,Top = TopOff.
3. FloodFill(X,Y:integer;Border:word) - заполняет (закрашивает) ограниченную область текущем цветом. Граница закрашиваемой области высвечивается цветом, заданным в Border.
4. PieSlice(X,Y:integer;StAngle,EndAngle,Radius:word) - выводит на экран изображение закрашенного сектора круга, используя в качестве центра круга точку (X,Y), начального угла StAngle, конечного угла EndAngle и радиуса Radius. Контур сектора высвечивается текущим цветом. Если StAngle=0, а EndAngle=360 градусам, то PieSlice выводит на экран закрашенную окружность.
5. Sector(X,Y:integer;StAngle,EndAngle,XRadius,YRadius:word)- выводит на экран изображение эллиптического сектора, используя в качестве центра круга точку (X,Y), начального угла StAngle, конечного угла EndAngle, а в качестве горизонтальной и вертикальной полуосей - XRadius и YRadius. Контур сектора высвечивается текущим цветом. Если StAngle=0, а EndAngle=360, то на экране будет выведено изображение закрашенного эллипса.
3.2.4. Вывод текстовой информации
В графическом режиме вывод текстовой информации осуществляется с помощью штриховых и побитовых шрифтов. Каждый символ в штриховом шрифте определен серией отрезков, что позволяет использовать любой коэффициент увеличения символов без ухудшения качества изображения. Побитовый шрифт определен матрицей 8*8 пикселей для каждого символа. Для увеличения побитового шрифта используется коэффициент масштабирования, однако, большое увеличение побитового шрифта делает изображение грубым. Каждый штриховой шрифт хранится в соответствующем файле с расширением CHR.
1. OutTextXY(X,Y:integer;Text:string) - выводит строку, начиная с точки, имеющей координаты (X,Y).
2. SetTextJustify(Horiz,Vert:word) - устанавливает значения выравнивания текста. Для установки значения выравнивания в модуле Graph определены следующие константы:
а) горизонтальное выравнивание;
LeftText = 0 - выравнивание слева,
CenterText = 1 - выравнивание по центру,
RightText = 2 - выравнивание справа,
б) вертикальное выравнивание;
Bottom Text = 0 - выравнивание снизу,
CenterText = 1 - выравнивание по центру,
TopText = 2 - выравнивание сверху.
3. SetTextStyle(Font,Direction,CharSize:word) - устанавливает текущий шрифт, тип и коэффициент увеличения символов. Параметр Font - тип шрифта. Для установки типа шрифта в модуле Graph описаны следующие константы:
DefaultFont = 0 Побитовый шрифт ,
TriplexFont = 1 Тройной шрифт,
SmallFont = 2 Малый шрифт,
SansSerifFont = 3 Гротесковый шрифт,
GothicFont = 4 Готический шрифт
и другие.
Direction задает направление вывода. (0 - горизонтальное, слева направо,1 - вертикальное, снизу вверх). CharSize - коэффициент увеличения символов.
Пример 3.2.1. Массив X(N) напечатать на экране в виде столбцов по М элементов в каждом. Выделить элементы, превышающие по значению величину К.
PROGRAM P1;
USES Crt;
VAR x:array[1..20] of real;
i, N, M:integer;
K:real;
BEGIN
writeln(' N M K');readln(N,M,K);
FOR i:=1 TO N DO
BEGIN
write('X[',i,']=');readln(x[i])
END;
ClrScr;
FOR i:=1 TO N DO
IF x[i]>K THEN
BEGIN
TextColor(14);TextBackGround(4);
END
ELSE
BEGIN
TextColor(15);TextBackGround(1);
END;
GotoXY(10*((i-1) div M)+1,(i-1) mod M+1);
write(i:2,' ',x[i]:6:4)
END.
Пример 3.2.2. Составить программу введения пароля.
USES Crt;
CONST text:ARRAY [1..5] OF string=
(’ ’,
’ ВВЕДИТЕ ПАРОЛЬ ’,
’ ’,
’ ’,
’ ’);
VAR a:string[6]; f1:char; i:integer;
BEGIN
REPEAT
ClrScr; {Очистка экрана}
TextColor(15); {Установка цвета символов. Белый.}
TextBackGround(3); {Установка цвета фона. Темно-голубой.}
{Зарисовка рамки}
FOR i:=1 TO 5 DO
BEGIN
GotoXY(25,10+i);
writeln(text[i]);
END;
a:=’’;
{Ввод пароля}
FOR i:=1 TO 6 DO
BEGIN
GotoXY(32+(i-1),13);
f1:=readkey; {Ввод символа с клавиатуры}
TextColor(5);
GotoXY(32+(i-1),13);
write(’’);
a:=a+f1;
END;
IF a=’paroll’ THEN
BEGIN
TextColor(12);
GotoXY(33,14);
writeln(‘OK !’);
{Звуковой сигнал “Верно”}
sound(2500);
delay(2500);
nosound;
delay(20000);
END
ELSE
BEGIN
TextColor(6);
TextBackGround(0);
{Звуковой сигнал “Неверно”}
sound(100);
delay(2500);
nosound;
delay(20000);
END;
UNTIL a=’paroll’
END.
Пример 3.2.3. Составить программу построения графика функции y=sin(x).
USES Graph;
{Описание функции y=sin(x)}
FUNCTION f(x:real):real;
BEGIN f:=sin(x);
END;
VAR gd, gm, Nx, Nx1, Nx2, Ny, Ny1, Ny2:integer;
x, x1, x2, h, y, y1, y2:real;
BEGIN
{Переход в графический режим}
gd:=Detect;
InitGraph(gd,gm,'c:\bp\bgi');
x1:=0;
x2:=4Pi;
h:=0.01;
y1:=-1;
y2:=1;
{Размеры рамки}
Nx1:=10;
Nx2:=GetMaxX-Nx1;
Ny1:=10;
Ny2:=GetMaxY-Ny1;
{Зарисовка рамки}
rectangle(Nx1,Ny1,Nx2,Ny2);
{Построение графика по точкам}
x:=x1;
REPEAT
y:=f(x);
{Вычисление координаты точки экрана по заданным x и y}
Nx:=round(Nx1+(Nx2-Nx1)(x-x1)/(x2-x1));
Ny:=round(Ny2-(Ny2-Ny1)(y-y1)/(y2-y1));
PutPixel(Nx,Ny,12);
x:=x+h;
UNTIL x>x2;
readln; {Пауза}
closegraph {Выход из графического режима}
END.
