0 / 0 / 0
Регистрация: 01.04.2012
Сообщений: 17
1

Определить количество точек, попадающих в область

04.04.2013, 00:37. Показов 1970. Ответов 6
Метки нет (Все метки)

Определить количество точек попадающих в область ( см. рис. ) . С процедурой.
Миниатюры
Определить количество точек, попадающих в область  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2013, 00:37
Ответы с готовыми решениями:

Определить число точек, попадающих в произвольно задаваемый круг и среднее значение содержания этих точек
Задание: а) Матрица из (N,3) чисел, где N - количество проб, предс*тавляет собой данные площадного...

Подсчитать количество точек, попадающих в прямоугольник
Подсчитать количество точек, попадающих в прямоугольник, образо- ванный осями координат и прямыми...

Вычислить количество точек графика, попадающих в сектор
помогите решить....с помощью оператора while

В квадратной матрице найти количество четных элементов, попадающих в заштрихованную область
В квадратной матрице найти количество четных элементов , попадающих в заштрихованную область ,...

6
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
04.04.2013, 09:07 2
если правильно понял задание, то, имхо, с функцией удобней:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function area(x,y: real): boolean;
begin
  if (x>=0) and (y>=0) and (x<=1) and (y<=1)
    then area:=true
      else area:=false;
end;
 
var
  n,i,k: integer;
  x,y: real;
begin
  write('Введите количество точек? ');
  readln(n);
  for i:=1 to n do
  begin
    {диапазоны настраивайте по своему вкусу}
    x:=random+random(2); {диапазон от 0 до 2}
    y:=random;           {диапазон от 0 до 1}
    write(x:6:3,'  ',y:6:3);
    if area(x,y) then
    begin
      inc(k);
      writeln('   Попадание');
    end else writeln;
  end;
  if k=0 then writeln('Нет попаданий') else
    writeln(k,' точек попадает в область');
  readln;
end.
Добавлено через 9 минут
с процедурой
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
procedure area(n: integer);
var
  k,i: integer;
  x,y: real;
begin
  k:=0;
  for i:=1 to n do
  begin
    {äèàïàçîíû íàñòðàèâàéòå ïî ñâîåìó âêóñó}
    x:=random+random(2); {äèàïàçîí îò 0 äî 2}
    y:=random;           {äèàïàçîí îò 0 äî 1}
    write(x:0:6,'  ',y:0:6);
    if (x>=0) and (y>=0) and (x<=1) and (y<=1) then
    begin
      inc(k);
      writeln('  Ïîïàäàíèå');
    end else writeln;
  end;
  if k=0 then writeln('Íåò ïîïàäàíèé') else
    writeln(k,' òî÷åê ïîïàäàåò â îáëàñòü');
end;
 
var
  n,i,k: integer;
begin
  write('Ââåäèòå êîëè÷åñòâî òî÷åê? ');
  readln(n);
  area(n);
  readln;
end.
1
0 / 0 / 0
Регистрация: 01.04.2012
Сообщений: 17
04.04.2013, 14:06  [ТС] 3
а чтобы точки не рандомные были что нужно изменить? с процедурой
0
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
04.04.2013, 14:13 4
Цитата Сообщение от romeg Посмотреть сообщение
чтобы точки не рандомные
как то так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure area(n: integer);
var
  k,i: integer;
  x,y: real;
begin
  k:=0;
  for i:=1 to n do
  begin
    write('Введите координаты точки x, y через пробел: ');
    readln(x,y);
    if (x>=0) and (y>=0) and (x<=1) and (y<=1) then
    begin
      inc(k);
      writeln('  Попадание');
    end;
  end;
  if k=0 then writeln('Нет попаданий') else
    writeln(k,' точек попадает в область');
end;
 
var
  n,i,k: integer;
begin
  write('Введите количество точек? ');
  readln(n);
  area(n);
  readln;
end.
1
0 / 0 / 0
Регистрация: 01.04.2012
Сообщений: 17
10.04.2013, 00:34  [ТС] 5
может кто нибудь объяснить тупому за что здесь процедура отвечает?
0
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
10.04.2013, 02:07 6
1. мы запускаем программу
2. вводим количество точек
3. программа вызывает процедуру и передает процедуре количество точек
4. процедура выполняет всю работу:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure area(n: integer); // процедура принимает параметр - количество точек, задаваемых пользователем
var
  k,i: integer; // объявление челочисленных переменных
  x,y: real;    // объявление вещественных переменных
begin
  k:=0; // изначально обнуляем количество точек
  for i:=1 to n do // от 1 до n - количества точек выполняем цикл
  begin // поехали... =)
    write('Введите координаты точки x, y через пробел: '); // приглашение на ввод
    readln(x,y); // считываем координаты точки
    if (x>=0) and (y>=0) and (x<=1) and (y<=1) then // если координты попадают в область..
    begin
      inc(k); // увеличиваем счетчик
      writeln('  Попадание'); // выводим на экран
    end;
  end;
  if k=0 then writeln('Нет попаданий') else // вывод результатов после выполнения цикла
    writeln(k,' точек попадает в область');
end;
 
var
  n,i,k: integer;
begin
  write('Введите количество точек? ');
  readln(n);
  area(n);
  readln;
end.
повторюсь: использование процедуры при данной задаче - изврат, здесь нужна функция. Вообще подпрограмма, будь она функцией или процедурой, нужна для того, чтобы можно было ее вызывать для решения множественных однотипных задачек. Функция возвращает значение (число, булево, строку...), процедура - выполняет действия.

Добавлено через 1 минуту
в чем, кстати, ваши сложности и какова реакция преподавателя?
1
0 / 0 / 0
Регистрация: 01.04.2012
Сообщений: 17
10.04.2013, 23:28  [ТС] 7
спасибо огромное. Преподаватель сказал что задача правильная , но спросил где процедура , за что она отвечает, где начинаеться и где заканчиваеться. вроде все понятно с вашими пояснениями спасибо еще раз
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2013, 23:28
Помогаю со студенческими работами здесь

В квадратной матрице найти количество четных элементов, попадающих в заштрихованную область
Помогите пожалуйста. Заранее благодарен! В соответствии с индивидуальным заданием разработать...

Найдите количество точек с целочисленными координатами, попадающих в круг радиуса R.
Найдите количество точек с целочисленными координатами, попадающих в круг радиуса R.(операторы...

Вычислить количество точек с целочисленными координатами, попадающих в круг радиуса R
Вычислить количество точек с целочисленными координатами, попадающих в круг радиуса R (R&gt;0) с...

Определить число точек, попадающих в произвольно задаваемый круг
Здравствуйте,помогите пожалуйста чуть-чуть переделать программу . задание: матрица(N,3),где n...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru