Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика.docx
Скачиваний:
0
Добавлен:
06.01.2020
Размер:
2.23 Mб
Скачать

З анятие №18: Работа с файлами. Решение задач.

  1. Дан текстовый файл f1. Переписать в обратном порядке его строки в файл f2. Содержимое файла f1 в оперативную память не копировать (в виде массива, стека, очереди и т.П.).

program prac1;

var f1,f2:text;

i,j:integer;

s:string;

begin

assign(f1,'c:\1.txt');

assign(f2,'c:\out.txt');

reset(f1);

rewrite(f2);

while not eof(f1) do

begin

readln(f1,s);

inc(i);

end;

writeln(f2,s);

reset(f1);

while i>=2 do

begin

for j:=3 to i do

begin

readln(f1);

end;

readln(f1,s);

writeln(f2,s);

dec(i);

reset(f1);

end;

close(f2);

end.

Занятие №19: Модули. Использование стандартных модулей.Работа с модулем Graph.

  1. Исследовать область определения функции и построить график функций:

Обратная функция:

y=(x+3)/(x-2)

x-2=(x+3)/y

x-2=x/y+3/y

1-2/x=1/y+3/xy

1-2y/xy=1/y+3/xy

1 =1/y+(3+2y)/xy

1-1/y=((3+2y)/y)/x

x=((3/y+2)/( 1-1/y)

program prac1;

uses graph;

var

grd,grm:integer;

x2,h,x,y:real;

n,k:longint;

Begin

Grd:=Detect;

Grm:=2;

Initgraph(grd,grm,'');

n:=0;

setcolor(4);

while n<=640 do

begin

line(673,384-n,693,384-n);

line(673,384+n,693,384+n);

line(683-n,374,683-n,394);

line(683+n,374,683+n,394);

n:=n+20;

end;

X:=-30; X2:=30; h:=0.01;

line(683,0,683,768);

line(0,384,1366,384);

while x<=1.99 do

begin

y:=(x+3)/(x-2);

putpixel(trunc(20*x+683),trunc(384-20*y),15);

x:=x+h;

end;

x:=2.01;

while x<=x2 do

begin

y:=(x+3)/(x-2);

putpixel(trunc(20*x+683),trunc(384-20*y),15);

x:=x+h;

end;

readln;

CloseGraph;

end.

  1. Откомпилируйте модуль triangle, который содержит набор процедур и функций для выполнения расчёта треугольников, используя известные формулы из геометрии. В модуле предусмотрены распространённые способы задания треугольника: тремя сторонами и координатами его вершин. Модульпозволяет выполнить следующие действия:

  • Вычисление сторон по координатам вершин треугольника;

  • Проверку существования треугольника;

  • Расчёт площади и периметра;

  • Расчёт радиусов вписанной и описанной окружностей.

Воспользуйтесь данным модулем для решения какой-нибудь геометрической задачи.

unit triangle;

interface

procedure getabc(xa, ya, xb, yb, xc, yc: real; var a, b, c: real);

function exist(a, b, c: real):boolean;

function perimetr(a, b,c: real):real;

function square(a, b, c: real):real;

function rv(a, b, c: real):real;

function ro(a, b, c: real):real;

implementation

function len(x1, y1, x2, y2:real):real;

begin

len:=sqrt(sqr(x1-x2)+ sqr(y1-y2));

end;

procedure getabc(xa, ya, xb, yb, xc, yc: real; var a, b, c: real);

begin

a:=len(xa,ya,xb,yb);

b:=len(xb,yb,xc,yc);

c:=len(xc,yc,xa,ya);

end;

function exist(a, b, c: real):boolean;

begin

exist:=(a<b+c)and(b<a+c)and(c<a+b);

end;

function perimetr(a, b,c: real):real;

begin

perimetr:=a+b+c;

end;

function square(a, b, c: real):real;

var p:real;

begin

p:=(a+b+c)/2;

square:=sqrt(p*(p-a)*(p-b)*(p-c));

end;

function rv(a, b, c: real):real;

begin

rv:=square(a,b,c)/ perimetr(a,b,c)*2;

end;

function ro(a, b, c: real):real;

begin

ro:=a*b*c/4/square(a,b,c);

end;

begin

end.