Определить, сколько из N точек, заданных случайно, попали в каждую координатную четверть - Pascal

Узнай цену своей работы

Формулировка задачи:

Написать функцию, определяющую, какой координатной четверти принадлежит точка с заданными координатами. Используя ее определить, сколько из N точек, заданных случайно, попали в каждую координатную четверть. Где-то с циклом напортачил. Принимает только последнее число.
var
    x,y: real;
    //I,II,III,IV: real;
    I:=0;
    II:=0;
    III:=0;
    IV:=0;
 
begin
 
x:=random(-100,100);
y:=random(-100,100);
 
writeln(x);
writeln(y);

    if (x > 0) and (y > 0) then
    begin
    write ('Номер четверти координатной плоскости: ');
    writeln ('I');
    I:=I+1;
    end
    else
        if (x < 0) and (y > 0) then
            begin
            write ('Номер четверти координатной плоскости: ');
            writeln ('II');
            II:=II+1;
            end            
        else
            if (x < 0) and (y < 0) then
            begin
            write ('Номер четверти координатной плоскости: ');
            writeln ('III');
            III:=III+1;
            end     
            else
                if (x > 0) and (y < 0) then
                begin
                write ('Номер четверти координатной плоскости: ');
                writeln ('IV');
                IV:=IV+1;
                end
                else
                    writeln ('-. Точка лежит на оси.');
 
readln;
 
begin
writeln ('Кол-во точек в I четвери: ');
writeln (I);
writeln ('Кол-во точек в II четвери: ');
writeln (II);
writeln ('Кол-во точек в III четвери: ');
writeln (III);
writeln ('Кол-во точек в IV четвери: ');
writeln (IV);
end;
 
repeat
until x=100;
 
end.

Решение задачи: «Определить, сколько из N точек, заданных случайно, попали в каждую координатную четверть»

textual
Листинг программы
var
  k, n: integer;
  x, y: real;
  I, II, III, IV: integer;
 
begin
  I := 0;
  II := 0;
  III := 0;
  IV := 0;
  write('Сколько точек обработать? ');
  readln(n);
  for k := 1 to n do
  begin
    x := random(-100, 100);
    y := random(-100, 100);
    writeln(x);
    writeln(y);
    if (x > 0) and (y > 0) then
    begin
      write('Номер четверти координатной плоскости: ');
      writeln('I');
      I := I + 1;
    end
    else
    if (x < 0) and (y > 0) then
    begin
      write('Номер четверти координатной плоскости: ');
      writeln('II');
      II := II + 1;
    end            
        else
    if (x < 0) and (y < 0) then
    begin
      write('Номер четверти координатной плоскости: ');
      writeln('III');
      III := III + 1;
    end     
      else
    if (x > 0) and (y < 0) then
    begin
      write('Номер четверти координатной плоскости: ');
      writeln('IV');
      IV := IV + 1;
    end
    else
      writeln('-. Точка лежит на оси.');
  end;    
  writeln('Кол-во точек в I четвери: ');
  writeln(I);
  writeln('Кол-во точек в II четвери: ');
  writeln(II);
  writeln('Кол-во точек в III четвери: ');
  writeln(III);
  writeln('Кол-во точек в IV четвери: ');
  writeln(IV);
end.

Объяснение кода листинга программы

  1. Объявляются переменные k, n, x, y, I, II, III, IV.
  2. Инициализируются переменные I, II, III, IV нулевым значением.
  3. Пользовательский ввод количества точек n.
  4. Запускается цикл от 1 до n.
  5. Генерируются случайные значения координат x и y.
  6. Выводится значение x.
  7. Выводится значение y.
  8. Проверка условий принадлежности точки к одной из четвертей координатной плоскости и увеличение соответствующей переменной I, II, III или IV на 1 в зависимости от четверти, в которую попала точка.
  9. Если точка лежит на одной из осей, выводится сообщение -. Точка лежит на оси.
  10. Выводится количество точек в каждой из четвертей координатной плоскости.

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы