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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Внимание! Есть замечания модератора по теме: Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы.
Старый 01.12.2012, 19:27   #1
Simon1712
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 36
По умолчанию Задача на паскаль - поместится ли прямоугольная открытка в прямогуольный конверт

Код:
uses crt;
function Vhod(a,b,c,d:longint):string;
var x:longint;
begin
if a<b then
 begin
  x:=a;
  a:=b;
  b:=x;
 end;
if c<d then
 begin
  x:=c;
  c:=d;
  d:=x;
 end; 
if (a>=c)and(b>=d)then Vhod:='войдет'
else if (c*c+d*d>a*a+b*b)then Vhod:='не войдет'
else if(a*b>2*c*d)and((c*c+d*d-b*b)*(c*c+d*d-a*a)<=a*a*b*b-4*a*b*c*d+4*c*c*d*d)
then Vhod:='войдет' else Vhod:='не войдет';
end;
var a,b:longint;{конверт}
    c,d:longint;{открытка}
begin
clrscr;
writeln('Введите размеры конверта:');
readln(a,b);
writeln('Введите размеры конверта:');
readln(c,d);
write(Vhod(a,b,c,d));
readln
end.



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


Не могли бы вы разъяснить мне решение, а то я не совсем понимаю, что тут да как...
Simon1712 вне форума Ответить с цитированием
Старый 01.12.2012, 21:04   #2
vokar97
Пользователь
 
Аватар для vokar97
 
Регистрация: 23.10.2012
Сообщений: 27
По умолчанию

А это решение не легче?
Код:
var x1, x2, y1, y2, s1, s2 : integer;
begin
     SetConsoleCP(1251); SetConsoleOutputCP(1251);
   Write('Введите длину и ширину конверта: '); Readln(x1, y1);
   Write('Введите длину и ширину открытки: '); Readln(x2, y2);
   if (x1<x2) or (y1<y2) then Writeln('Не влезет');
   if (x1>=x2) and (y1>=y2)  then Writeln('Влезет');
   Readln;
end.
P.S. Заранее прошу прощения, если воспримешь мой вариант как оффтоп.

UPD: Извиняюсь, сглупил :D

Последний раз редактировалось vokar97; 01.12.2012 в 21:19. Причина: Пересмотрел свой код
vokar97 вне форума Ответить с цитированием
Старый 01.12.2012, 21:12   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
А это решение не легче?
а открытка 4X5 влезет в конверт 5x4
по вашему коду нет а на самом деле ДА

Цитата:
это хитрая проверка на возможность положить открытку под углом
это именно она )
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 01.12.2012 в 21:22.
Mad_Cat вне форума Ответить с цитированием
Старый 01.12.2012, 21:15   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

vokar97, я пока не понял решения в первом посте , но мне кажется, что эти условия написаны не просто так.
Ваш вариант проверяет только случай, когда конверт и открытка располагаются параллельно оси (т.е. не повернуты относительно друг друга), и то не во всех случаях.

Mad_Cat, как Вы считаете, все условия излишни, или это хитрая проверка на возможность положить открытку под углом?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 01.12.2012, 21:40   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
(т.е. не повернуты относительно друг друга)
Если в задании имеется ввиду любое расположение открытки в конверте, а не привычное, по-человечески, то это задание глупое и на практике не применимо.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.12.2012, 21:44   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Stilet, не соглашусь с Вами. Допустим у Вас есть короткий конверт и длинная открытка, которая помещается, только если положить ее под некоторым углом.
Такая задача есть в книге Е. В. Андреевой "Программирование — это так просто, программирование — это так сложно", но, каюсь, пока не смог ее решить.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 01.12.2012, 21:47   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
BDA
Я имел ввиду, что в жизни при трезвом рассудке так никто не пакует )
Обычно покупают конверты соответствующего размера. Не зря на все это есть ГОСТы, и между прочим они соблюдаются очень строго (я на почте работаю, так что в курсе).
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.12.2012, 22:05   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

С жизненным опытом и ГОСТом не могу спорить.
(В книге задача сформулирована чуть по-другому - насколько помню, там хотят узнать, можно ли поместить 1 прямоугольник в другой; и 2 вариант задачи - прямоугольная дыра в стене и кирпич)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 01.12.2012, 22:37   #9
Simon1712
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 36
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Stilet,
Такая задача есть в книге Е. В. Андреевой "Программирование — это так просто, программирование — это так сложно", но, каюсь, пока не смог ее решить.
Я собственно у нее и учусь
Simon1712 вне форума Ответить с цитированием
Старый 02.12.2012, 21:22   #10
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я имел ввиду, что в жизни при трезвом рассудке так никто не пакует )
Обычно покупают конверты соответствующего размера. Не зря на все это есть ГОСТы, и между прочим они соблюдаются очень строго (я на почте работаю, так что в курсе).
Код:
begin
  writeln('Если и открытка и конверт удовлетворяют ГОСТ, то открытка обязательно поместится в конверт');
end.
Это к тому, что в подобных задачах и "открытка" и "конверт" - вещи в значительной степени условные.
Можно, конечно, сформулировать ту же самую задачу в терминах прямоугольников, но от этого она станет менее наглядной и, скорее всего, более длинной.
Но т.к. в задаче не указано, что открытка должна иметь стороны параллельные сторонам конверта, а открытку 10х1 можно разместить в конверте 9х9, то ответ "нет", очевидно, будет неправильным.
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
открытка в delphi tec46 Помощь студентам 15 24.04.2013 00:15
Открытка и конверт Helen236 Паскаль, Turbo Pascal, PascalABC.NET 2 06.04.2012 22:56
Открытка на Новый год =) #include <Markus> Свободное общение 25 03.01.2012 12:53
Новогодняя Открытка С.М.С Софт 10 30.12.2009 22:48