Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2008, 23:26   #1
LOTER
Пользователь
 
Регистрация: 29.01.2008
Сообщений: 17
Восклицание ПОМОГИТЕ С ПРОГРАММОЙ ПРО ТРЕУГОЛЬНИК

Я УЖЕ ТРИ ДНЯ БЬЮСЬ НАД ЭТОЙ ПРОГОЙ И НЕ ЗНАЮ ЧТО ДЕЛАТЬ!
Код:
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(x1,y1,x2,y2,x4,y4);
ниже идет то что мне непонятно: Я подозреваю что Функцию Rast
можно заменить переменной или переменными для того чтобы эта функция
просчитывалась не ТРИ РАЗА А ОДИН,при этом блок схема должна быть таже.НО как этого сделать незнаю.
Код:
if Rast (x1,y1,x2,y2,x4,y4)< Rast(x1,y1,x3,y3,x4,y4) then
 else
writeln(Rast(x2,y2,x3,y3,x4,y4));
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));
readln;
END.




ЕСТЬ ТРЕУГОЛЬНИК(ВИДИМО ЛЮБОЙ Т.К ТОЧНЕЕ В ЗАДАНИИ НЕ ГОВОРИТСЯ),
ПРОГРАММА ДОЛЖНА СЧИТАТЬ РАССТОЯНИЕ ОТ ТОЧКИ ДО БЛИЖАЙШЕЙ СТОРОНЫ ТРЕУГОЛЬНИКА(ТОЧКА НАХОДИТСЯ В ТРЕУГОЛЬНИКЕ.

Последний раз редактировалось LOTER; 29.01.2008 в 23:31.
LOTER вне форума Ответить с цитированием
Старый 29.01.2008, 23:29   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Создал тему-напиши условие задачи, иначе никто ничего не поймет.
И посмотри в предыдущей теме.
puporev вне форума Ответить с цитированием
Старый 29.01.2008, 23:30   #3
LOTER
Пользователь
 
Регистрация: 29.01.2008
Сообщений: 17
По умолчанию

ЕСТЬ ТРЕУГОЛЬНИК(ВИДИМО ЛЮБОЙ Т.К ТОЧНЕЕ В ЗАДАНИИ НЕ ГОВОРИТСЯ),
ПРОГРАММА ДОЛЖНА СЧИТАТЬ РАССТОЯНИЕ ОТ ТОЧКИ ДО БЛИЖАЙШЕЙ СТОРОНЫ ТРЕУГОЛЬНИКА(ТОЧКА НАХОДИТСЯ В ТРЕУГОЛЬНИКЕ.
LOTER вне форума Ответить с цитированием
Старый 30.01.2008, 00:03   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

1. Уравнение прямой, проходящей через две точки A1(x1,y1), A2(x2,y2):
(x2-x1)*(y-y1) - (x-x1)*(y2-y1) = 0;
2. Расстояние от точки M1(x1,y1) до прямой Ax+By+C=0 равно:
d = | (Ax1 + By1 + C) / sqrt(A^2 + B^2) |

через "|" в 2 обозначаю абсолютную величину. Уравнение из 1. приводится к нормальному виду путем простых сокращений. Задача состоит в ТРЁХ вызовах функции из п.2 и выбору наименьшего значения. При этом уравнение прямой получаем с помощью перебора коорддинат точек треугольника. Насколько я помню, было какое-то еще, гораздо более красивое уравнение, но к сожалению вспоминать его сейчас, читать первый пост и писать решение сил на сегодня уже нет.
B_N вне форума Ответить с цитированием
Старый 30.01.2008, 00:12   #5
LOTER
Пользователь
 
Регистрация: 29.01.2008
Сообщений: 17
По умолчанию

Теперь задача про файлы . само задание не помню но надо что то кудато скопировать. плизз дочитать до конца задачи!!!
Вопрос по задаче написан почти в самом конце задачи!

Код:
 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.
LOTER вне форума Ответить с цитированием
Старый 30.01.2008, 00:20   #6
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Это очень странное исправление потому, что до входа в цикл переменная i во втором случае не определена, либо код не полон.
---------------
Насчет конца файла он должно быть имел в виду while not eof(f1)

Последний раз редактировалось B_N; 30.01.2008 в 00:23.
B_N вне форума Ответить с цитированием
Старый 30.01.2008, 00:22   #7
LOTER
Пользователь
 
Регистрация: 29.01.2008
Сообщений: 17
По умолчанию

ээээээээээ.... а как нибудь по проще нельзя ?
LOTER вне форума Ответить с цитированием
Старый 30.01.2008, 00:24   #8
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от LOTER Посмотреть сообщение
ээээээээээ.... а как нибудь по проще нельзя ?
Что именно?
B_N вне форума Ответить с цитированием
Старый 30.01.2008, 00:26   #9
LOTER
Пользователь
 
Регистрация: 29.01.2008
Сообщений: 17
По умолчанию

ну то что до входа в цикл перем-я i не определена или код не полон.
как это понять?????
LOTER вне форума Ответить с цитированием
Старый 30.01.2008, 00:37   #10
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

при запуске цикла for переменной i явно присваивается значение (единица) в цикле while этого нет, до цикла переменная i тоже не определяется (если я правильно понимаю, что начало второго куска кода соответствует 11-й строке первого, если же нет и куски идут друг за другом, то вообще неясно, какая переменная к какой процедуре относится). Напишите целиком Ваш код и выделите цветом, что "не понравилось", так, по частям, очень трудно догадываться.
B_N вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Треугольник serega11 Помощь студентам 2 22.05.2008 09:01
помогите с программой 1234 Общие вопросы Delphi 6 05.03.2008 19:08
Помогите с программой ПлЗ. Manoff Общие вопросы Delphi 1 25.02.2008 04:41
Помогите с программой! MAKEDON Общие вопросы Delphi 3 27.12.2007 13:46
помогите с программой LexusSPb Фриланс 2 04.09.2007 16:29