Читайте также: |
|
SetColor (<цвет>); – установка цвета элемента
SetBkColor (<цвет>); – установка цвета фона
SetFillStyle (<стиль заполнения>,<цвет>); – установка способа закраски элемента
В Паскале при выборе цвета он указывается в соответствии с приведенной таблицей.
Константа | Цвет | |
Имя | Значение | |
Black | Черный | |
Blue | Синий | |
Green | Зеленый | |
Cyan | Бирюзовый | |
Red | Красный | |
Magenta | Малиновый | |
Brown | Коричневый | |
Lightgrey | Светло-серый | |
Darkgrey | Темно-серый | |
Lightblue | Светло-голубой | |
Lightgreen | Светло-зеленый | |
Lightcyan | Светло-бирюзовый | |
Lightred | Светло-красный | |
Lightmagenta | Светло-малиновый | |
Yellow | Желтый | |
White | Белый |
Помимо обычной заливки цветом, в Паскале существует возможность выбрать стиль заполнения из следующей таблицы:
Константа | Тип | |
Имя | Значение | |
EmptyFill | Заполнение цветом фона | |
SolidFill | Заполнение текущим цветом | |
LineFill | Заполнение линиями ----- | |
LineSlashFill | Заполнение линиями ///// | |
SlashFill | Заполнение линиями///// | |
BkSlashFill | Заполнение линиями \\\\\ | |
HatchFill | Заполнение вертикально-горизонтальными тонкими штриховыми линиями ++++++ | |
XHatchFill | Заполнение ХХХХХ | |
InterLeaveFill | Штриховка по горизонтали частыми тонкими линиями | |
WideDotFill | Заполнение редкими точками | |
CloseDotFill | Заполнение частыми точками |
Пример
SetFillStyle (11,2); (11- стиль, 2 - цвет)
c) Графические примитивы
· MoveTo(x,y)
– перемещение указателя в точку с координатами (x, y)
· PutPixel(x,y,z)
– вывод точки (z – цвет)
· Line(xl,yl,x2,y2)
– отрезок с заданными координатами конца и начала.
· RecTangle(xl,yl,x2,y2)
– xl,yl,x2,y2 - координаты концов главной диагонали прямоугольника
· Bar(xl,yl,x2,y2)
– закрашенный прямоугольник цветом и стилем, определенными раньше
· Circle(x,y,r)
– окружность радиусом r
· Ellipse(x,y;ul,u2;xr,yr)
– х, у – центр эллипса; ul, u2 – угол. Отсчитывает против часовой стрелки и указывается в градусах; дуга вычерчивается от заданного начального угла ul до конечного u2; xr, yr – полуоси.
· FloodFill(x,y,z)
– заполнение внутренней или внешней области замкнутой фигуры стилем, заданным процедурой SetFillStyle ранее, (х, у) – точка внутри или снаружи фигуры, z - цвет.
· Delay(x)
– установка паузы перед выполнением следующей команды в миллисекундах. 1 секунда = 1000 миллисекунд.
· x:=GetMaxX
– определение максимального значения по оси ОХ
· y:=GetMaxY
– определение максимального значения по оси OY
Пример
Нарисовать возникающую из центра экрана окружность, увеличивающуюся и меняющую цвет от 0 до 15 с шагом 5 до границы экрана.
program circ;
uses graph, crt;
var driver, mode, i, с: integer;
begin
clrscr;
initgraph (driver, mode, ' c: \bp\bgi ');
while i<=400 do begin
inc (c);
if c=16 then c:=l;
setcolor (c);
circle (320, 240, i);
delay(l000);
setcolor (0);
circle (320, 240, i);
i:=i+5;
end;
closegraph;
readln;
end.
Активация графического модуля
Переход в графический режим экрана
с – цвет очередного круга
Закрытие видеорежима
Вопросы для самостоятельной работы
Задачи
Уровень A
149. Написать программу, которая вычерчивает на экране домик.
150. Написать программу, которая выводит на экран флаг Олимпийских игр. Изображение флага приведено ниже (одной клетке соответствует пять пикселов).
151. Написать программу, которая вычерчивает на экране кораблик.
152. Написать программу, которая вычерчивает на экране узор из 100 окружностей случайного диаметра и цвета.
153. Написать программу, которая вычерчивает на экране шестиугольник.
154. Написать программу, которая рисует на экране Государственный флаг России.
155. Написать программу, которая рисует на экране веселую рожицу желтого цвета.
156. Написать программу, которая выводит на экран узор, изображенный ниже.
157. Написать программу, которая выводит изображенный ниже узор, причем круги должны появляться по одному.
158. Написать программу, которая выводит изображенный ниже узор, причем сначала появляются красные, а затем – синие квадраты.
Уровень B
159. Написать программу, которая выводит на экран изображение шахматной доски с заданной стороной клетки.
160. Написать программу, которая выводит на экран точечный график функции у = 0,5х2 + 4х — 3. Диапазон изменения аргумента — от —15 до 5, шаг аргумента — 0,1. График вывести на фоне координатных осей, точка пересечения которых должна находиться в центре экрана.
161. Написать программу, которая рисует окружность, движущуюся по экрану.
162. Написать программу, которая выводит на экран диаграмму успеваемости учеников класса, например, по итогам контрольной работы. Исходные данные следует ввести в алфавитно-цифровом режиме работы.
163. Написать программу, которая выводит круговую диаграмму, отражающую товарооборот (в процентах) книжного магазина. Исходные данные (объем продаж в рублях по категориям: книги, журналы, открытки и канцтовары) вводятся во время работы профаммы.
164. Написать программу, которая выводит на экран изображение работающего светофора. Рекомендуемый вид светофора и алгоритм его работы приведены ниже.
Уровень C
165. Написать программу, которая вычерчивает на экране ломанную линию, состоящую из 200 звеньев, окрашенных в разные цвета, выбираемые случайным образом, причем координаты звеньев тоже выбираются случайно.
166. Написать программу, которая выводит на экран изображение идущих часов, имеющих секундную и минутную стрелки.
167. Написать программу, которая выводит на экран график функции у — 2 Sin(x) е*/5.
168. Написать программу, которая выводит на экран контур пятиконечной звезды.
13. Работа с файлами
a) с расширением txt
Работа с файлами происходит в несколько этапов, для каждого из которых существует специальная функция.
1) Установление связи с файлом
Файл связывается с программой через переменную типа text (integer, char).
assign(< переменная >, ' полный путь к файлу');
2) Определение цели открытия файла
· Только чтение
reset(< переменная >);
· Перезапись (старые данные в файле стираются).
rewrite(< переменная >);
· Дописывание в конец файла
append(< переменная >);
3) Загрузка данных из файла в переменную в Паскале
Для загрузки данных используется цикл, который посимвольно загрузит данные в переменную в Паскале с помощью специального оператора.
while not eof(< переменная >) do begin
…
end;
EOF – end of file – конец файла.
Собственно загрузку каждого символа из файла в переменную осуществляет оператор:
readln(< переменная >,<переменная2>);
Откуда? Куда?
Обязательно согласовывать тип переменных.
4) Запись данных в файл
write(< переменная >,<переменная3> ИЛИ '<текст>');
Куда? Что?
Также может использоваться оператор writeln (запись начнется с новой строки).
writeln(< переменная >,<переменная3> ИЛИ '<текст>');
Куда? Что?
5) Закрытие файла
Любойоткрытый (assign) файл нужно закрыть:
close(< переменная >);
Последовательность закрытия роли не играет.
Пример
Проверим, является ли содержимое файла in_f.txt (необходимо создать перед запуском программы) числом, и запишем ответ в файл out_f.txt (создавать необязательно).
Program faily;
uses crt;
var inf,outf: text; t: string; ch: longint; o: boolean; i: integer;
begin
clrscr;
assign(inf,‘c:\in_f.txt’);
assign(outf,‘c:\out_f.txt’);
reset(inf);
rewrite(outf);
while not eof(inf) do read(inf,t);
val(t,ch,o);
if o=true then write(outf,‘не является’) else write(outf,‘является’);
close(inf);
close(outf);
end.
Вопросы для самостоятельной работы
Задачи
Уровень A
169. Написать программу, которая на сменном диске компьютера (А:) создает файл numbers.txt и записывает в него 5 введенных пользователем целых чисел (каждое число – в отдельную строку).
170. Напишите программу, которая дописывает в файл a:\numbers.txt 5 введенных пользователем целых чисел. Убедитесь при помощи редактора текста, что в файле находятся 10 чисел.
171. Написать программу, которая выводит на экран содержимое файла a:\numbers.txt.
172. Написать программу, которая вычисляет среднее арифметическое чисел, находящихся в файле a:\numbers.txt.
173. Написать программу, которая позволяет просматривать текстовые файлы (выводит на экран содержимое файла), например, файлы исходных программ Turbo Pascal. Имя просматриваемого файла должно вводиться во время работы программы.
174. Написать программу, которая дописывает в файл phone.txt, находящийся на диске C:, фамилию и номер телефона, например, вашего товарища. Если файла на диске нет, то программа должна создать его.
175. Написать программу, используя которую можно за один сеанс работы добавить информацию о нескольких людях в файл a:\phone.txt.
176. Написать программу, которая позволяет найти нужные сведения в телефонном справочнике (a:\phone.txt). Программа должна запрашивать фамилию человека и выводить его телефон. Если в справочнике есть одинаковые фамилии, то программа должна вывести список всех людей, имеющих эти фамилии.
177. Напишите программу, которая объединяет возможности программ Добавление в телефонный справочник И Поиск в телефонном справочнике.
178. Написать универсальную программу тестирования. Тест, последовательность вопросов и варианты ответов должны находиться в текстовом файле. Количество вопросов теста не ограничено. Однако предлагается ввести следующее ограничение: текст вопроса и альтернативных ответов не должен занимать более одной строки экрана. Программа должна выставлять оценку по следующему правилу: ОТЛИЧНО — за правильные ответы на все вопросы, ХОРОШО — если испытуемый правильно ответил не менее, чем на 80% вопросов, УДОВЛЕТВОРИТЕЛЬНО — если правильных ответов более 60%, и ПЛОХО — если правильных ответов меньше 60%.
179. Напишите программу, которая по желанию пользователя выводит таблицу пересчета из дюймов в миллиметры на экран или в файл.
IV. Список использованной литературы:
1. И. Г. Семакин, К К. Хеннер. «Информатика. Задачник-практикум в 2 томах», том 1. Издательство «БИНОМ». Москва, 2003.
2. С. А. Немнюгин. «Н50 Turbo Pascal». Издательство «Питер». Санкт-Петербург, 2000.
3. Зуев Е.А. «Язык программирования Turbo Pascal 6.0, 7.0». Издательство «Веста», 1993.
4. «Учебник по языку Turbo Pascal в задачах и примерах», Интернет-страница.
Дата добавления: 2015-11-14; просмотров: 59 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Характеристика и особенности языка 3 страница | | | Т Е Х Н О Л О Г И Я П Р О Ц Е ДУ Р Ы |