Задание 1 «Определи цвет». Напишите программу, которая создает на экране разноцветную картинку (используются несколько стандартных цветов). Затем щелчок мыши по экрану выдает название цвета, на который попадет мышь.
Например, рисуем светофор. Наводим мышь, щелкаем по цвету и на свободном поле (напротив цвета) появляется надпись — «Красный цвета, прохода нет» и т. д.
Задание 2 «Назови фигуру». Напишите программу, которая рисует на экране несколько геометрических фигур (квадрат, круг, треугольник, пятиугольник и т. д.) и заливает их разным цветом (стандартным, код которого известен). Затем по щелчку мыши на фигуре выдает название этой фигуры.
Задание 3 «Найди цвет». Напишите программу, которая задает несколько квадратов известного расположения и цвета. Затем предлагается щелкнуть по квадрату указанного цвета. Если щелчок происходит в нужной области, по выводится — «Молодец, верно!», иначе предлагается повторить попытку (до тех пор пока не будет найден верный цвет).
Как нарисовать кота из цифры 2 vs 3 #shorts
О блоге на 23:55 Комментариев нет:
вторник, 16 апреля 2013 г.
Модуль Events (продолжение)
1. Событие нажатие на клавиши
Пример программы, осуществляющая движение графического окна с помощью клавиатуры.
uses GraphABC,Events;
procedure KeyDown(Key: integer);
begin
case Key of
VK_Left: SetWindowLeft(WindowLeft-2);
VK_Right: SetWindowLeft(WindowLeft+2);
VK_Up: SetWindowTop(WindowTop-2);
VK_Down: SetWindowTop(WindowTop+2);
end;
end;
begin
SetWindowCaption(‘Двигайте окно стрелками’);
OnKeyDown:=KeyDown;
end.
Задание 1. Увеличьте шаг движения окна с помощью клавиатуры.
Задание 2. Измените программу таким образом, чтобы при нажатии на курсор влево окно двигалось по диагонали влево и вниз, при нажатии курсора вправо — вправо и вверх.
2. Событие изменение размеров графического окна
Пример программы, меняющей форму и размеры эллипса в зависимости от изменения размеров окна.
uses GraphABC,Events;
procedure Resize;
begin
FillRect(0,0,WindowWidth,WindowHeight);
Ellipse(0,0,WindowWidth,WindowHeight);
end;
begin
OnResize:=Resize;
Resize;
end.
Задание 4. Измените в программе эллипс на ромб, вершины которого лежат на середине сторон окна.
О блоге на 01:24 Комментариев нет:
понедельник, 8 апреля 2013 г.
Модуль Events
1. Обзор
- нажатие мыши OnMouseDown
- отпускание мыши OnMouseUp
- перемещение мыши OnMouseMove
- нажатие клавиши OnKeyDown
- отпускание клавиши OnKeyUp
- нажатие символьной клавиши OnKeyPress
- изменение размеров графического окна OnResize
- закрытие графического окна OnClose
Переменные, соответствующие событиям, описаны в модуле Events следующим образом:
7 Людей, Которые Получили Суперспособности в Результате Несчастного Случая
var
OnMouseDown, OnMouseUp, OnMouseMove: procedure (x,y,mousebutton: integer);
OnKeyDown, OnKeyUp: procedure (key: integer);
OnKeyPress: procedure (ch: char);
OnResize, OnClose: procedure;
Параметры x и y в обработчиках OnMouseDown, OnMouseUp и OnMouseMove определяют координаты курсора мыши в момент наступления события, параметр mousebutton равен 0, если кнопка мыши не нажата, 1, если нажата левая кнопка мыши, и 2, если нажата правая кнопка мыши. Параметр key в обработчиках OnKeyDownи OnKeyUp определяет виртуальный код нажатой клавиши. Параметр ch в обработчике OnKeyPress определяет нажатый символ. Если переменная-событие OnKeyPress имеет обработчик, то графическое окно не закрывается по нажатию клавиши Esc.
2. События с мышью
Пример программы, в которой каждый раз при щелчке мыши по графическому окну в окно вывода будет выводиться «Щелчок мыши!»
uses GraphABC, Events;
procedure MouseDown(x,y,mb: integer);
write(‘Щелчок мыши!’);
OnMouseDown:=MouseDown;
Задание 1. Измените эту программу таким образом, чтобы вывод данного текста происходил в графическое окно с задержкой на экране и последующим очищением окна.
Указание: для вывода текста в графическое окно используйте процедуру TextOut, для задержки sleep, для очистки окна ClearWindow.
Задание 2. Доработайте программу таком образом, чтобы текст выводился в точку, где произошел щелчок мыши.
Задание 3. Напишите программу, которая оставляет в точке, где происходит щелчок мыши, штамп (штамп — это некоторое графическое изображение, размер его не меняется).
Пример программы, рисование мышью.
uses GraphABC, Events;
procedure MouseDown(x,y,mb: integer);
begin
MoveTo(x,y);
end;
procedure MouseMove(x,y,mb: integer);
begin
SetWindowCaption(‘(‘+IntToStr(x)+’,’+IntToStr(y)+’)’);
if mb=1 then LineTo(x,y);
end;
begin
OnMouseDown:=MouseDown;
OnMouseMove:=MouseMove
end.
Задание 4. Измените цвет и толщину пера (цвет- красный, толщина — 10 пиксел).
Задание 5. Изменение цвета должно происходить каждый раз после отпускания мыши (цвет — случайный).
3. События с окном
Пример программы, демонстрирующей обработку события OnClose (закрытие окна).
uses GraphABC,Events;
procedure CloseWin;
var i: integer;
begin
for i:=1 to 20 do
begin TextOut(10,20*i,’Не хочу закрываться!’);
Sleep(100); end;
end;
begin
OnClose:=CloseWin;
end.
Задание 6. Измените программу таким образом, чтобы при закрытии окна трижды менялся его цвет (случайным образом).
О блоге на 23:22 5 комментариев:
понедельник, 1 апреля 2013 г.
Шрифт
1. Действия со шрифтом
TextOut(x,y,s) — выводит строку s в позицию (x,y) (точка (x,y) задает верхний левый угол прямоугольника, который будет содержать текст из строки s);
SetFontColor(color) — цвет шрифта;
SetFontSize(sz) — размер шрифта в пунктах;
SetFontName(name) — наименование шрифта (наиболее популярные Times, Arial и Courier New);
SetFontStyle(fs ) — стиль шрифта.
Стили шрифта:
fsNormal – обычный;
fsBold – жирный;
fsItalic – наклонный;
fsBoldItalic – жирный наклонный;
fsUnderline – подчеркнутый;
fsBoldUnderline – жирный подчеркнутый;
fsItalicUnderline – наклонный подчеркнутый;
fsBoldItalicUnderline – жирный наклонный подчеркнутый.
Пример программы, выводящей слово ‘Привет!» в окно, начиная с точки (10,10) с заданным цветом, размером и стилем.
begin
SetFontColor(clRed);
SetFontSize(48);
SetFontStyle(fsBold);
TextOut(10,10,’Привет!’)
end.
Задание 1. Измените положение текста, его размер, цвет и стиль.
Задание 2. Напишите программу, выводящую следующий текст:
Для вывода используйте цикл! Цвет текста задается случайным образом.
2. Дополнительно о шрифте
tw:=TextWidth(s) — возвращает ширину строки s в пикселях при текущих настройках шрифта;
th:=TextHeight(s) — возвращает высоту строки s в пикселях при текущих настройках шрифта.
Пример программы, выводящей текст по центру окна. Обратите внимание на процедуры SetWindowCaption и CenterWindow.
uses GraphABC;
var
s: string;
tw,th: integer;
begin
SetWindowCaption(‘Текст по центру’); //задает заголовок окна
s:=’Width
SetWindowSize(700,300);
CenterWindow; // Центрирует графическое окно по центру экрана
SetFontName(‘Times’); SetFontSize(50);
tw:=TextWidth(s); th:=TextHeight(s);
TextOut(WindowWidth div 2 — tw div 2,WindowHeight div 2 — th div 2,s);
end.
Задание 3. Измените программу таким образом, чтобы текст вписывался в верхнюю четверть окна (точно по центру). Возможно надо будет изменить и размер шрифта.
Задание 4. Напишите программу, выводящую 4 строки в центр каждой из четырех четвертей окна (см. картинку).
О блоге на 22:58 4 комментария:
вторник, 19 марта 2013 г.
Картинки
1. Решение задач
Задача 1. Напишите программу, рисующую треугольники в видимой части окна. Вершины задаются случайным образом (вырожденный треугольник допустим).
Задача 2. Напишите программу, рисующую вот такую фигуру (центр фигуры — фиксированная точка, конец лучика — случайная точка на видимой части окна). Размер пузырика — случайный из небольшого диапазона, зависящего от размеров окна.
2. Использование картинок
Для работы с готовым изображением используются следующие процедуры и функции:
n:=LoadPicture(fname) – загружает рисунок из файла с именем fname (строковый тип, пишется в ‘ ‘) в оперативную память и возвращает описатель рисунка в целую переменную n; если файл не найден, то возникает ошибка времени выполнения. Загружать можно рисунки в формате .bmp, .jpg или .gif.
DrawPicture(n,x,y) — выводит рисунок с описателем n в позицию (x,y) графического окна.
DestroyPicture(n) — удаляет рисунок с описателем n из оперативной памяти, описатель рисунка при этом становится недействительным.
Задача 1. Нарисуйте в графическом редакторе Paint картинку рыбки, размером 100х100 пиксел и сохраните ее в файл под именем fish.bmp. Напишите программу в Паскале, выводящую рубку в центр видимой части окна.
Пример, программы, выводящей изображение 1.jpg в верхний левый угол окна:
uses GraphABC;
var
pic: integer;
begin
pic:=LoadPicture(‘1.jpg’);
DrawPicture(pic,0,0);
end.
Задача 2. Напишите программу, двигающую вашу рыбку по какой-нибудь линии в окне. Пример рабочей программы можно посмотреть в разделе SAMPLES->GraphABC->movingobject.pas
О блоге на 00:03 Комментариев нет:
понедельник, 4 марта 2013 г.
Генератор случайных чисел
1. Оператор RANDOM
В программировании часто возникают задачи, при решении которых необходимо получать случайные числа из некоторого диапазона. Алгоритмы, реализующие такие последовательности не могут быть поистине случайными, а получаются в результате некоторых вычислений. Такие наборы называются псевдослучайными.
Random — функция (типа real) возвращает случайное вещественное в диапазоне [0..1)
Random(x) — функция типа integer (x — integer) возвращает случайное целое в диапазоне от 0 до x-1
Например, оператор random(10)-5 задает числа от -5 до 4 (10 штук).
Задание 1.
Напишите генератор случайных чисел, задающий следующие диапазоны:
- от 0 до 100;
- от 0 до 99;
- от -10 до 10;
- от -13 до 14.
2. Использование оператора Random в анимации
Для задания положения, размера или цвета объекта можно использовать генератор случайных чисел. Рассмотрим задачу, в которой случайным является положение точки на экране.
Задача 1. Засыпать окно (учитывать изменение размеров) точками.
uses GraphABC;
var x,y,i:integer;
begin
for i:=1 to 10000 do
begin
x:=random(WindowWidth)+1; //WindowWidth — возвращает ширину окна
y:= random(WindowHeight)+1; // WindowHeight — возвращает высоту окна
SetPixel(x,y,clblack);
end;
end.
Задача 2. Засыпать окно точками разного цвета.
Изменения надо внести только в оператор рисования точки, а именно в определение цвета:
SetPixel(x,y,RGB(Random(256),Random(256),Random(256)));
Задача 3. Напишите программу, рисующую и стирающую закрашенные шарики случайным цветом, случайного размера (не более 1/10 от ширины окна) и случайного расположения, не подходящего к границам окна на расстояние ближе 1/10 ширины окна.
Для задержки изображения используйте оператор Sleep(x):
Sleep(ms) — процедура (ms — integer) осуществляет паузу в выполнении программы на ms миллисекунд.
Задача 4. Напишите программу, рисующую звезды (звезда — это набор отрезков разной длины, выходящих из одной точки). Размер звезды должен быть ограничен 1/10 ширины окна, количество лучей от 3 до 20. Положение центра звезды и ее цвета — случайно. Для рисования звезды используйте процедуру.
Источник: przpascal12.blogspot.com
Вывести на экран два шара: красный шар стоит на месте, а зеленый движется по горизонтали к нему навстречу — Pascal ABC
Написать программу, которая выводит на экран два шара: красный шар стоит на месте, а зеленый движется по горизонтали к нему навстречу, После столкновения зеленый шар останавливается на месте, a красный шар начинает падать вниз (движение по вертикали).
Код к задаче: «Вывести на экран два шара: красный шар стоит на месте, а зеленый движется по горизонтали к нему навстречу»
Листинг программы
uses graphABC; var x1,x2,y1,y2,r:integer; begin r:=20; x1:=windowwidth div 2; x2:=windowwidth-r; y1:=windowheight div 2; y2:=y1; lockdrawing; while x2>=x1+2*r do begin clearwindow; setpencolor(clRed); setbrushcolor(clRed); circle(x1,y1,r); setpencolor(clGreen); setbrushcolor(clGreen); circle(x2,y2,r); sleep(50); x2:=x2-5; redraw; end; while y1
Источник: studassistent.ru
Презентация на тему Язык программирования Pascal — графика
Графика Для работы в графическом режиме необходимо подключение модуля GraphABC. Uses GraphABC; Для работы с текстом — модуль Crt. Uses Crt; program …; uses crt, GraphABC; var …; begin … End.
- Главная
- Информатика
- Язык программирования Pascal — графика
Слайды и текст этой презентации
Слайд 1Язык программирования Pascal
Графика
МИНИСТЕРСТВО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ, ПОДГОТОВКИ И РАССТАНОВКИ КАДРОВ РЕСПУБЛИКИ
САХА (ЯКУТИЯ)
ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ РЕСПУБЛИКИ САХА (ЯКУТИЯ)
«РЕГИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ
КОЛЛЕДЖ В Г.МИРНОМ»
Слайд 2Графика
Для работы в графическом режиме необходимо подключение модуля GraphABC.
Uses GraphABC;
Для работы с текстом — модуль Crt. Uses
Crt;
program …;
uses crt,
GraphABC;
var …;
begin …
End.
Управление экраном SetWindowWidth(w) -Устанавливает ширину графического окна;
SetWindowHeight(h) — Устанавливает высоту графического окна;
Слайд 3Графика
Точка SetPixel(x,y,color) – Закрашивает один пиксель с координатами (x,y)
цветом color
program tochka;
uses GraphABC;
begin
SetPixel(300,200,clred);
end.
Линии
Line(x1,y1,x2,y2) — рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2). x1,y1
Program liniay;
uses GraphABC;
begin line(100,50,500,250);
x2,y2 end.
Слайд 4Графика
Цвет линии SetPenColor(color) – устанавливает цвет пера, задаваемый параметром
color.
Program liniay;
uses GraphABC;
begin setpencolor(clred);
line(30,30,400,350);
end.
Слайд 5Графика
Прямоугольник Rectangle(x1,y1,x2,y2) – рисует прямоугольник, заданный координатами противоположных вершин
(x1,y1) и (x2,y2).x1,y1
Program pryamougolnik;
uses GraphABC;
begin
x2,y2 Rectangle(50,50,200,200);
Слайд 6Графика
Заливка цветом FloodFill(x,y,color) – заливает область одного цвета цветом
color, начиная с точки (x,y).x1,y1 Program pryamougolnik;
uses GraphABC;
x2,y2
begin Rectangle(50,50,200,200);
FloodFill(100,100,clBlue);
End.
Треугольник Рисуется процедурами Line(x1,y1,x2,y2); LineTo(x,y);
Program treugolnik;
uses GraphABC;
begin setpenwidth(20);
setpencolor(clred);
line(300,100,500,300);
lineto(100,300);
lineto(300,100);
floodfill(300,200,clgreen);
end.
Слайд 7Графика
Окружность Circle(x,y,r) — рисует окружность с центром в точке
(x,y) и радиусом r.
Program circle;
uses GraphABC;
r
begin
x1,y1 Circle(500,200,100);
FloodFill(500,200,clred);
End.
Слайд 8Графика
Дуга окружности Arc(x,y,r,a1,a2) — Рисует дугу окружности с центром
в точке (x,y) и радиусом r, заключенной между двумя лучами,
образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки).
Program duga;
uses GraphABC;
x,y
Begin SetPenWidth(10);
Arc(300,250,150,45,135);
End.
Слайд 9Операторы
SetWindowHeight(h); — Устанавливает высоту графического окна
SetWindowWidth(w); — Устанавливает ширину графического
окна
ClearWindow; — очищает графическое окно белым цветом.
ClearWindow(color); — очищает
графическое окно указанным цветом.
SetPixel(x,y,color); — Закрашивает один пиксел с координатами (x,y) цветом color
LineTo(x,y); — рисует отрезок от текущего положения пера до точки (x,y); координаты пера при этом также становятся равными (x,y).
Line(x1,y1,x2,y2); — рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2).
SetPenColor(color); — устанавливает цвет пера, задаваемый параметром color.
Слайд 10Операторы
SetPenWidth(n); — устанавливает ширину (толщину) пера, равную n пикселям.
Rectangle(x1,y1,x2,y2);
— рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).
FloodFill(x,y,color); — заливает область одного цвета цветом color, начиная с точки (x,y).
SetBrushColor(color); — устанавливает цвет кисти, заливка кистью распространяется на замкнутый контур, описание которого следует за процедурой установки цвета кисти.
Circle(x,y,r); — рисует окружность с центром в точке (x,y) и радиусом r.
Ellipse(x1,y1,x2,y2); — рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2).
Слайд 11Операторы
SetFontName(‘name’);- устанавливает наименование шрифта.
SetFontColor(color); — устанавливает цвет шрифта.
SetFontSize(sz); — устанавливает
размер шрифта в пунктах.
SetFontStyle(fs); — устанавливает стиль шрифта.
Слайд 12Стиль шрифта:
fsNormal – обычный;
fsBold – жирный;
fsItalic – наклонный;
fsBoldItalic – жирный наклонный;
fsUnderline – подчеркнутый;
fsBoldUnderline – жирный
подчеркнутый;
fsItalicUnderline – наклонный подчеркнутый;
fsBoldItalicUnderline – жирный наклонный подчеркнутый
Слайд 13Примеры
Задача:
Нарисовать
Слайд 14Программа
Program Seventh; uses GraphABC; Begin Line (200,200,400,200); LineTO (300,140); lineTO (200,200); FloodFill (300,170,clblue); Line
(200,200,400,200); LineTo (300,260); LineTo (200,200); FloodFill (300,230,cllime); circle (160,200,40); FloodFill (160,200,clred); circle (440,200,40); FloodFill (440,200,clyellow); End.
Слайд 15Пример
Рисование шара
uses GraphABC;
var I,X,Y,D: integer;
begin
X:=20; Y:=30; D:=100;
ClearWindow;
SetBrushColor(clGreen);
Ellipse(X+I,Y,X+I+D,Y+D);
end.
Слайд 16Пример
Движение шара
uses GraphABC;
var I,X,Y,D: integer;
begin
X:=20; Y:=30; D:=100;
for i:=1 to 500 do
begin
ClearWindow;
SetBrushColor(clGreen);
Ellipse(X+I,Y,X+I+D,Y+D);
Sleep(1);
end;
end.
Слайд 17Пример
Движение шара (без мерцания)
uses GraphABC;
var I,X,Y,D: integer;
begin X:=20; Y:=30; D:=100;
LockDrawing;
for
i:=1 to 500 do
begin
ClearWindow;
SetBrushColor(clGreen);
Ellipse(X+I,Y,X+I+D,Y+D);
Redraw;
Sleep(1);
end;
end.
Слайд 18Пример
uses GraphABC;
var I,X,Y,D,X1,X2: integer;
begin X:=20; Y:=30; D:=70;
X1:=350; X2:=500; LockDrawing; for I:=1 to X1-D do // зеленый
шар движется, красный стоит на месте
begin
ClearWindow;
SetBrushColor(clGreen);
Ellipse(X+I,Y,X+I+D,Y+D);
SetBrushColor(clRed);
Ellipse(X+X1,Y,X+X1+D,Y+D);
Redraw;
Sleep(5);
end;
for I:=X1 to X2 do // зеленый шар стоит на месте, красный шар движется
begin
ClearWindow;
SetBrushColor(clGreen);
Ellipse(X+X1-D,Y,X+X1,Y+D);
SetBrushColor(clRed);
Ellipse(X+I,Y,X+I+D,Y+D);
Redraw;
Sleep(5);
end;
end.
Слайд 19Задание
1. Написать программу, которая выводит на экран шар движущийся
по вертикали.
2. Написать программу, которая выводит на экран два
шара: красный шар стоит на месте, а зеленый движется по горизонтали к нему навстречу. После столкновения зеленый шар останавливается на месте, а красный шар начинает падать вниз (движение по вертикали).
3. Написать программу, которая выводит на экран два шара: красный шар стоит на месте, а зеленый движется по горизонтали к нему навстречу. После столкновения зеленый шар двигается в обратном направлении, а красный шар начинает падать вниз (движение по вертикали).
4. Написать программу, в которой окружность «пробегает» по периметру прямоугольника.
5. Написать программу «Круги на воде»: на экране в произвольном месте появляется окружность, которая сначала увеличивается, а потом уменьшается, затем так же появляются другие окружности. Начальные радиусы у окружности всегда разные
Источник: theslide.ru