** В един и същи квадрант

Да се напише програма, която позволява да се въведат (чрез записи) координатите на 2 точки от равнината и после проверява и отпечатва дали те се намират в един и същи квадрант.

Публикувано в 10a с етикети . Постоянна връзка.

5 Responses to ** В един и същи квадрант

  1. Svetli каза:
    program Project1;
    type
      Kordinati = record
        X:integer;
        Y:integer;
      end;
    
     var
       A,B:Kordinati;
    begin
      Writeln('Vavedete kordinatite na tochka A');
      Writeln('X=');
      Readln(A.X);
      Writeln('Y=');
      Readln(A.Y);
      Writeln('Vavedete kordinatite na tochka B');
      Writeln('X=');
      Readln(B.X);
      Writeln('Y=');
      Readln(B.Y);
      Writeln;
    
      if ((A.X>0) and (B.X>0)) and ((A.Y>0) and (B.Y>0)) then
         Writeln('Tochkite A i B sa v edin i sushti kvadrant i po-tochno te sa v purvi kvadrant')
      else if ((A.X<0) and (B.X<0)) and ((A.Y<0) and (B.Y<0)) then
         Writeln('Tochkite A i B sa v edin i sushti kvadrant i po-tochno te sa v treti kvadrant')
      else if ((A.X<0) and (B.X<0)) and ((A.Y>0) and (B.Y>0)) then
         Writeln('Tochkite A i B sa v edin i sushti kvadrant i po-tochno te sa vuv vtori kvadrant')
      else if ((A.X>0) and (B.X>0)) and ((A.Y<0) and (B.Y<0)) then
         Writeln('Tochkite A i B sa v edin i sushti kvadrant i po-tochno te sa v chetvurti kvadrant')
      else Writeln('Tochkite ne sa v edin i susht kvadrant');
    
      if (A.X=0) or (B.X=0) then if (A.X=0) then Writeln('Edna ot tochkite leji na abcisata i tova e A');
      if (A.X=0) or (B.X=0) then if (B.X=0) then Writeln('Edna ot tochkite leji na abcisata i tova e B');
      if (A.Y=0) or (B.Y=0) then if (A.Y=0) then Writeln('Edna ot tochkite leji na ordinatata i tova e A');
      if (A.Y=0) or (B.Y=0) then if (B.Y=0) then Writeln('Edna ot tochkite leji na ordinatata i tova e B');
      if ((A.X = B.X) and (A.Y= B.Y)) then Writeln('Tochkite imat edni i sushti kordinati');
    
      Readln;
    end.
    
  2. Данаил каза:

    Тази задача може да се реши по още два много интересни начина – единият е да се сменят всички условия от 23-ти до 31-ви ред с едно, а другият – да се направи функция, връщаща квадранта за дадена точка и да се сравни какво връща тя за двете точки.

    Подсетете ме да ви ги покажа! :–)

  3. Боряна каза:
    program Project1;
    type
      tochka=record
        x, y: integer;
      end;
    function Kvadrant(A: tochka): integer;
    begin
      if ((A.x=0) or (A.y=0)) then
        Result:=0
      else
        if A.x>0 then
          if A.y>0 then
            Result:=1
          else Result:=4
        else if A.y>0 then
               Result:=2
             else Result:=3;
    end;
    
    var
      A, B: tochka;
      k1, k2: integer;
    begin
      Write('Vavedete koordinatite na tochka, razdeleni s pauza: ');
      ReadLn(A.x, A.y);
      Write('Vavedete koordinatite na druga tochka po sashtia nachin: ');
      ReadLn(B.x, B.y);
    
      k1:=Kvadrant(A);
      k2:=Kvadrant(B);
    
       if ((k1=0) and (k2=0)) then
         WriteLn('I dvete tochki lezat na edna ot osite.')
         else if ((k1=0) or (k2=0)) then
                if k1=0 then
                  WriteLn('Tochka A lezi na edna ot dvete osi, a tochka B e v ', k2, '-ti kvadrant.')
                else
                  WriteLn('Tochka B lezi na edna ot dvete osi, a tochka A e v ', k1, ' kvadrant.')
              else begin
                if k1=k2 then
                   WriteLn('Dvete tochki sa v edin i sashti kvadrant - ', k1)
                else
                   WriteLn('Dvete tochki sa v razlichni kvadranti - A e v ', k1, ', a B - v ', k2, '.');
              end;
       ReadLn;
    end.
    

Вашият коментар