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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2009, 10:57   #1
Dimati87
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 44
По умолчанию помогите с Паскалем

Даны действительные положительные числа A, B, C, X, Y. Выяснить, пройдет ли кирпич с ребрами A, B, C в прямоугольное отверстие со сторонами X,Y.
Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия.
Dimati87 вне форума Ответить с цитированием
Старый 29.04.2009, 11:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну и в чем сложности? Посчитать "проходимца" или отрисовать онного?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.04.2009, 11:40   #3
Dimati87
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 44
По умолчанию

я просто не рублю в программировании не знаю даже счего начать
Dimati87 вне форума Ответить с цитированием
Старый 29.04.2009, 12:07   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну мне это так представляется:
Код:
var a,b,c,x,y:real;
begin
 if (a*a+b*b)=(x*x+y*y) then {Пройдет стороной С}
 if (с*с+b*b)=(x*x+y*y) then {Пройдет стороной А}
 if (a*a+с*с)=(x*x+y*y) then {Пройдет стороной В}
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.04.2009, 16:42   #5
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

Не совсем так. Для того чтобы кирпич прошел в прямоугольное отверстие, необходимо чтобы хотя бы одна сторона кирпича была меньше отверстия. Кирпич в отверстие можно попытаться вставить 6 различными способами. Отсюда следует:
Код:
var a,b,c,x,y: longint;
begin
if ((a<=x) and (b<=y)) or 
   ((a<=y) and (b<=x)) or
   ((a<=x) and (c<=y)) or
   ((a<=y) and (c<=x)) or
   ((b<=x) and (c<=y)) or
   ((b<=y) and (c<=x)) then {проходит}
end.
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Anatole вне форума Ответить с цитированием
Старый 29.04.2009, 16:44   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
чтобы хотя бы одна сторона кирпича была меньше отверстия.
Отверстие 2х2
Кирпич 1.5х56х78. Пройдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.04.2009, 16:45   #7
Veselyn
Форумчанин
 
Аватар для Veselyn
 
Регистрация: 29.01.2009
Сообщений: 175
По умолчанию

кажется так
Код:
var
a, b, c, x, y : integer;
procedure Swap(var z1, z2 : integer);
var
tmp : integer;
begin
tmp := z1;
z1 := z2;
z2 := tmp;
end;
begin
Write('Введите размеры кирпича (a, b, c): ');
ReadLn(a, b, c);
Write('Введите размеры отверстия (x, y): ');
ReadLn(x, y);
if a > b then
Swap(a, B);
if b > c then
Swap(b, c);
if a > b then
Swap(a, B);
if x > y then
Swap(x, y);
if (x >= a) and (y >= B) then
Write('Кирпич пройдет через отверстие')
else
Write('Кирпич не пройдет через отверстие');
ReadLn;
end.
Все люди делятся на 10 типов: те, кто понимают двоичную систему счисления и те, кто нет.
Veselyn вне форума Ответить с цитированием
Старый 29.04.2009, 17:02   #8
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

у кирпича все стороны прямоугольники, а значит необходимо проверять 2 размера
Всякое безобразие должно быть единообразным. Тогда это называется порядком.

Последний раз редактировалось Anatole; 29.04.2009 в 17:05.
Anatole вне форума Ответить с цитированием
Старый 29.04.2009, 17:08   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
а значит необходимо проверять 2 размера
Я потому пифагорм и проверяю...
Хотя может я и не прав, ибо не тестировал программу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.04.2009, 17:20   #10
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

Пифагором не получится поскольку одна и та же диагональ может получаться при разных сочетаниях сторон. И если один из размеров "кирпича" будет больше размера "отверстия" а второй, меньше второго размера "отверстия", то можно получить диагональ меньше чем у "отверстия", а "кирпич" не пройдёт.
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Anatole вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с Паскалем Сатана666 Помощь студентам 2 14.03.2009 12:10
Помогите с паскалем Vanger Помощь студентам 3 08.12.2008 13:14
Помогите с Паскалем Luchnik_666 Помощь студентам 1 19.06.2008 12:54
С Паскалем помогите Panda Помощь студентам 4 17.06.2008 16:35
Помогите с Паскалем clampo Паскаль, Turbo Pascal, PascalABC.NET 7 22.01.2007 13:57