- •А.В. Кравцов, н.В. Чеканцев, е.С. Шарова, м.С. Гынгазова, ю.А. Смышляева, э.Д. Иванчина Проблемно-ориентированная информатика химико-технологических процессов
- •Введение
- •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. Технология программирования и модули
3.1. Подпрограммы
Различают глобальные и локальные параметры. Глобальные параметры являются общими на две или более программных единиц. Локальные параметры изменяют свои значения только внутри данной программной единицы. Как видно из примера, приведенного ниже, писание параметров в блоке VAR означает, что данная группа параметров является глобальными для входных и выходных значений(x1,x2). При отсутствии в заголовке служебного слова VAR значения параметров передаются внутрь процедуры, но не передаются из нее в главную программу(a,b,c).
В тех случаях, когда параметрами процедур и функций являются массивы, необходимо размерность и размер этих массивов задавать через служебное слово TYPE. Ниже приведен пример составления процедуры maxmin для определения максимального и минимального значений двумерного массива.
Пример 3.1.1. Составить программу для расчета выражения:
,
оформив определение значений нестандартных функций в виде подпрограмм.
VAR k, a, x:real;
FUNCTION lg(x:real):real;
BEGIN
lg:=ln(x)/ln(10)
END;
FUNCTION pow(a,x:real):real;
BEGIN
pow:=exp(xln(x))
END;
BEGIN
write(’Введите a,x:’);
readln(a,x);
k:=lg(asqr(x)sqrt(x)/(3+x))+2E3pow(1+2x,1-sqrt(a));
writeln(’k=’,k:10)
END.
Пример 3.1.2. Составить программу расчета массива Z(10).
.
Расчет функции f(x) оформить в виде подпрограммы – функции.
Расчет суммы – в виде подпрограммы – процедуры.
.
TYPE mas=ARRAY [1..10] OF real;
VAR x, z:mas; c, q, S:real;
FUNCTION F(x:real):real;
BEGIN
IF x>3 THEN f:=1/x ELSE f:=1+2xsqr(x);
END;
PROCEDURE Sum(x:mas;VAR S:real);
VAR i:integer;
BEGIN
S:=0;
FOR i:=1 TO 10 DO S:=S+sqrt(x[i]);
END;
BEGIN
writeln(’ c q’);
readln(c,q);
FOR i:=1 TO 10 DO
BEGIN
write(’X[’,i,’]=’);
readln(x[i])
END;
Sum(x,S);
FOR i:=1 TO 10 DO
BEGIN
P[i]:=sqr(f(x[i]))/sin(c)+sqrt(x[i])/(sqr(S)q);
writeln(’P[’,i,’]=’,P[i]:10);
END;
END.
Пример 3.1.3. Составить программу для расчета выражения
.
TYPE mas=ARRAY [1..20] OF real;
VAR x, y:mas; f:real; i,k:integer;
FUNCTION Sum(a:mas; n1,n2,p:integer):real;
VAR S:real; i:integer;
BEGIN S:=0;
FOR i:=n1 TO n2 DO S:=S+exp(pln(a[i]));
Sum:=S
END;
BEGIN
{Ввод массивов x и y с клавиатуры.}
FOR i:=1 TO 8 DO
BEGIN
write(’x’,i, ’=’); readln(x[i]);
END;
FOR k:=1 TO 10 DO
BEGIN
write(’y’, k, ’=’); readln(y[k]);
END;
F:=Sum(x,3,8,2)+Sum(y,2,10,3);
writeln(’F=’,F:10)
END.
Пример 3.1.4.
PROGRAM Stepen;
VAR x,y:real;
f1,f2:text;
FUNCTION POWER(a,b:real):real;
BEGIN
IF a > 0 THEN power:=exp(b*ln(a))
ELSE
IF a < 0 THEN power:=exp(b*ln(abs(a)))
ELSE
IF b=0 then power:= 1
ELSE
power:=0;
END;
BEGIN
assign(f2,'agg.rez'); reset(f2);
read(f2,x,y);
assign(f1,'q'); rewrite(f1);
write(power(x,y):4:1);
close(f1);
END.
Для обращения к функции Power мы просто указали ее в качестве параметра при выводе данных. Параметры X и Y в момент обращения к функции – это фактические параметры. Они автоматически заменяют формальные параметры A и B по порядку следования. Количество и тип формальных и фактических параметров строго соответствуют друг другу. Рассмотрим пример на составление процедуры вычисления y=x+1 .
Пример 3.1.5.
PROGRAM Proc;
VAR a, d, x, y:real;
f1, f2:text;
PROCEDURE ff( VAR x,y:real);
BEGIN
y:=x+1;
END;
BEGIN
assign(f2,'agg.rez'); reset(f2);
read(f2,a,d);
assign(f1,'q'); rewrite(f1);
write(f1,a:4:1,d:4:1);
ff(a,d);
write(a,d);
close(f1);
END.
Пример 3.1.6.
PROGRAM Proc1;
PROCEDURE sq(a, b, c:real;VAR x1, x2 : real);
VAR d:real;
BEGIN
d:=B*B - 4*A*C;
x1:=(-b+SQRT(D))/(2*a);
x2:=(-b-SQRT(D))/(2*a);
END;
VAR y1,y2:real;
BEGIN
sq (5.7,-1.2,-8.3,y1,y2);
write(y1,y2);
END.
Пример 3.1.7.
PROGRAM maxmin;
TYPE b1=ARRAY[1..4,1..3] OF real;
VAR i, j:integer;
ymax, ymin:real;
y:b1;
r1, r2:text;
PROCEDURE mm(VAR x: b1; VAR xmax, xmin:real);
VAR n, k:integer;
BEGIN
xmax:=x[1,1]; xmin:=x[1,1];
FOR n:=1 TO 4 DO
FOR k:=1 TO 3 DO
BEGIN
if x[n,k] <= xmin then xmin:=x[n,k];
if x[n,k] >= xmax then xmax:=x[n,k]
END;
END;
BEGIN
assign(r1,'a.dat'); reset(r1);
FOR i:=1 TO 4 DO
FOR j:=1 TO 3 DO
read(r1,y[i,j]);
assign(r2,'b.res'); rewrite(r2);
mm(y,ymax,ymin);
write(r2,ymax,ymin);
close(r2);
END.
