русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Задания для самостоятельной работы


Дата добавления: 2015-07-23; просмотров: 1106; Нарушение авторских прав


Пример 1. Составить программу построения узора, образованного пересечением двух семейств расходящихся отрезков, у которых k1 и k2 - расстояния между отрезками слева и справа, а h – смещение-наклон вниз (вверх) всего семейства.

Решение. Построение горизонтальной линии осуществляется процедурой line (0, k, 640, k). Если нужно построить n линий, то эту процедурe надо поместить в цикл: for i :=1 to n do line (0, i*k, 640, i*k). Наклон линий получается добавлением шага h ко второй координате (h>0, то наклон вниз, h<0, то наклон вверх): for i :=1 to n do line (0, i*k, 640, i*k+h). Расширение и сужение прямых ljcnbuftncz путем задания различных значений k1 и k2 величины k: for i :=1 to n do line (0, i*k1, 640, i*k2+h). Второе семейство получается, если наклон линий производить по первой координате: for i :=1 to n do line (0, i*k2+h, 640, i*k1).

Uses crt, graf;

Var gD, gM, i, k1, k2, h: integer;

Begin

k1:= 8; k2 := 3; h:=110; gD:= Detect;

InutGraf (gD, gM, ‘’); setcolor(red);

For i := 1 to (480 div k1) do

Begin

for i :=1 to n do line (0, i*k1, 640, i*k2+h):

for i :=1 to n do line (0, i*k2+h, 640, i*k1);

end;

readln; Closegraph

end.

Пример 2.Построить график функцииy = x2 на интервале [a, b].

Решение. Для построения графика функции нужно разбить интервал [a, b] на n частей (h – шаг разбиения (b-a)/n), а затем проводить с помощью процедур line и lineto отрезки прямой, который и образуют ломаную линию графика функции. Можно, конечно воспользоваться и выводом точки (точечное построение графика). В программе построим функцию вычисления ее значений в произвольной точке и процедуру построения по точкам ломаной линии, представляющей собой график функции.

Uses crt, graf;

Var gD, gM, n: integer;

a, b: real;

function f (x: real) : real;

Begin

f:= x*x



End;

Procedure graf (x0, x1, y0, y1, n: word; a, b: real);

Var h, m, x, t1, t2 :real;

i, u, v, xv, yv: word;

begin

h:= (b-a)/n; {Нахождение шага разбиения}

m:= abs(f(a)); {Поиск значения функции в левом конце отрезка}

t1:= (x1-x0) / (b-a); t2:= (y1-y0) / (2*m);

{Построение координатных осей}

setfillstyle (1,15); bar( x0-5, y0-5, x1+5, y1+5);

xv:= round(x0-a*t1); yv:= round((t0+y1) / 2);

line (x0, yv, x1, yv);

{Установка текущего курсора в начало графика}

Moveto (x0, yv-round (f (a)*t2);

{Построение графика}

Setcolor (3);

For i:= 1 to n do

Begin

x:= a+i*h; u:= x0+round ( (x-a)*t1);

v:= yv:= round (f (x)*t2); lineto (u, v);

end;

end; {Конец процедуры}

begin

clrscr; readln (a, b, n); gD:= Detect;

Initgraph (gD, gM, ‘’);

graf (100, 500, 50, 300, n, a, b);

Readln; Closegraph

end.

Пример 3.Вращение Земли вокруг Солнца.

Решение. Организуем движение точки (Земли) по окружности, в центре которого размещается круг (Солнце). Установку точки на орбите можно осуществить по параметрическим формулам окружности:

X0 := 320 + r*sin(A);

Y0 := 240 + r*cos(A),

где r1 – радиус орбиты Земли, А- параметрический угол, меняющийся от 0 до 360 градусов. Чтобы организовать движение, достаточно в цикле устанавливать точку с координатами (x0, y0) для всех углов, принимающих значение от 0 до 360 градусов с шагом h.

Uses Crt, GRAPH;

Var i, d: integer;

fi, h, ; real;

x0, y0, r1: integer;

begin

d := detect;

InitGRAPH (d, i, 'G/Work/t7'); {Инициализация графики}

SetColor (Red);

Circle (320, 240, 10); {Рисование окружности красного цвета}

SetFillStyle (1, Red);

FloodFill (320, 240, Red); {Закраска круга (Солнца) красным цветом}

R1:= 100; h:=5; fi:= 0;

{Вращение точки по орбите. Процесс завершается нажатием любой клавиши}

Repeat

X0:= round (r1*sin (fi)) +320;

Y0:= round (r1*cos(fi)) +240;

fi:= fi+2*pi*h/360;

Putpixel (x0, y0, 15);

delay(50);

Putpixel ((x0, y0, 0);

Until keypressed;

CloseGraph

end.

Варианты заданий

Задание 1. Составить программу моделирования паркетов из:

a) прямоугольных треугольников;

e) равносторонних треугольников;

f) ромбов;

g) трапеций;

Задание 2. Разработайте программу для построения четырех различных графиков функций (y = x3 , y= ex, y = ln(x), y = sqrt (x)).

Задание 3.Разработайте динамическую модель Солнца для двух планет.

 




<== предыдущая лекция | следующая лекция ==>
Построение простейших геометрических фигур | Библиографический список


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.736 сек.