- •А.В. Кравцов, н.В. Чеканцев, е.С. Шарова, м.С. Гынгазова, ю.А. Смышляева, э.Д. Иванчина Проблемно-ориентированная информатика химико-технологических процессов
- •Введение
- •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. Ограничения на внесение изменений в пакеты программ
- •Литература
- •Оглавление
- •Учебное издание
- •Проблемно-ориентированная информатика химико-технологических процессов
2.3. Программирование разветвляющихся алгоритмов. Условный оператор
Алгоритм, в котором выполнение того или иного действия зависит от выполнения некоторого условия, называется разветвляющимся. Для программирования разветвляющихся алгоритмов в Паскале используется условный оператор.
Условный оператор используется в тех случаях, когда выполнение следующего действия в программе зависит от результатов предыдущих вычислений. Для записи условного оператора используются следующие служебные слова: IF, THEN, ELSE.
Общий вид условного оператора IF A THEN B; где A - логическое отношение , B - оператор, простой или составной. Для записи условного оператора перехода используются следующие логические отношения: = равно; < > не равно; < меньше; > больше; >= больше или равно; <= меньше или равно. Рассмотрим следующий условный оператор:
IF A < > 0 THEN B:=X/A;
В результате выполнения данного условного оператора В примет значение X/A только в том случае, если A не равно 0. Если A=0, то оператор присваивания B:=X/A; выполнен не будет.
Условный оператор может быть записан в следующем виде: IF A THEN ST1 ELSE ST2; где А - логическое отношение, а ST1 и ST2 - некоторые операторы. Если логическое отношение А - истина, то выполняется оператор ST1. Если логическое отношение A - ложь, то выполняется оператор ST2.
Пример 2.3.1
PROGRAM VVOD;
VAR n, C, d, b, g:real;
BEGIN write('введи n= ');read(n); c:=n+LN(N)+1;b:=c+1;
IF c < > 0 THEN IF b< > 10 THEN d:=1 ELSE d:=12.;g:=3;
writeln(C, d, g);
END.
Составной оператор. Если при некотором условии нужно выполнить последовательность операторов, то их объединяют в один составной оператор. Составной оператор начинается ключевым словом BEGIN и заканчивается ключевым словом END. Между этими словами помещаются составляющие операторы, которые выполняются в порядке их следования.
Рассмотрим пример составного условного оператора.
Пример 2.3.2
y=Cos 2x/5 при 5<=x<=10, r=sin 2x/10,
f= y+r; f=2.8 eX при x<5 или x>10.
PROGRAM FUNK;
VAR x, y, r, f:real;
BEGIN write('введи x= ');read(x);
IF (x<=10) and (x>=5) THEN BEGIN
y:=Cos(2.0*x)/5.0; r:=Sin(2*x)/10.0;
f:=y+r; END ELSE
f:=2.8*exp(x);
write('значение f',f);
END.
Виды разветвляющихся алгоритмов и способы программирования приведены в табл. 2.3.1. и 2.3.2.
Пример 2.3.3. Составить программу для решения квадратного уравнения.
VAR A, B, C, X, X1, X2, D:real;
B EGIN
{Ввод коэффициентов a,b,c.}
writeln(’Данная программа решает квадратные уравнения типа :’);
writeln(’ AXX + BX + C = 0 ’)
write(’Введите коэффициент А = ’); readln(A);
write(’Введите коэффициент B = ’); readln(B);
write(’Введите коэффициент C = ’); readln(C);
{Расчет дискриминанта}
D:=sqr(B)-4AC;
{Расчет корней.}
IF D < 0 THEN
BEGIN
writeln(’Данное уравнение вещественных корней’);
writeln(’НЕ ИМЕЕТ’);
END;
IF D = 0 THEN
BEGIN
X:=-B/(2A);
writeln(’Данное уравнение имеет ОДИН вещественный корень’);
writeln(’ X = ’,X:10:6);
END;
IF D > 0 THEN
BEGIN
X1 := (-B+sqrt(D))/(2A);
X2 := (-B-sqrt(D))/(2A);
writeln(’Данное уравнение имеет ДВА вещественных корня’);
writeln(’ X1 = ’,X1:10:6,’ X2 = ’,X2:10:6);
END;
END.
Пример 2.3.4. Составить программу вычисления теплового эффекта химической реакции, если теплоемкость зависит от температуры.
,
где n=7.3 моль - количество вещества,
H298=63 200 Дж/моль - мольный эффект реакции при стандартных условиях.
CONST
n=7.3; H298=63200; T1=600;T2=800;
Cp1= -13.7; Cp2= -4.9; Cp3=5.3;
VAR T, Cp, H:real;
BEGIN
write(’Введите температуру, К : T = ’); readln(T);
IF T < T1 THEN Cp:= Cp1 ELSE
IF T < T2 THEN Cp:= Cp2 ELSE Cp:= Cp3;
H:=(H298+Cp(T-298))n;
writeln(’Тепловой эффект : H=’, H:6:3);
END.
Пример 2.3.5. Вводятся значения длин трех отрезков. Составить программу определения возможности образования этими отрезками треугольника.
VAR a, b, c: real;
B EGIN
write(’Введите длину первого отрезка a=’); readln(a);
write(’Введите длину второго отрезка b=’); readln(b);
write(’Введите длину третьего отрезка c=’); readln(c);
IF (a<=0) OR (b<=0) OR (c<=0) THEN writeln(’Вы неправильно ввели значения длин !’) ELSE
IF (a+b>c) AND (a+c>b) AND (b+c>a) THEN writeln(’Из этих отрезков МОЖЕТ быть образован треугольник !’) ELSE writeln(’Из этих отрезков НЕ МОЖЕТ быть образован треугольник !’);
END.
Таблица 2.3.1
Виды разветвляющихся алгоритмов и способы их программирования
Фрагмент блок – схема |
Фрагмент программы |
а) Разветвление.
|
IF x>3 THEN y:=sqr(x-1) ELSE BEGIN z:=1/x; y:=exp(-z) END; |
б) Обход. (1-й случай).
|
IF (x>3) AND (c<2) THEN d:=c+x; |
Продолжение табл. 2.3.1.
в) Обход. (2-й случай).
|
Варианты программирования. 1) IF NOT (2a>1) THEN writeln(’d=’,d:10); 2) IF 2a<=1 THEN writeln(’d=’,d:10); 3) IF 2a>1 THEN ELSE writeln(’d=’,d:10); 4) IF 2a>1 THEN GOTO 1; writeln(’d=’,d:10); 1:…… |
Два способа расчета функции с условиями (Таблица 2.3.2):
Таблица 2.3.2
Способ 1 |
Способ 2 |
. . . IF x<0 THEN f:=sqr(x)-a ELSE IF x<a THEN f:=4x+sqrt(x) ELSE f:=ln(abs(x/a)); . . . |
. . . IF x<0 THEN f:=sqr(x)-a; IF (0<=x) AND (x<a) THEN f:=4x+sqrt(x); IF a<=x THEN f:=ln(abs(x/a)); . . . |
