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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2012, 16:36   #1
xq1b
Пользователь
 
Регистрация: 19.10.2011
Сообщений: 32
Хорошо паскаль omg)

Всем привет. Нужна ваша помощь. Помогите проверить текст программы на паскале. вот условие задачи: Необходимо считать данные о двух векторах. Каждый вектор является двумерным. Необходимо реализовать подпрограмму, проверяющую образуют ли эти векторы прямой угол. Если да, то в регистре rA должно быть число1 по итогам выполнения подпрограммы, и 0 в противном случае.
Вот программа:
Код:
program v4;
uses crt;
type vector = record
a,b: integer;
end;
var Vx, Vy: vector;
A1,B1,C : real;
function ugol(Vx,Vy: vector): real;
begin
clrscr;
ugol:= sqr(A1)+sqr(B1);
end;
begin
write('vvedite koordinati Ax, Ay, Bx, By' );
read(Vx.a,Vy.a,Vx.b,Vy.b);
write('vvedite storonu C' );
read(C);
A1:= sqrt( (Vx.a*Vx.a) + (Vy.a*Vy.a) );
B1:= sqrt( (Vx.b*Vx.b) + (Vy.b*Vy.b) );
if (ugol(Vx,Vy)) = (sqr(C)) then write('yest priamoi ugol') else write('net priamogo ugla');
readkey;
end.
и помогите написать блок схему по ней плиз

Последний раз редактировалось ACE Valery; 09.06.2012 в 18:23.
xq1b вне форума Ответить с цитированием
Старый 09.06.2012, 18:22   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

Код:
program v4;

uses
  crt;

const
  eps = 0.000001;

type
  vector = record
    x, y: integer;
  end;

var
  a, b: vector;

function vectorcos(a, b: vector): real;
begin
  vectorcos := a.x * b.x + a.y * b.y;
end;

begin
  write('vvedite koordinati Ax, Ay, Bx, By: ' );
  read(a.x, a.y, b.x, b.y);
  if abs(vectorcos(a, b)) < eps then write('yest priamoi ugol') else write('net priamogo ugla');
  readkey;
end.
Блок-схемы отлично строятся в FCEditor.
Кстати, сейчас перечитал условие:
Во-первых, что за регистр rA, уже который раз натыкаюсь на него и вразумительного ответа не увидел.
Во-вторых, программа должна выглядеть по-другому.
Код:
program v4;

uses
  crt;

type
  vector = record
    x, y: integer;
  end;

var
  a, b: vector;

function rightangle(a, b: vector): integer;
const
  eps = 0.000001;
begin
  if abs(a.x * b.x + a.y * b.y) < eps then rightangle := 1 else rightangle := 0;
end;

begin
  write('vvedite koordinati Ax, Ay, Bx, By: ' );
  read(a.x, a.y, b.x, b.y);
  if rightangle(a, b) = 1 then write('yest priamoi ugol') else write('net priamogo ugla');
  readkey;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 09.06.2012 в 18:29.
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль, Борланд Паскаль-в чем разница??? Vremya-Dengy Паскаль, Turbo Pascal, PascalABC.NET 13 31.05.2011 18:23
паскаль и турбо паскаль Евгения Игоревна Помощь студентам 6 05.05.2011 14:31
Паскаль Сова Паскаль, Turbo Pascal, PascalABC.NET 3 09.02.2009 11:53