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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2009, 17:29   #1
Серафимий Долговяз
Пользователь
 
Регистрация: 24.01.2009
Сообщений: 18
Восклицание Задача с функциями

Задача две прямые представленны в виде Y=k1*X+b1 и Y=k2*X+b2; k1, k2,
b1,b2 задаются с экрана Программа должна включать в себя три функции:1-я вычисляет пересекаются ли две прямые;2-е другие находят x0 и y0(координаты точек пересечения)
Заранее спасибо
Серафимий Долговяз вне форума Ответить с цитированием
Старый 31.01.2009, 17:52   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вроде все правильно..
Код:
uses crt;

var k1,k2,b1,b2 : integer;
x0,y0 : real;

function peresek(k1,k2 : integer) : boolean;
 begin
 if k1 <> k2 then peresek := true
 else peresek := false;
 end;

function findx0(k1,k2,b1,b2 : integer) : real;
 begin
 if peresek(k1,k2) then
   findx0 := (b2-b1)/(k1-k2) ;
 end;

function findy0(k1,k2,b1,b2 : integer) : real;
 begin
 if peresek(k1,k2) then
  findy0 := (b1*k2-b2*k1)/(k2-k1);
 end;

begin
clrscr;
write('k1= '); readln(k1);
write('b1= '); readln(b1);
write('k2= '); readln(k2);
write('b2= '); readln(b2);

if peresek(k1,k2) then
 begin
 writeln('Pryamye peresekayutsya!');
 x0 := findx0(k1,k2,b1,b2);
 writeln('x0 = ',x0:7:4);
 y0 := findy0(k1,k2,b1,b2);
 writeln('y0 = ',y0:7:4);
 end
 else writeln('Pryamye parallelny ili sovpadayut');
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 31.01.2009, 18:32   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Можно еще так.
Код:
uses crt;
function Peresech(a,b:integer):boolean;
begin
if a<>b then Peresech:=true
else Peresech:=false;
end;
function X0(a1,b1,a2,b2:integer):real;
begin
X0:=(b2-b1)/(a1-a2);
end;
function Y0(a1,b1,a2,b2:integer):real;
var c:real;
begin
c:=X0(a1,b1,a2,b2);
Y0:=a1*c+b1;
end;
var k1,b1,k2,b2:integer;
begin
clrscr;
writeln('Vvedite koefficienty 1 uravnenia:');
readln(k1,b1);
writeln('Vvedite koefficienty 2 uravnenia:');
readln(k2,b2);
if Peresech(k1,k2) then
   begin
    writeln('Pryamye peresekayutsa!');
    writeln('X0=',X0(k1,b1,k2,b2):0:2);
    writeln('Y0=',Y0(k1,b1,k2,b2):0:2);
   end
else
   begin
    if b1=b2 then  writeln('Pryamye sovpadayut! Sistema imeet beskonechnoe mnozestvo reshenij.')
    else writeln('Pryamye parallelny! Sistema ne imeet reshenij.');
   end;
readln
end.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переписать программу с использованием функций, С++ Vikylik Помощь студентам 2 09.04.2009 10:39
Помогите разобраться с функциями! Rembo Общие вопросы C/C++ 4 08.02.2008 21:24
Работа с функциями Worms Общие вопросы Delphi 1 02.12.2007 15:51