Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2392_Смирнова_ЛР3_ЭВМ

.docx
Скачиваний:
0
Добавлен:
05.12.2024
Размер:
119.05 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра ВТ

отчет

по лабораторной работе №3

по дисциплине «Организация ЭВМ и систем»

Тема: ИССЛЕДОВАНИЕ ВИДЕОСИСТЕМЫ (ГРАФИЧЕСКИЙ РЕЖИМ)

Студент гр. 2392

Смирнова М. В.

Преподаватель

Ельчанинов М. Н.

Санкт-Петербург

2023

Цель работы.

Изучение работы с видеосистемой в графическом режиме, вывод графика заданной функции с масштабированием и разметкой осей.

Задание на лабораторную работу.

  1. Разработать программу для вывода на экран графика заданной функции: Sin2(x/4)+Sqrt(x). В Диапазоне: 3π/2 до 17π.

  2. Найти максимальное значение функции на заданном интервале и вывести в отдельное окно на экране.

  3. Произвести разметку осей и проставить истинные значения точек.

Краткие сведения о видеосистемах ПЭВМ, графическом режиме их работы и функциях обслуживания графического режима.

Видеосистема ПЭВМ - это совокупность аппаратных и программных средств, обеспечивающих вывод графической информации на монитор или другое устройство отображения. Видеосистема состоит из видеокарты, видеопамяти, видеопроцессора, видеоинтерфейса и видеодрайвера.

Видеокарта - это плата, которая подключается к материнской плате ПЭВМ и содержит видеопроцессор, видеопамять и видеоинтерфейс. Видеопроцессор - это микросхема, которая выполняет операции над графическими данными, такие как преобразование, масштабирование, поворот, сглаживание, фильтрация и т.д. Видеопамять - это область памяти, в которой хранятся графические данные, такие как цвета, координаты, текстуры и т.д. Видеоинтерфейс - это разъем, через который видеокарта подключается к монитору или другому устройству отображения. Существуют различные типы видеоинтерфейсов, такие как VGA, DVI, HDMI, DisplayPort и т.д.

Видеодрайвер - это программа, которая обеспечивает взаимодействие между операционной системой, прикладными программами и видеокартой. Видеодрайвер предоставляет набор функций, которые позволяют управлять параметрами видеокарты, такими как разрешение, цветность, частота обновления, режим работы и т.д. Видеодрайвер также отвечает за перевод графических команд, поступающих от прикладных программ, в формат, понятный видеопроцессору.

Графический режим работы видеосистемы - это режим, в котором на экране монитора или другого устройства отображения формируется изображение из отдельных точек, называемых пикселями. Каждый пиксель имеет определенный цвет, который задается кодом цвета. Графический режим отличается от текстового режима, в котором на экране выводятся символы из заранее заданной таблицы.

Графический режим имеет ряд преимуществ, таких как:

  • возможность вывода любых графических объектов, не ограниченных символьным набором;

  • возможность использования различных эффектов, таких как анимация, трансформация, прозрачность и т.д.;

  • возможность создания реалистичных и качественных изображений с высокой детализацией и цветопередачей.

Однако графический режим также имеет некоторые недостатки, такие как:

  • большой объем памяти, необходимый для хранения графических данных;

  • большая нагрузка на видеопроцессор и процессор ПЭВМ при выполнении сложных графических операций;

  • потенциальная утечка конфиденциальной информации по каналам побочных электромагнитных излучений и наводок.

Графический режим реализуется на аппаратном и программном уровнях. На аппаратном уровне графический режим определяется характеристиками видеокарты, такими как разрешение, цветность, частота обновления и т.д. На программном уровне графический режим поддерживается операционной системой, языком программирования и библиотеками, которые предоставляют функции для работы с графикой. Например, в языке программирования C++ можно использовать библиотеку graphics.h, которая содержит функции для инициализации графического режима, рисования примитивов, вывода текста, загрузки и сохранения изображений и т.д… Также существуют различные стандарты и форматы графических файлов, такие как BMP, JPEG, PNG, GIF и т.д., которые определяют способы хранения и сжатия графических данных.

Алгоритмы и тексты отлаженных программ

Ниже приведены алгоритмы и тексты отлаженных программ, выполненных в рамках лабораторной работы. Программы написаны на языке программирования C++ и скомпилированы в среде разработки Turbo C++ 3.1.

Давайте разберем программу по пунктам:

  1. Подключение заголовочных файлов: Здесь подключаются необходимые библиотеки для работы с вводом/выводом, графикой, математикой и стандартными функциями.

  2. Определение макроса pi: Определяется макрос для значения числа π.

  3. Функция main(): Входная точка программы.

  4. Очистка экрана.

  5. Инициализация графического режима: Определяются параметры графического режима, инициализируется графический режим, и проверяется наличие ошибок.

  6. Обработка ошибок при инициализации графики.

  7. Получение размеров экрана.

  8. Установка видового экрана в соответствии с размерами экрана.

  9. Отрисовка осей координат.

  10. Разметка по осям.

  11. Вычисление и отрисовка графика функции sin^2(x/4) + sqrt(x).

  12. Вывод максимального значения на экран.

Программа инициализирует графический режим, рисует оси координат, вычисляет и рисует график функции, выводит максимальное значение, и завершает работу с графикой.

Текст программы

//Подключение заголовочных файлов

#include <stdio.h>

#include <conio.h>

#include <dos.h>

#include <graphics.h>

#include <math.h>

#include <stdlib.h>

#include<iostream.h>

//определение макроса pi, как 3,14

#define pi 3.14

int main()

{

// Очистка экрана

clrscr();

// Инициализация графического режима

int graph_driver, graph_mode, graph_error_code, x2, y2;

char str[3];

graph_driver = DETECT;

initgraph(&graph_driver, &graph_mode, "C:\\TURBOC3\\BGI");

graph_error_code = graphresult();

// Обработка ошибок при инициализации графики

if (graph_error_code != grOk)

{

printf("Error: %s\n", grapherrormsg(graph_error_code));

getch();

return 0;

}

// Получение размеров экрана

x2 = getmaxx();

y2 = getmaxy();

// Установка видового экрана в соответствии с размерами экрана

setviewport(0, 0, x2, y2, 0);

// Отрисовка осей координат

line(0, y2, 0, 50);

line(0, y2 / 2, x2, y2 / 2);

// Разметка по осям

// Вычисление и отрисовка графика функции sin^3(x/4) + sqrt(x)

char str1[3];

int counter = 1;

for (int i = 40; i <= 800; i += 40)

{

sprintf(str1, "%dpi", counter);

outtextxy(i, y2 / 2 + 10, str1);

line(i, y2 / 2 + 5, i, y2 / 2 - 5);

counter++;

}

counter = -11;

for (int j = y2 - 20; j >= 0; j -= 20)

{

sprintf(str1, "%d", counter);

outtextxy(10, j, str1);

line(-5, j, 5, j);

counter++;

}

double verx, very, max = -100, masx = 40 / pi, x1, y1;

verx = 1.5 * pi;

setviewport(0, 0, x2, y2, 0);

while (verx <= 17 * pi)

{

very = (sin(verx / 4) * sin(verx / 4) * sin(verx / 4)) + sqrt(verx);

x1 = verx * masx;

y1 = very * 20;

putpixel(x1, (y2 / 2) - y1, 8);

if (very > max)

{

max = very;

}

verx += 0.001;

}

// Вывод максимального значения на экран

printf("The maximum: %lf", max);

cout << endl << "sin^3(x/4) + sqrt(x)";

// Завершение работы с графикой

getch();

closegraph();

return 0;

}

П римеры запуска программы

Структура

С труктурная схема аппаратных средств, используемых при выполнении программы с необходимой степенью детализации содержимого блоков.

Соседние файлы в предмете Организация ЭВМ