Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

X2:=X0+2; {Координата по X для вывода значений слева оси Y}

{Рисование рамки}

setfillstyle(1,1);

bar(X0,Y0,MaxX-X0,MaxY-Y0);

setcolor(14);

rectangle(X0,Y0,MaxX-X0,MaxY-Y0);

{Рисование осей}

line(2*X0,2*Y0,2*X0,MaxY-2*Y0); {Ось Y}

line(2*X0,MaxY-2*Y0,MaxX-2*X0,MaxY-2*Y0); {Ось X}

{Поиск наибольшего из значений элементов исходных данных в переменную M}

M:=Num[1];

for I:=2 to N do

if Num[I]>M then

M:=Num[I];

S1:=round((MaxY-4*Y0)/M); {Определение длины единичного отрезка на оси Y}

{Рисование диаграммы}

for I:=1 to N do

begin

Y2:=2*Y0+(MaxY-2*Y0-S1*Num[I]); {Начальная координата по Y}

str(Num[I]:4,Nm);

outtextxy(X2,Y2,Nm); {Вывод значения элемента данных слева оси Y}

line(2*X0-3,Y2-3,2*X0,Y2-3); {Рисование деления на оси Y}

outtextxy(X1,Y1,Name[I]); {Вывод названия элемента данных под осью X}

setfillstyle(1,I+1); {Определение типа заполнения столбца}

bar(X1-1,Y2-3,X1-1+S, Y1-3); {Рисование столбца}

X1:=X1+S; {Начальная координата по Х для очередного столбца}

end;

repeat

until keypressed;

closegraph {Выход из графического режима}

end.

{Пример построения линейной диаграммы}

program LineDiagram;

uses crt, graph;

{N - количество элементов исходных данных}

{Name - наименования элементов исходных данных}

{Num - числовые значения элементов исходных данных}

const

N=6;

Name:array[1..N] of string=('1997','1998','1999','2000','2001','2002');

Num:array[1..N] of integer=(10,5,8,11,2,7);

var

Dr, Rg, MaxX, MaxY, X0,Y0,S, I,X1,Y1,X2,Y2,S1,X3,Y3,X4,Y4:integer;

НЕ нашли? Не то? Что вы ищете?

M:real;

Nm:string;

begin

{Инициализация графического режима}

Dr:=detect;

initgraph(Dr, Rg,'');

{Определение начальных параметров}

cleardevice; {Очистка экрана}

MaxX:=getmaxx; {Определение максимальной координаты по X}

MaxY:=getmaxy; {Определение максимальной координаты по Y}

X0:=40; {Отступ от края экрана до рамки по вертикали}

Y0:=20; {Отступ от края экрана до рамки по горизонтали}

S:=round((MaxX-4*X0)/N); {Определение интервала между точками по X}

X1:=2*X0+2; {Координата по X для первой точки диаграммы}

Y1:=MaxY-2*Y0+2; {Координата по Y для вывода названий под осью Y}

X2:=X0+2; {Координата по X для вывода значений слева от оси Y}

{Рисование рамки}

setfillstyle(1,1);

bar(X0,Y0,MaxX-X0,MaxY-Y0);

setcolor(14);

rectangle(X0,Y0,MaxX-X0,MaxY-Y0);

{Рисование осей}

line(2*X0,2*Y0,2*X0,MaxY-2*Y0); {Ось X}

line(2*X0,MaxY-2*Y0,MaxX-2*X0,MaxY-2*Y0); {Ось Y}

{Поиск наибольшего из значений элементов исходных данных в переменную M}

M:=Num[1];

for I:=2 to N do

if Num[I]>M then

M:=Num[I];

S1:=round((MaxY-4*Y0)/M); {Определение длины единичного отрезка на оси Y}

{Рисование диаграммы}

for I:=1 to N do

begin

Y2:=2*Y0+(MaxY-2*Y0-S1*round(Num[I])); {Координата точки по Y}

X4:=X1-1; {Конечная координата линии по X}

Y4:=Y2-3; {Конечная координата линии по Y}

str(Num[I]:4,Nm);

outtextxy(X2,Y2,Nm); {Вывод значения элемента данных слева оси Y}

line(2*X0-3,Y2,2*X0,Y2); {Рисование деления на оси Y}

outtextxy(X1,Y1,Name[I]); {Вывод названия элемента данных под осью X}

setlinestyle(0,1,1); {Определение типа линии диаграммы}

circle(X4,Y4,2); {Рисование узлов диаграммы}

if I<>1 then

line(X3,Y3,X4,Y4); {Рисование линии диаграммы}

X3:=X1-1; {Начальная координата линии по X}

Y3:=Y2-3; {Начальная координата линии по Y}

X1:=X1+S; {Координата по X для очередной точки}

end;

repeat

until keypressed;

closegraph {Выход из графического режима}

end.

Самостоятельная работа: Построить линейчатую диаграмму, в исходном массиве только положительные элементы.

Построение круговой диаграммы.

{Пример построения круговой диаграммы}

program RoundDiagram;

uses crt, graph;

{N - количество элементов исходных данных}

{Name - наименования элементов исходных данных}

{Num - числовые значения элементов исходных данных}

const

N=6;

Name:array[1..N] of string=('1997','1998','1999','2000','2001','2002');

Num:array[1..N] of integer=(10,5,8,11,2,7);

var

Dr, Rg, MaxX, MaxY, Y0,I, S1,Kg, Xc, Yc, R,Yk:integer;

M, S:real;

begin

{Инициализация графического режима}

Dr:=detect;

initgraph(Dr, Rg,'');

{Определение начальных параметров}

cleardevice; {Очистка экрана}

MaxX:=getmaxx; {Определение максимальной координаты по X}

MaxY:=getmaxy; {Определение максимальной координаты по Y}

Xc:=300; {Координата центра диаграммы по X}

Yc:=250; {Координата центра диаграммы по Y}

R:=150; {Радиус диаграммы}

{Рисование рамки}

setfillstyle(1,1);

bar(0,0,MaxX, MaxY);

setcolor(14);

rectangle(0,0,MaxX, MaxY);

{Определение суммы значений элементов исходных данных в переменную S}

S:=0;

for I:=1 to N do

S:=S+Num[I];

{Рисование диаграммы}

Y0:=0; {Начальный угол сектора}

for I:=1 to N do

begin

Kg:=round(360*(Num[I]/S)); {Определение кол-ва градусов в секторе}

Yk:=Y0+Kg; {Конечный угол сектора}

if Yk>360 then

Yk:=360;

setfillstyle(1,I+1); {Определение типа заполнения сектора}

pieslice(Xc, Yc, Y0,Yk, R); {Рисование сектора}

Y0:=Yk {Начальный угол сектора}

end;

repeat

until keypressed;

closegraph {Выход из графического режима}

end.

Работа с файлами.

В задачах, которые мы рассматривали, данные поступали с клавиатуры, а результаты выводились на экран дисплея. Поэтому ни исходные данные, ни результаты не сохранялись. Приходилось заново вводить данные всякий раз, когда запускали программу. А если их очень много? Тогда удобно оформить исходные данные и результаты в виде файлов, которые можно хранить на диске точно так же, как и программы.

Файл - это область памяти на внешнем носителе, в которой хранится некоторая информация. В языке Паскаль файл представляет собой последовательность элементов одного типа. Мы будем работать только с файлами последовательного доступа. В таких файлах, чтобы получить доступ к элементу, необходимо последовательно просмотреть все предыдущие.

Объявление файловой переменной в разделе описания переменных имеет вид :

var <имя файла>: File of <тип элементов>;

Например:

var Ft : File of integer;

M : File of char;

Type File_integer=File of integer

File_char=File of char;

Var F1: File_integer;

F2: File_char;

Так как в описании указывается тип элементов, такие файлы называются типизированными. Все элементы файла пронумерованы начиная с нуля.

С каждым файлом связан так называемый файловый указатель. Это неявно описанная переменная, которая указывает на некоторый элемент файла.

(0)

(1)

...

(к)

(к+1)

...

Ý

файловый указатель

Все операции производятся с элементом, который определен файловым указателем.

Связь переменной файлового типа

с файлом на диске.

Процедура Assign(<имя файловой пер-ой>,’<имяфайла на диске>’);

Например:

Assign(F1,’A:INT.DAT’);

После установления такого соответствия все операции, выполняемые над переменной F1, будут выполнятся над файлом, хранящимся на диске А и имеющим имя INT. DAT

Файл в каждый момент времени может находиться в одном из двух состояний: либо он открыт только для записи, либо только для чтения.

Чтение из файла.

Под чтением из файла понимается пересылка данных из внешнего файла, находящегося на диске, в оперативную память.

Для чтения из файла необходимо открыть для чтения посредством процедуры

Reset(<имя файловой переменной>);

Собственно чтение данных из файла выполняется процедурой

Read(<имя файловой переменной>,<имя переменной>);

Переменная должна иметь тот же тип, что и компоненты файла. Отметим, что если оператор ввода имеет вид Read(<имя переменной>), то данные вводятся с клавиатурой, а если Read(<имя файловой переменной>,<имя переменной>); то данные вводятся из файла, хранящегося на диске.

Закрытие файла

После того как данные из файла прочитаны, его необходимо закрыть посредством процедуры

Close(< имя файловой переменной>)

Общая схема чтения данных из файла, таким образом, следующая:

Reset(<имя файловой переменной>);

.......

Read(<имя файловой переменной>,<имя переменной>);

...........

Close(<имя файловой переменной>);

Признак конца файла

Так как число элементов файла не известно заранее, необходимо уметь определять, что файл кончился. Для этого используется логическая функция Eof(<имя файловой переменной>) (Eof - End Of File). Она принимает истинное значение (Тrue), если достигнут конец файла, и ложное (False) - в противном случае.

Пример Прочитаем из файла целые числа и выведем их на экран:

Assign(F1,’A:INT. DAT’);

Reset(F1);

While Not Eof(F1) do

begin

read(f1,n); { считываем очередное число из файла}

write(n,’ ‘); { выводим его на экран}

end;

Close(F1);

Запись в файл

Под записью в файл понимается вывод результатов программы из оперативной памяти ЭВМ в файл на диске.

Для записи в файл необходимо открыть файл для записи посредством процедуры

Rewrite(< Имя файловой переменной >);

Собственно запись данных в файл выполняется процедурой :

Write(<имя файловой переменной>,<значение>);

Общая схема записи данных в файл, таким образом, следующая:

Rewrite(<>);

......

Write(<имя файловой переменной>,<значение>);

..........

Close(<имя файловой переменной>);

Прямой доступ к элементам файла

Несмотря на то, что в стандартном Паскале имеются лишь файлы последовательного доступа, Турбо Паскаль содержит процедуры и функции для более эффективной работы с файлами. В частности, имеется возможность осуществлять прямой доступ к элементам файла.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30