Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/26: Рейтинг темы: голосов - 26, средняя оценка - 4.58
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406

Площади прямоугольников

26.10.2009, 15:57. Показов 5102. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помощи в решении задачи!


Площади прямоугольников.
Прямоугольник на плоскости a<=x<=b; c<=y<=d задается четырьмя числами (его габаритами): a,b,c,d. Последовательно вводятся габариты n прямоугольников. В процессе ввода находить площадь их пересечения, не запоминая самих габаритов.

я не могу понять как это не запоминая самих габаритов
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2009, 15:57
Ответы с готовыми решениями:

Вычислить периметры и площади двух прямоугольников и определить, какой из них имеет больший периметр
Два прямоугольника заданы своими сторонами. Вычислить периметр и площадь каждого прямоугольника и определить, какой из прямоугольников...

Вычислить площади прямоугольников, сторонами которых являются заданные пары чисел (без массивов)
Пользователь вводит пары целых чисел. Вычислить площади прямоугольников, сторонами которых являются эти пары чисел. 0 считается...

Заполнение прямоугольников
Почему не заполняются фладфилом прямоугольники в чертеже(строка 22 и 24): Program Nachertalka; uses crt,graph; const vys=150; ...

16
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
26.10.2009, 16:07
а что такое х, у?

Добавлено через 7 минут
Цитата Сообщение от Gabberr Посмотреть сообщение
как это не запоминая самих габаритов
Это значит вводишь a1,b1,c1,d1,a2,b2,c2,d2.
Что-то вычисляешь.
Вторым присваиваешь значения первых, вводишь новые значения второго, снова считаешь и так n раз.
0
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
26.10.2009, 16:14  [ТС]
незнаю дажеможет быть это условие можно опустить?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
26.10.2009, 16:16
Gabberr, Вот Вы где-то взяли задание, ничего не уточнив, не разобравшись, а спрашиваете у нас. Вы там и спрашивайте, где задание взяли.
0
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
26.10.2009, 16:17  [ТС]
это здача 3.4 из задачника Юркин А.Г. Задачник по программированию. Спб.: Питер, 2002. никаких объяснений там не дано.обычно решать стараюсь сам, а тут даже не знаю с чего начать,я в тупике.

Прошу у Вас помощи
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
26.10.2009, 16:34
Я понял так.
1. Задается точка на плоскости T(x,y).
2. Вводятся габариты первого прямоугольника. Стороны прямоугольника параллельны осям координат.
Таким образом задаются расстояния от точки до всех сторон прямоугольника. (Условие ввода
a<=x<=b; c<=y<=d нужно проверять).
3. Вводятся габариты второго прямоугольника, считается их площадь перекрытия.
4. Значениям первого присваиваются значения второго, второму новые значения и все в цикле повторяется N раз.
0
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
27.10.2009, 15:00  [ТС]
если задавать рассояние от точки T до сторон прямугольника, то рассояние до параллельных сторон будет равное,какой тогда смысл вводить a,b,c,d если можно обойтись a,с да и условие врдебы смысл теряет.Что-то тут не так.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
27.10.2009, 20:05
Чушь. Пусть абцисса = 5 , габариты по горизонтали могут изменяться в любых пределах, но a<= 5, а b>=5, например a=-1000 b=50000
0
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
28.10.2009, 15:30  [ТС]
точно!ну щас попробую напишу программу.
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
28.10.2009, 23:05
Я понял так.
1. Задается точка на плоскости T(x,y).
Скорее всего x,y - это просто неизвестные, а не какая-то конкретная точка !
То есть для произвольных x,y система уравнений a<=x<=b, c<=y<=d описывает все точки прямоугольника.

А саму задачу следует читать так:
В цикле много раз вводятся 4 числа a,b,c,d задающие границы прямоугольника.
Нужно найти пересечение всех введенных прямоугольников и посчитать площадь пересечения.

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

Как найти прямоугольник являющийся пересечением двух прямоугольников думаю сам догадаешься.
1
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
29.10.2009, 08:30
Цитата Сообщение от Gabberr Посмотреть сообщение
Прямоугольник на плоскости a<=x<=b; c<=y<=d задается четырьмя числами
odip, Написано же что задается по данному условию, т.е. х,у уже заданы, иначе как выполнить условие ввода данных?
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
29.10.2009, 15:14
Еще раз - это просто уравнение фигуры на плоскости.
(x,y) - это произвольная точка фигуры.
Фигура задается системой уравнений.

А что условие - вот читаем условие ввода данных:
Последовательно вводятся габариты n прямоугольников.
Вводятся 4 числа.
Вводятся n раз.
Никаких x,y не вводится.

система уравнений a<=x<=b, c<=y<=d описывает все точки прямоугольника
Они просто хотели сказать что прямоугольники не как попало находятся на плоскости, а их стороны параллельны OX и OY.

Ну не знаю как тебе еще объяснить чтобы ты понял.
Например уравнение прямой: a*x+b*y+c=0.
Тут a,b,c - какие-то конкретные константы.
(x,y) - это любая точка прямой.
То есть любая точка прямой удовлетворяет этому уравнению. И данное уравнение описывает все точки прямой.

Окружность на плоскости описывается уравнением:
x*x+y*y=r*2
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
29.10.2009, 15:59
А парабола y=ax^2+bx+c;
0
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
30.10.2009, 14:17  [ТС]
решил!!!

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
31
32
33
34
35
program prog34;
  uses crt;
var
   i,n,a,b,c,d,a1,b1,c1,d1,s:integer;
begin
  clrscr;
  writeln('введите количество прямоугольников (не меее двух)');
  repeat
    readln(n);
  until n>1;
  writeln('введите габариты первого прямоугольника (a<b),(c<d)');
 repeat
   readln(a,b,c,d)
 until (a<b) and (c<d);
 writeln('введите следующий прямоугольник');
 for i:=1 to n-1 do
 begin
  readln(a1,b1,c1,d1);
  if (b<=a1) or (d<=c1) then
    writeln('прямоугольники не пересекаются')
  else
  begin
   if a<a1 then
     a:=a1;
   if b>b1 then
     b:=b1;
   if c<c1 then
     c:=c1;
   if d>d1 then
     d:=d1;
   s:=(b-a)*(d-c);
   writeln('площадь пересечения равна ',s);
  end;
 end;
end.
1
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
30.10.2009, 14:23  [ТС]
препод объяснил: условие a<=x<=b; c<=y<=d означает, что на оси oX задаются две точки с условием (a<b) и на oY так же задаются две точки c,d (c<d).
0
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
30.10.2009, 16:52  [ТС]
не отладил чуток))
где условия пересечения нужно добавить ещё 2 условия: (b1<a) or (d<c)
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
31.10.2009, 16:25
Если не думать долго, а просто написать алгоритм
Пусть a,b,c,d - старое пересечение.
Пусть a1,b1,c1,d1 - новый прямоугольник.
Тогда новое пересечение:
a= max(a,a1); b= min(b,b1);
c= max(c,c1); d= min(d,d1);

Подсчет площади:
C
1
2
3
4
5
if ( a<=b && c<=d ) {
    s= (b-a)*(d-c);
} else {
    s= 0; // не пересекаются
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.10.2009, 16:25
Помогаю со студенческими работами здесь

метод прямоугольников
Помогите пожалуйста, с погрешностью 0.001 вычислить по методу прямоугольников:

Метод прямоугольников
Нужна помощь. Задание: написать программу, которач использует метод прямоугольников: 1.правых, 2.левых, 3.средних(??? Если такие есть =)...

Подсчитать количество прямоугольников
На квадратном клетчатом листе бумаги размером 10х10 клеток нарисовано несколько прямоугольников.каждый состоит из целых клеток,различные...

формула правых прямоугольников
как вычислить по формуле правых прямоугольников, если можно о сбьяснением, интеграл на картинке

Поиск прямоугольников в матрице
Помогите решить. На квадратном клетчатом листе бумаги нарисовано несколько прямоугольников. Каждый прямоугольник состоит из целых клеток,...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru