Построение графиков и диаграмм в паскаль авс

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

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

Договоримся ещё об одном: систему будем строить с положительными и отрицательными значениями по обеим осям. Поскольку многие используют ещё турбо паскаль, то в конце страницы будет приведены две программы: одна – для PascalABC и PascalABC.Net, другая – для Turbo Pascal и Free Pascal.

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

Пусть (xLeft; yLeft) – координаты левого верхнего угла декартовой системы координат в графическом окне PascalABC.Net, (xRight; yRight) – соответственно координаты правого нижнего угла. Следующая задача – провести оси координат OX и OY. Будем считать, что нам нужны все четыре четверти координат. В этом случае обе оси будут иметь положительные и отрицательные значения. Чтобы правильно поставить центр координат (x; y), необходимо знать границы изменения аргумента x по оси OX и значения функции f по оси OY.

Итак, отложим по оси ОХ числа от a до b с интервалом dx, по оси OY – числа от fmin до fmax с разницей dy; причем обязательные условия: a≤0, b≥0, fmin≤0, fmax≥0. Для правильного отображения засечек на осях необходимо также, чтобы dx было делителем a и b, а dy было делителем fmin и fmax, и эти числа придется выбирать самостоятельно для каждого интервала. Но сначала нам придется познакомиться с таким понятием как масштаб системы координат в графическом окне паскаля. Что такое масштаб?

Масштаб – это величина, или коэффициент, показывающий, сколько пикселей графического окна паскаля приходится на единицу оси системы координат. Например, по оси ОХ нужно расположить числа от -4 до 16 (всего 20 единиц), а ширина графического окна паскаля равна 1000 пикселей; тогда на единицу величины оси ОХ приходится 1000:20=50 пикселей/единицу. Это и есть масштаб по оси ОХ. Чтобы узнать, сколько пикселей содержат n единиц, надо просто умножить n на 50.

График функции будем строить по точкам, используя процедуру SetPixel(x, y, c), где x, y – координаты точки в графическом окне паскаля, c – цвет точки. Для рисования осей координат ОХ и OY воспользуемся процедурой Line(x1, y1, x2, y2), где (x1; y1) – координаты начальной точки, (x2; y2) – координаты конечной.

Последовательность такова: сначала строим систему координат, а после (в самом конце) вычисляем значения функции, вычисляем соответствующие координаты точки в графическом окне и ставим точку (x, y), закрашенную в зеленый цвет. Откройте PascalABC или PascalABC.Net, скопируйте следующий код и запустите программу:

Читайте также  Прочие поступления 7 в сбербанке

Только не нужно забывать, что в PascalABC цвет имеет тип ColorType, а PascalABC.Net тип цвета Color – это синоним System.Drawing.Color.

Итак, запустив программу, вы должны увидеть следующее:

А теперь программа для тех, у кого нет PascalABC, но есть Turbo Pascal или Free Pascal. Итак, скопируйте нижеприведенный код в блокнот, сохраните в формате .pas и откройте в турбо паскале, потом запустите (ctrl+F9):

Если все сделано правильно, вы должны увидеть такой график функции:

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

Простейший игровой автомат – это обычная игра, но с использованием функции Random(N), возвращающей случайное число от 0 до N-1. Это значит, что нажимая на кнопки, выбирая разные фишки, бросая кубики, шарики и т.п. каждый раз вы будете получать случайный результат, так как функция Random генерирует случайные числа с привязкой к текущему времени. Также в играх подобного типа обязательное использование таймера для создания плавности перехода. Позже в этом разделе мы напишем небольшие игры и посмотрим, как это работает.

Устанавливая рекомендуемое программное обеспечение вы соглашаетесь
с лицензионным соглашением Яндекс.Браузера и настольного ПО Яндекса .

Выбранный для просмотра документ Zadaniya na urok (po variantam).docx

Набрать программу. Скомпилировать. Сохранить.

var x0, y0, x1, y1, k: integer;

x0:=320; y0:=200; k:=20;

Набрать программу. Скомпилировать. Сохранить.

var x0, y0, x1, y1, k: integer;

x0:=320; y0:=200; k:=20;

Увеличьте шаг в 10 раз. Скомпилируйте. Сохраните.

Увеличьте шаг на 100 раз. Скомпилируйте. Сохраните.

Измените промежуток на котором строится график функции на [-5, 10]. Скомпилируйте. Сохраните.

Измените промежуток на котором строится график функции на [-10, 20]. Скомпилируйте. Сохраните.

Измените функцию на: 1) tg ( x ) ; 2) sin ( x )+2* x .

Измените функцию на: 1) ctg ( x ) ; 2) tg ( x )+2.

Выведите на экран график функции только в I и IV четвертях (воспользоваться функциями из задания на 8 баллов). Скомпилируйте. Сохраните.

Выведите на экран график функции только в II и III четвертях (воспользоваться функциями из задания на 8 баллов). Скомпилируйте. Сохраните.

Измените цвет фона, цвет графика функции, цвет координатных осей. Скомпилируйте. Сохраните.

Измените цвет фона, цвет графика функции, цвет координатных осей. Скомпилируйте. Сохраните.

Выбранный для просмотра документ конспект.doc

Лицей №1 имени А.С. Пушкина

План-конспект урока по информатике (11 класс)

Тема: “Построение графиков”

способствовать формированию умений построения графиков в среде Pascal ABC , укреплять меж предметные связи с математикой, акцентировать внимание на прикладной роли программирования;

способствовать воспитывать у учащихся самостоятельность в работе;

способствовать развитию мышление, память, внимание.

Объяснение нового материала

Подведение итогов урока

1. Организационный момент

Организую внимание учащихся, предлагаю сесть.

— Здравствуйте. Сегодня у нас на уроке работа с графиками в Pascal ABC . Целью нашего занятия – научится строить графики в Pascal ABC .

2. Объяснение нового материала

— Очень часто в математике, чтобы исследовать функцию очень полезно строить графики, так вот и в Pascal ABC возможно строить графики самых различных функций.

— Давайте вспомним, в каких программах Вы уже строили графики? (Microsoft Excel)

Верно. А теперь давайте разберемся пример, как же построить график функции в Pascal ABC .

Читайте также  Почему после установки драйвера принтер не работает

Задание: Составить программу, которая строит график зависимости y ( x )=0,4 x +2 sin 3 x на промежутке [-15;15].

var x0, y0, x1, y1, k: integer;

SetWindowSize(640,400); // размер окна

x0:=320; // координаты начала отсчета

line(20,y0, 620,y0); //ось абсцисс

line(x0,20, x0,380); //ось ординат

setPenColor(clRed); //цвет пера

y:=0.4*x+2*sin(3*x); // задание функции

x1:=trunc(x0+x*k); // экранные координаты

3. Задание на дом

§7 (п. 7.3) №1а страница 84.

4. Практическая работа

На карточках по вариантам.

Набрать программу. Скомпилировать. Сохранить.

var x0, y0, x1, y1, k: integer;

x0:=320; y0:=200; k:=20;

line(20,y0, 620,y0); line(x0,20, x0,380);

Увеличьте шаг в 10 раз. Скомпилируйте. Сохраните.

Измените промежуток на котором строится график функции на [-5, 10]. Скомпилируйте. Сохраните.

Измените функцию на: 1) tg ( x ) ; 2) sin ( x )+2* x .

Выведите на экран график функции только в I и IV четвертях (воспользоваться функциями из задания на 8 баллов). Скомпилируйте. Сохраните.

Измените цвет фона, цвет графика функции, цвет координатных осей. Скомпилируйте. Сохраните.

Набрать программу. Скомпилировать. Сохранить.

var x0, y0, x1, y1, k: integer;

x0:=320; y0:=200; k:=20;

line(20,y0, 620,y0); line(x0,20, x0,380);

Увеличьте шаг на 100 раз. Скомпилируйте. Сохраните.

Измените промежуток на котором строится график функции на [-10, 20]. Скомпилируйте. Сохраните.

Измените функцию на: 1) ctg ( x ) ; 2) tg ( x )+2.

Выведите на экран график функции только в II и III четвертях (воспользоваться функциями из задания на 8 баллов). Скомпилируйте. Сохраните.

Измените цвет фона, цвет графика функции, цвет координатных осей. Скомпилируйте. Сохраните.

5. Подведение итогов урока

— С какой новой возможностью мы познакомили?

— Какие сложности возникли при выполнении заданий?

Выбранный для просмотра документ Пример.pptx

Описание презентации по отдельным слайдам:

program Grafik; uses GraphABC; var x0, y0, x1, y1, k: integer; x, y: real; begin Составить программу, которая строит график зависимости y(x)=0,4x+2sin3x на промежутке [-15;15]. SetWindowSize(640,400); // размер окна x0:=320; // координаты начала отсчета y0:=200; line(20,y0, 620,y0); //ось абсцисс line(x0,20, x0,380); //ось ординат k:=20; // шаг setPenColor(clRed); //цвет пера x:=-15; While x 300/600 ч.

Устанавливая рекомендуемое программное обеспечение вы соглашаетесь
с лицензионным соглашением Яндекс.Браузера и настольного ПО Яндекса .

  • Головач Александр ГригорьевичНаписать 11367 27.11.2015

Номер материала: ДВ-200565

Устанавливая рекомендуемое программное обеспечение вы соглашаетесь
с лицензионным соглашением Яндекс.Браузера и настольного ПО Яндекса .

    27.11.2015 1038
    27.11.2015 3545
    27.11.2015 2969
    27.11.2015 591
    27.11.2015 4713
    27.11.2015 1105
    27.11.2015 1970

Не нашли то что искали?

Вам будут интересны эти курсы:

Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение редакции может не совпадать с точкой зрения авторов.

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

Важна ли графика для начинающих программистов? Или следует в первую очередь изучать конструкции языка, алгоритмы, методику написания программ? А графика — баловство?

Читайте также  Пффф что это значит

Несомненно, все зависит от аудитории. Если программированию обучается школьник, то графика очень важна — мышление конкретное, и хочется сразу видеть результаты своего труда. Абстрактное мышление быстро утомляет. Если программировать учится студент — здесь другая картина. Графика нужна по большей мере как вспомогательное средство для визуализации результатов, динамики выполнения алгоритмов. Но что однозначно — графика нужна.

Меня вот часто спрашивают студенты — как сделать что-нибудь графическое на C++? Много лет уже спрашивают. Уже устал отвечать — не знаю.

Конечно, не каждый язык должен иметь стандартную поддержку графики. Даже универсальный. Но вот от языка для обучения (а язык Паскаль используется в основном для обучения) поддержку графики — ждут.

В старом добром Бейсике — чем он подкупал — на Корветах там всяких, Атари и Синклерах — загрузил среду, написал

На старом добром Turbo Pascal был такой замечательный модуль Graph — подключил его, написал пару строчек непонятных заклинаний — и рисуй себе все что угодно аж 256 цветами! Вот эти заклинания:

Еще в конце там CloseGraph надо было вызвать. И знатоки с умным видом рассказывали новичкам, что у тебя там неправильно установлен путь к графическому драйверу или драйвер у тебя не тот.

Вообщем, прошли те времена — появилась Windows, а в ней основной режим — графический.

Прошли ли? Меня до сих пор спрашивают, почему в PascalABC нет модуля Graph? Отвечаю, что не мог больше терпеть. Но нет-нет да мелькнет в Интернете на форуме пост какого-нибудь новичка — представляете, настолько плохой PascalABC, что даже графики в нем нет или она там какая-то своя! Не та, что описана в груде книжек по Турбо-Паскалю, а другая!

Вот об этой другой графике мы и поговорим.

Те, кто программировал графические приложения под Windows, знают, что рисовать лучше всего в обработчике события WM_PAINT или OnPaint (последнее — если используется какой-нибудь объектный каркас для Windows-приложения). В этом обработчике нельзя рисовать долго, поскольку программа на время его работы блокируется. А если рисовать в других обработчиках, то нарисованное стирается при следующей перерисовке окна. Короче — куча проблем!

Идея была простой: создать графическую библиотеку, подключающуюся крайне просто, где эти проблемы были бы решены. Еще лучше, если графическое приложение будет похоже на обычную программу: чтобы сразу после begin можно было писать графические команды.

Решение было найдено — вот эта простейшая программа:

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

Вот несколько очень простых графических программок — совершенно бесполезны — чистое баловство!

Программа 1. Показывает использование процедуры SetPixel и функции RGB.

Программа 2. Рисование звездочки. Показывает использование процедур MoveTo и LineTo, а также полярных координат.

Пример 3. Цифровые часы. Показывает использование процедуры TextOut, а также функций TextWidth, TextHeight.

Ну вот, для введения и достаточно.

А симпатичные примеры на графику строк эдак на 10-15 — пожалуйста — пишите в комментариях!

Ссылка на основную публикацию
Adblock
detector