Программа на паскале.

  • Автор темы LOTER
  • Дата начала
L

LOTER

#1
ОЧЕНЬ СРОЧНО ТРЕБУЕТСЯ ПОМОЩЬ В НАПИСАНИИ ПРОГРАММЫ НА ПАСКАЛЕ!
(ЕСЛИ Я ПОПАЛ НЕ В ТУ ТЕМУ ФОРУМА(ПО НЕЗНАНИЮ,Я ТУТ ПЕРВЫЙ РАЗ!) ПРОСЬБА СИЛЬНО НЕ РУГАТЬСЯ А УКАЗАТЬ ТУ ТЕМУ КУДА НАДО ОБРАТИТЬСЯ

НЕБОЛЬШАЯ ПОПРАВКА : помощь требуется в в некоторых моментах её написания а не в написании вообще!
 
L

LOTER

#2
ОЧЕНЬ СРОЧНО ТРЕБУЕТСЯ ПОМОЩЬ В НАПИСАНИИ ПРОГРАММЫ НА ПАСКАЛЕ!

прога идет ниже:


Код:
var x1.x2,x3,x4,y1,y2,y3,y4:real;

Function Rast(x1,y1,x2,y2,x3,y3:real):real;
var a,b,d:real;
BEGIN
a:=sqrt(sqr(x3-x1)+sqr(y3-y1));
b:=sqrt(sqr(x3-x2)+sqr(y3-y2));
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
Rast = sqr (a*a – sqr((a*a-b*b+d*d)(2*d));
End;
begin
readln(x,y1,x2,y2,x4,y4);
ниже идет то что мне непонятно: Я подозреваю что Функцию Rast
можно заменить переменной или переменными для того чтобы эта функция
просчитывалась не ТРИ РАЗА А ОДИН,при этом блок схема должна быть таже.НО как этого сделать незнаю.
Код:
if Rast (x1,y1,x2,y2,x4,y4)< Rast(x1,y1,x,y3,x4,y4) then 
if Rast (x1,y1,x2,y2,x4,y4) else 
writeln(Rast(x2,y2,x3,y3,x4,y4)) else if Rast(x1,y1,x3,y3,x4,y4)<Rast(x2,y2,x3,y3,x4,y4) then
writeln (Rast (x1,y1,x3,y3,x4,y4) else
writeln(Rast(x2,y2,x3,y3,x4,y4));
End;
END.
программа считает расстояние от точки до ближайшей стороны треугольника в котором она находится
 
L

LOTER

#3
Вопрос по задаче написан почти в самом конце задачи!
Код:
 Tupe fs=file of string [10];
var f1,f2:fs;


Procedure Zapis(var f:fs);
var i,n:bute; s:string[10];
write( 'введите кол-во строк');
readln(n); rewrite(f);


for i:=1 to n do

begin
write(i,'строка');
readln(s);
write(f,s);
end;
close(f)
End;

Procedure copu f(n: bute; var f1,f2:fs);
var i:bute; s:string[10];
Begin

reset(f1);
rewrite(f2);
до этого момента преподу все было понятно,а потом он потребовал заменить oператор FOR на while
я и заменил,а он обвёл while i<n; и написал :условие д.б связано с ф-цией определяющей конец файла. вот в этом собственно и вопрос - что это такое -д.б,и как это вообще сделать?
Код:
for i:=1 to n do																			  
begin					в процессе проверки
read(f1,s);			это было заменено на =>	 while i<n;
write(f2,s);													 
end;																  do begin
read(f1,s)
write(f2,s)
i:= i+1
end;



close(f1);
close(f2);
End;
Begin
Zapis(f1);
copu f(s,f1,f2)
End;
END.
 
A

astronom

#4
LOTER , возможно, преподаватель имел в виду, что для определения конца файла лучше использовать Eof(). С другой стороны, приведенный код позволяет считать n первых строк из файла. :)