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

Алгоритмизация и программирование. Практическое пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
41
ся целой переменной и может быть использовано для задания цвета графического объекта наряду с графическими константами.
13.4. Цвет фона графического окна задается оператором ClearWindow(d);, где d — графическая константа или целая переменная, которой присвоено значение с помощью функции
RGB(a,b,c). По умолчанию фон окна — белый.
13.5. Для задания цвета графических объектов используются операторы:
SetBrushColor(d); задание цвета фигур; SetPenColor(d); задание цвета линий и контуров фи-
гур. Параметр d определяет цвет по правилам из п. 13.4. По умолчанию цвет фигур — белый, цвет линий — черный.
13.6. Линии и контуры фигур имеют по умолчанию толщину в 1 пиксель. Чтобы их было лучше видно, можно задать толщину линии оператором SetPenWidth(k);, где k — толщина ли­нии в пикселях.
13.7. Для вывода в графическое окно одного пикселя применя­ется команда SetPixel(x,y,d);, где числа или целые пере­менные x,y задают координаты точки в пикселях по горизонтали и вертикали, отсчитанные от левого верхнего угла графического окна. Параметр d определяет цвет точки по правилам из п. 13.4.
13.8. Для вывода в графическое окно фигур и линий сначала нужно задать цвет заливки командой SetBrushColor, цвет ли­ний и контуров командой SetPenColor и толщину линий ко­мандой SetPenWidth. Координаты местоположения фигур от­считываются от левого верхнего угла окна в пикселях. Примеры задания некоторых простых фигур:
Rectangle(x1,y1,x2,y2); — прямоугольник с коорди-
натами левого нижнего угла (x1,y1) и правого верхнего
(x2,y2);
Circle(x,y,r); круг с координатами центра (x,y)и
радиусом r;
Line(x1,y1,x2,y2); отрезок от точки (x1,y1)до
точки (x2,y2);
42
Ellipse(x1,y1,x2,y2); — эллипс, вписанный в прямо­угольник с координатами левого нижнего угла (x1,y1)и пра­вого верхнего (x2,y2).
13.9. Перед выводом текста в графическое окно нужно задать
шрифт и его параметры операторами:
SetFontName('Название'); — задание шрифта, назва- ние шрифтов можно узнать в любом офисном приложении, например в текстовом редакторе Word ('Arial','Times New
Roman' и т. д.);
SetFontStyle(Начертание); задание начертания (ес-
ли нужно), варианты параметра функции задаются встроенными константами:
fsBold полужирный;
fsItalic курсив;
fsUnderline подчеркнутый;
fsBoldItalic полужирный курсив;
fsBoldUnderline полужирный подчеркнутый;
fsItalicUnderline подчеркнутый курсив;
fsBoldItalicUnderline полужирный, подчеркнутый
курсив;
SetFontSize(n); задание размера шрифта, равное n;
SetFontColor(d); задание цвета шрифта. Параметр d
описан в п. 13.4.
Фон прямоугольника, в котором помещается текст, задается командой SetBrushColor.
13.10. После задания всех необходимых параметров вывод
текста в графическое окно осуществляется оператором TextOut(x,y,'Текст');, где (x,y) — координаты начала текста. Третий параметр функции — либо выводимый текст в кавычках, либо строковая переменная без кавычек.
13.11. Оператор TextOut может выводить только строковые
переменные. Если нужно вывести значение целой или веще­ственной переменной, ее нужно преобразовать к строковому типу оператором str(a,b);, где a — целая или вещественная пе­ременная типа integer или real, b — строковая переменная типа string. После преобразования можно вывести в графиче­ское окно значение переменной командой textout(x,y,b);.
43
program My11; uses GraphABC; var a:integer; b:string; begin SetWindowCaption('Графика'); SetWindowSize(750,520); ClearWindow(clOlive); textout(8,9,'Без парам-ов'); setpixel(40,150,clRed); setbrushcolor(clteal); setpencolor(clpurple); SetPenWidth (4); circle(100,105,20); line(120,200,140,250); setbrushcolor(clOlive); SetFontName('Arial'); SetFontStyle(fsBold); SetFontSize(20); setfontcolor (clred); textout(99,9,'С парам-ми'); a:=rgb(20,200,0); setfontcolor (a); textout(30,300,'Число'); a:=5; str(a,b); textout(150,300,b);
end.
Оператор назначения имени Блок подключения модуля Заголовок блока переменных Оператор описания Оператор описания Заголовок блока операторов Оператор названия окна Оператор размеров окна Оператор фона окна Оператор вывода текста Оператор вывода точки Оператор цвета заливки Оператор цвета линий Оператор толщины линий Оператор вывода круга Оператор вывода отрезка Оператор фона заливки Оператор выбора шрифта Оператор выбора начертания Оператор размера шрифта Оператор цвета шрифта Оператор вывода текста Оператор задания оттенка Оператор цвета шрифта Оператор вывода текста Оператор присваивания Оператор преобразования Оператор вывода строковой пе­ременной Конец программы
Пример 11:
1. Наберите программу My11 из примера 11, сохраните ее.
2. Запустите выполнение программы My11. Найдите заголовок
графического окна. Изучите работу операторов вывода точки, отрезка, круга, текстов и значения переменной.
3. По аналогии с программой My11 постройте программу
My11а, выводящую в заданное графическое окно фигуры, тексты и значения числовых переменных.
Задание 13
44
Начало, конец, прерывание алгоритма
Ввод, вывод данных
Присваивание значений данным, процесс их изменения
Выбор решения, проверка условия
Два варианта соединительных линий
СВОЙСТВА И ВИДЫ АЛГОРИТМОВ
14. Основные понятия алгоритмизации
14.1. Алгоритм — способ решения вычислительных и других за- дач, точно предписывающий, как и в какой последовательности по­лучить результат, однозначно определяемый исходными данными.
14.2. Свойства алгоритмов:
однозначность; наличие входных данных и результата; конечность; массовость.
14.3. Структуры алгоритмов:
линейные; разветвляющиеся; циклические; сложные.
14.4. Способы записи алгоритмов:
словесное описание (на естественном языке); схема (блок-схема); программа (на языке программирования).
14.5. Теорема Бема—Якопини: любой неструктурный алго- ритм может быть представлен эквивалентным ему структурным алгоритмом, т. е. линейным, разветвляющимся, циклическим или их комбинацией.
15. Условные обозначения в схемах алгоритмов
45
program My11; uses CRT; var
c,d:real; begin
write (’Введите число ’);
readln (c);
d:=c*c;
writeln (’Квадрат = ’,d)
end.
Начало
Вывод текста
Ввод значения с
d=c*c
Вывод значения d
Конец
П р и мечания. 1. Блоки схемы алгоритма соединяются ли-
ниями (со стрелками или без них).
2. В случае ветвления алгоритма над линиями, отходящими от
блока проверки условия, надписывают возможные варианты. На­пример: условие А < В над отходящими ветвями Да и Нет со­ответственно.
3. При наличии в алгоритме цикла соединительные линии обычно рисуют в виде стрелок (либо все линии алгоритма, либо только линии возврата к началу цикла).
4. В больших сложных алгоритмах блоки нумеруют.
16. Виды алгоритмов
16.1. Линейный алгоритм.
Пример 12 и блок-схема алгоритма (расчет квадрата числа):
46
program My12; uses CRT; var a,b,c:real; begin
write (’Ввод 2 чисел ’);
readln (a,b);
if a>b then
c:=a else
c:=b;
writeln (’Максимум = ’,c);
end.
Начало
Вывод текста
Ввод значений a,b
a>b
Да Нет c=a
c=b
Вывод значения c
Конец
16.2. Разветвляющийся алгоритм.
Пример 13 и блок-схема алгоритма (выбор максимума из двух
чисел):
П р и мечание. Для этой схемы взят уже рассмотренный
пример программы 7. В данном случае наша цель — сопоставить блок-схему алгоритма и программу на языке Паскаль.
47
program My13;
var a:array[1..4] of integer; i,b:integer; begin
write (’Введите 4 числа ’);
readln (a[1],a[2],a[3],a[4]);
b:=0;
for i:=1 to 4 do
b:=b+a[i];
writeln (’Сумма ’,b);
end.
Начало
Вывод текста
Ввод значений a1…a4
b=0, i=1
i<=4
Да Нет b=b+a
i
i=i+1
Вывод значения b
Конец
16.3. Циклический алгоритм.
Пример 14 и блок-схема алгоритма (расчет суммы четырех
чисел):
П р и мечание. Для этой схемы взят уже рассмотренный
пример 9.
48
Обратите внимание на реализацию в блок-схеме алгоритма опе-
ратора счетного цикла for i:=1 to 4 do. В алгоритме нам пришлось присвоить начальное значение счетчику цикла i=1, за­тем в теле цикла организовать увеличение счетчика i на 1, и, на­конец, вставить условие продолжения цикла i<=4. Все эти опе­рации заключены в одном операторе языка Паскаль for do.
Задание 14
1. Ознакомьтесь с информацией, изложенной в пп. 14, 15.
2. Внимательно изучите примеры блок-схем алгоритмов в
п. 16, сопоставьте каждый элемент схемы с соответствующим оператором языка Паскаль.
3. Составьте блок-схемы алгоритмов для Ваших программ
My7a, My9a.
ИТОГОВОЕ ЗАДАНИЕ
1. Изучите условия задачи, выданной Вам преподавателем.
2. Постройте алгоритм решения задачи. Изобразите алгоритм в виде блок-схемы с помощью графических средств редактора Word или нарисуйте на листе бумаги (по Вашему желанию).
3. Запрограммируйте данный алгоритм на языке Паскаль.
49
ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ Паскаль
4
1. Интегрированная инструментальная среда Паскаль …………
2. Структура программы. Назначение констант. Описание пере-
менных целого и вещественного типа. Оператор присваивания ……
5
3. Расчет значений целых и вещественных переменных. Арифме-
тические выражения. Встроенные математические функции. Поря­док действий …………………………………………………………..
9
4. Комментарии. Операторы ввода и вывода …………………….
11
5. Подключаемые модули…………………………………………...
16
6. Переменные символьного и строкового типа. Операции с ними
17
7. Переменные логического типа. Операции с ними…………….
22
8. Массивы переменных …………………………………………..
26
9. Условные операторы ……………………………………………
28
10. Операторные скобки …………………………………………..
32
11. Оператор цикла (счетный) ……………………………………
33
12. Оператор цикла с проверкой условия ………………………..
36
13. Работа с графическими объектами
40
СВОЙСТВА И ВИДЫ АЛГОРИТМОВ ……………………….
44
14. Основные понятия алгоритмизации …………………………
15. Условные обозначения в схемах алгоритмов ……………….
16. Виды алгоритмов ………………………………………………
45
ИТОГОВОЕ ЗАДАНИЕ …………………………........................
48
ОГЛАВЛЕНИЕ
Учебное издание
АЛГОРИТМИЗАЦИЯ
И ПРОГРАММИРОВАНИЕ
Практическое пособие
Издание 2-е, переработанное и дополненное
Редактор О. Е. Тимощук Компьютерная верстка Т. И. Павловой
Подписано к печати 27.03.2015 г. Бум. тип. № 1.
Гарнитура “Times New Roman Cyr”. Ризография. Печ. л. 3,0.
Уч.-изд. л. 2,5. Тираж 80 экз. Заказ 2198.
Редакционно-издательская лаборатория
Санкт-Петербургского юридического института (филиала)
Академии Генеральной прокуратуры РФ
Отпечатано в Санкт-Петербургском юридическом институте (филиале)
Академии Генеральной прокуратуры РФ
191104, Санкт-Петербург, Литейный пр., 44
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]