DECLARE SUB zolot (a!, b!, E!, xmax!)
DECLARE SUB dih (a!, b!, E!, xmax!)
DECLARE FUNCTION f! (x!)
CLS
INPUT "введите значения отрезка a="; a
INPUT "введите значения отрезка b="; b
INPUT "введите погрешность вычисления Eps="; E
REM метод дихотомии или половинного деления
CALL dih(a, b, E, xmax)
PRINT "Значения max по методу дихотомии"
PRINT "при X="; xmax
PRINT "значение функции Y(xmax)="; f(xmax)
a = 0
b = 1
PRINT "Значение max по методу золотого сечения"
CALL zolot(a, b, E, xmax)
PRINT "при X="; xmax
PRINT "значение функции Y(xmax)="; f(xmax)
END
SUB dih (a, b, E, xmax)
DO UNTIL ABS(b - a) < 2 * E
x1 = (a + b - E) / 2
x2 = (a + b + E) / 2
IF f(x1) > f(x2) THEN
b = x2
ELSE
a = x1
END IF
LOOP
xmax = (a + b) / 2
END SUB
FUNCTION f (x)
f = -2 * x ^ 2 + 3 * x + 50
END FUNCTION
SUB zolot (a, b, E, xmax)
k = (SQR(5) - 1) / 2
x1 = a + (1 - k) * (b - a)
x2 = a + k * (b - a)
DO UNTIL ABS(x2 - x1) < E
IF f(x1) < f(x2) THEN
a = x1
x1 = x2
ELSE
b = x2
x2 = x1
END IF
x1 = a + (1 - k) * (b - a)
x2 = a + k * (b - a)
LOOP
xmax = (x1 + x2) / 2
END SUB
РЕЗУЛЬТАТ в Qbasic
Значение max по методу дихотомии
при X=.7563525
значение функции Y(xmax)= 51.12492
Значение max по методу золотого сечения
при X=.748997
значение функции Y(xmax)= 51.125
Решение задачи с использованием ППП Eureka
$ max(F)
y(x)=-2*x^2+3*x+50
F=y(x)
Решение:
Переменные Значения
F = 51.125000
x =.75000000
Все ограничения удовлетв. = 98,6%
График функции имеет вид:
Y(x) = -2x^2 + 3*x + 50
Рисунок 10. График в Эврике.
Задания
для выполнения лабораторной работы
«Оптимизация технологического процесса»
В соответствии с содержательной постановкой задачи (описанной ранее) студенты определяют диапазон нахождения оптимального значения функции
y = ax2 + bx + c. Коэффициенты квадратичной модели студенты выбирают самостоятельно.
По указанию преподавателя студенты составляют блок-схемы алгоритмов решения задачи, программы на алгоритмическом языке для решения задачи предлагаемыми методами.
Отладив программу на ЭВМ, получив решение задачи, студенты анализируют полученные решения и сравнивают их с решением, полученным с помощью ППП Eureka и Excel.
Контрольные вопросы
1. Какой экстремум называется глобальным?
2. Что такое унимодальная функция?
3. В чем состоит задача оптимизации?
4. Каким образом можно сузить интервал исследования?
5. перечислите этапы алгоритма решения задачи нахождения максимума функции?
6. Что происходит с уменьшением шага изменения аргумента?
7. Перечислите методы оптимизации функции?
8. На чем основан метод равномерного поиска?
9. Каким алгоритмом реализуется метод дихотомии?
10. Для каких функций пригоден метод половинного деления?
11. Какого основное достоинство метода половинного деления?
12. В чем заключается метод Фибоначчи?
13. На чем основан метод «золотого сечения»?
14. Приведите алгоритм метода «золотого сечения»?
15. Какой из рассмотренных в лабораторной работе методов приводит к более «быстрому» решению?
16. Какие подпрограммы Вы использовали в лабораторной работе?
17. Каким оператором осуществляется вызов процедуры?
18. Где используются формальные и фактические параметры?
ЛАБОРАТОРНАЯ РАБОТА № 7
Работа с файлами последовательного доступа
Цель работы
Ознакомление с основными принципами работы с файлами последовательного доступа.
Работа с файлами
Информация, вводимая с клавиатуры или обрабатываемая с помощью программных средств Бейсика, размещается в оперативной памяти компьютера.
Алгоритм, набранный в Бейсике, может быть сохранен на диске в виде файла.
Файл — это поименованная область на магнитном или лазерном диске. В файлах могут содержаться тексты, графические и видеоизображения, звуки и музыка, таблицы и базы, данные программы, данные для этих программ.
Требования к имени файла
· имя не должно быть больше чем 8 символов;
· имя может состоять из букв латинского алфавита, цифр и символов, например, _, -, (,), $ и некоторых других.
· в имени файла запрещены символы <Пробел>, *, точка, запятая, кавычки, двоеточие.
Впрочем, злоупотреблять специальными символами не стоит — букв и цифр вполне хватает.
Расширение файла
Файл имеет расширение.
Расширение имени файла (англ. filename extension, часто говорят просто расширение файла или расширение) — последовательность символов, добавляемых к имени файла и предназначенных для идентификации типа (формата) файла. Расширение имеет длину не более трех символов, указывается через точку после имени.
Расширение файла | Описание формата файла |
*.aif, *.aifc, *.aiff | Файлы аудиоданных |
*.asm | Исходный текст программы на Ассемблере. |
*.avi | Основной формат видеоизображений |
*.bas | Текст программы на языке алгоритмическом языке Basic и различных его вариантах (GWBasic, TurboBasic, QuickBasic) |
*.bmp | Формат графических файлов (растровая графика). |
*.com | Исполняемый файл в двоичном коде |
*.cpp | Текст программы на языке C++ |
*.doc | Файл с документами или продукт работы текстового процессора Microsoft Word for Windows |
*.dot | Шаблон документа текстового процессора MS Word |
*.exe | Это всегда исполняемый бинарный файл |
*.gif | (Graphics Interchange Format). Растровый графический формат фирмы CompuServe |
*.htm, *.html | Специальный файл текстового типа, написанный на Hyper Text Markup Language |
*.mdb | Файл баз данных Microsoft Access |
*.mov - | Формат хранения видео и аудио |
*.pas - | Текст программы на языке Pascal |
*.ppt | Файл с презентацией Microsoft PowerPoint |
*.sys - | Системные файлы ядра DOS IO.sys и MSDOS.sys. |
*.txt | Текстовой файл, созданный в блокноте |
*.xls | Файл работы табличного процессора Microsoft Excel |
*.zip - | Файл архива сжатого архиваторами |
В файлах вы можете хранить как исходные данные для обработки, так и результаты работы программы.
Для работы в Бейсике необходимы файлы, хранящие однородные по типу или структуре сведения, о каких-либо объектах. Набор данных о каком-либо одном объекте называется записью.
Файл может быть пустым, т. е. содержать 0 байт информации, но имя файла и символ конца файла будут присутствовать. (Байт - единица измерения количества информации, объема памяти и емкости запоминающего устройства. По умолчанию байт считается равным 8 битам).
Записи могут содержать данные разных типов, но должны быть обязательно одинаковы по структуре, например:
"Запорожец", "4067 ЛДЕ", "1972", "100$"
"ГАЗ-34", "6666 ЛАА", 1989, "3500$"