- •1. Введение
- •2. Операторы языка
- •Var Описание переменных;
- •3. Организация ветвлений
- •4. Логические функции
- •5. Организация циклов
- •Оператор цикла с предусловием имеет вид
- •Var I,j:integer; X,y,r:real;
- •Program p5_8;
- •Var y,X,z: integer;
- •6. Массивы
- •Var I,j: integer;
- •Var n,I,j:integer; s,y,sr:real; X: array [1..10,1..5] of real;
- •Var I,j,n,m: integer;
- •X:array [1..10] of integer;
- •Var n,I,j,st,kl,k:integer;
- •7. Символьные данные
- •Var n:integer;y:string;
- •Var X:string[1]; d:string; I:integer;
- •8. Записи
- •Var X:vr; y:array [1..5] of vr;
- •9. Файлы
- •Ввод и вывод информации для типизированных и текстовых файлов производится процедурами:
- •10. Подпрограммы
- •11. Графика
- •Var d,I,m,rx,ry:integer;
- •Initgraph(d,m,''); {переход в графику}
- •Var d,m,rx,ry:integer;
- •X,y,xn,xk,ymin,ymax,dx:real; msy,msx:real;
u
program
P11_1
uses
graph; begin
ry:=getmaxy;
rx:=getmaxx;{размер экрана}
line(0,0,rx,ry);{первая диагональ}
line(0,ry,rx,0);{вторая диагональ}
for
i:=1 to 4 do begin{окружности}
circle(rx div 2,ry div
2,50*i); end;
readln;{пауза для просмотра результата}
closegraph;{закрытие графического режима} end.
Var d,I,m,rx,ry:integer;
Initgraph(d,m,''); {переход в графику}
Var d,m,rx,ry:integer;
X,y,xn,xk,ymin,ymax,dx:real; msy,msx:real;
function f(x:real):real; {вычисление функции}
begin f:=sin(x)*x end;
begin
initgraph(d,m,''); {переход в графический режим}
ry:=getmaxy+1; rx:=getmaxx+1; {размер экрана}
line(0,0,0,ry); {ось Y}
xn:=0; xk:=60; dx:=0.01;{параметры аргумента}
x:=xn; {начальное Х}
ymin:=f(x); ymax:=f(x);
while x<=xk do begin {поиск максимума и минимума Y}
y:=f(x);
if y>ymax then ymax:=y;
if y<ymin then ymin:=y;
x:=x+dx;
{изменяем Х}
end;
msy:=ry/abs(ymax-ymin); {масштаб по Y}
msx:=rx/abs(xk-xn); {масштаб по X}
x:=xn; {начальное Х}
while x<=xk do begin {рисование}
y:=f(x);
putpixel(round((x-xn)*msx),-round((y-ymax)*msy),2); {точки}
lineto(round((x-xn)*msx),-round((y-ymax)*msy)); {отрезки}
x:=x+dx; {изменяем Х}
end;
l
ine(0,-round(-ymax*msy),rx,-round(-ymax*msy));
{ось Х}
readln; {пауза для просмотра картинки}
closegraph;
end.
Задания.
а). Решить аналогичную задачу, но ось Yнаправить горизонтально, а Х – вертикально.
б). Известна зарплата (массив zar[1..5]) работников (N=5) бригады. Построить диаграмму из вертикальных линий.
в). Условие то же, но диаграмма столбиковая. Замечание. Ширина столбца определяется делением ширины экрана на число рабочих. Однако, если ширина столбца не кратна размеру экрана, крайний столбец будет отображен не полностью. При программировании следует учесть этот фактор, уменьшив ширину столбца.
г). Известна зарплата (массив zar[1..5]) и премия (массивp[1..5]) каждого изN=5 работников бригады. Построить совмещенную столбиковую диаграмму (на столбике зарплаты стоит столбик премии). Премия должна быть заштрихована командойSetFillStyle.
д). Для той же задачи построить секторную диаграмму зарплат. Подсказка. Сначала следует найти сумму всех зарплат s. Затем перевести зарплату каждого работника в градусы его сектора на диаграмме zar[i]/s*360 и запомнить ее в массиве zar[1..5]. Далее вычислить начальный и конечный угол каждого радиуса каждого сектора, нарисовать диаграмму командой PieSlice и раскрасить ее.
