Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Теория программирования > Игры разума
Перезагрузить страницу Можно ли из заготовки радиусом r вырезать прямоугольные пластины
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
excellent excellent вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.04.2006
По умолчанию Можно ли из заготовки радиусом r вырезать прямоугольные пластины - 26.04.2006, 15:39

Можно ли из заготовки радиусом r вырезать две прямоугольные пластины размером a х b и c x d ? Eсли две пластины вырезать удается, то вывести слово “Да”, иначе – слово “Нет”.

Есть даже пример

“Заготовка”
Можно ли из прямоугольной заготовки размером a x b вырезать две прямоугольные пластины размером c х d и k x m ?
Пример. Для a=6, b=3, c=1, d=3, k=7, m=1 ответом будет “Нет”.

Код:
CLS
PRINT "Введите значения заготовок"
INPUT a, b, c, d, k, m
IF (a >= (c + k)) AND (b >= d) AND (b >= m) THEN
PRINT "да"
ELSE
IF (a >= (c + m)) AND (b >= d) AND (b >= k) THEN
PRINT "да"
ELSE
IF (a >= (d + m)) AND (b >= c) AND (b >= k) THEN
PRINT "да"
ELSE
IF (a >= (d + k)) AND (b >= c) AND (b >= m) THEN
PRINT "да"
ELSE
IF (b >= (c + k)) AND (a >= d) AND (a >= m) THEN
PRINT "да"
ELSE
IF (b >= (c + m)) AND (a >= d) AND (a >= k) THEN
PRINT "да"
ELSE
IF (b >= (d + m)) AND (a >= c) AND (a >= k) THEN
PRINT "да"
ELSE
IF (b >= (d + k)) AND (a >= c) AND (a >= m) THEN
PRINT "да"
ELSE
PRINT "нет"
END IF
END IF
END IF
END IF
END IF
END IF
END IF
END IF
Никак не могу решить с кругом. Кто силён?
Ответить с цитированием
  (#2 (permalink)) Старый
Sartorius Sartorius вне форума
Member
 
Сообщений: 92
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 14.04.2006
По умолчанию 26.04.2006, 16:56

Код:
#include "stdafx.h"
#include "iostream"
#include "math.h"
// first rectangle
#define A 1.0 
#define B 13.0 
// second rectangle
#define C 2.0
#define D 3.0
// radius of circle
#define R 5.0

using namespace std;

bool possible()
{
    double large_max, large_min, small_max, small_min, tmp, h, high_vertex_x, high_vertex_y;
    if (A > B) {
  large_max = A; 
  large_min = B;
    }
    else {
  large_max = B; 
  large_min = A;
    }
    if (C > D) {
  small_max = C; 
  small_min = D;
    } 
    else
    {
  small_max = D;
  small_min = C;
    }
    if (large_max < small_max) {
  tmp = large_max;
  large_max = small_max;
  small_max = tmp;

  tmp = large_min;
  large_min = small_min;
  small_min = tmp;
    }

    h = sqrt(R * R - (large_max / 2.0) * (large_max / 2.0));
    high_vertex_x = (small_max / 2.0);
    high_vertex_y = large_min + small_min;
    if (((high_vertex_x - 0) * (high_vertex_x - 0) + (high_vertex_y - h) * (high_vertex_y - h)) < R * R) {
  return true;
    }
    else {
  return false;
    }
}
int _tmain(int argc, _TCHAR* argv[])
{
    cout << possible();
    return 0;
}
Ответить с цитированием
  (#3 (permalink)) Старый
excellent excellent вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.04.2006
По умолчанию 26.04.2006, 17:26

Спасибо!

О-о-о-о-о, я с СИ не очень дружу, хотелось бы алгоритм решения по русски, понять чтоб было проще. А вообще то на Delphi учусь.

Ну чтож приступим, начнем разбирать, что к чему.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чем вырезать мёртвый кластер? AlfaRazieL Память 2 03.05.2012 15:53
Нужно вырезать разъёмы Weel12 Электроника и самоделки 0 17.04.2011 21:07
Организация Wi-Fi сети радиусом до 100 м 633 Wi-Fi и сети 7 08.03.2010 14:16
Как на форме вырезать область l&#39;Question WinAPI 1 19.01.2010 12:56
Как вырезать видео? sandzhi Видео 2 03.03.2009 23:08
Каким инструментом можно вырезать окно в крышке компа zyza75 Моддинг 24 18.08.2008 00:36
Чем и как в корпусе вырезать окно? petrov95 Любые вопросы от новичков 5 23.06.2008 10:45
Каким способом можно вырезать музыку из фильма? svetiks Любые вопросы от новичков 6 28.05.2008 04:06
Как можно вырезать текст от первой запятой и до второй ELFofMETAL C++ Builder 5 27.07.2006 10:44
Как вырезать фрагмент строки ELFofMETAL C++ Builder 8 04.05.2006 15:45
Как вырезать все комментарии Andrey1 Perl 4 12.10.2004 19:18



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов