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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2013, 19:25   #1
dykee
Пользователь
 
Регистрация: 09.10.2013
Сообщений: 78
По умолчанию Нужна помощь оператор switch

Задание нужно выполнить только оператором свич)
Можно ли на прямоугольном участке застройки размером а на b метров разместить два дома размером в плане р на g и r на q метров? Дома можно располагать только параллель-но сторонам участка.

Я вояю прогу ну блин не получается((
Код:
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<math.h>
int main(void)
{ 
system("chcp 1251");
system("cls");
int a,b,q,r,g,p,S,S1,S2,S3,z;

puts("Введите данные для площади застройки");
printf("Длину: ");
scanf("%d", &b);
printf("Ширину: ");
scanf("%d", &a);
S = a*b;
switch (S)
{
//case 'S' : S = a*b; printf("Площадь застройки");break;
case 'S1': S1 = p*g; printf("Площадь первого дома");break;
case 'S2': S2 = r*q; printf ("Площадь второго дома");break;
case 'S3': S3 = S2+S1; printf("Занимаемая площадь 2х домов");break;
default: S<S3; printf ("Не поместятся");break;
}	
getchar ();
getchar();
return 0;
}

Последний раз редактировалось Stilet; 26.10.2013 в 20:29.
dykee вне форума Ответить с цитированием
Старый 26.10.2013, 20:00   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Ээээ... Switch для такого не предназначен же. Все равно нужно будет сравнивать площади. Опять же, выводов два: можно и нельзя. Может, Вам ответ надо выдать при помощи оператора switch?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 26.10.2013, 20:03   #3
dykee
Пользователь
 
Регистрация: 09.10.2013
Сообщений: 78
По умолчанию

Хорошо а если попробывать сделать ответ через свич, что получится?
dykee вне форума Ответить с цитированием
Старый 26.10.2013, 20:13   #4
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Что то в духе такого:
Код:
*предыдущий код, определяющий результат, если влезают участки - переменная о = 1, не влезают - о = 0*
switch (o) {
case 0: printf("Не входят"); break;
case 1: printf("Входят"); break;
}
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 26.10.2013, 20:28   #5
dykee
Пользователь
 
Регистрация: 09.10.2013
Сообщений: 78
По умолчанию

не понимаю, что вы имеете ввиду
dykee вне форума Ответить с цитированием
Старый 26.10.2013, 20:35   #6
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Через if`ы проверяете, можно ли уместить на большом участке меньшие, в результате получаете ответ "можно" или "нельзя", true or false, 1 или 0 - в любом виде. И через switch выводите соответствующее сообщение.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 26.10.2013, 21:12   #7
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Поиск решения через площади не катит, так как важны размеры домов и участка.
1. Разворачиваем участок по бОльшей стороне. Пусть это - a,b;
2. Разворачиваем дома по бОльшей стороне: p,g и r,q;
3. Сортируем дома по их бОльшей стороне. Пусть: p,g и r,q;
4. Рассматриваем различные ситуации:
- бОльшая сторона дома не больше меньшей стороны участка;
- бОльшая сторона дома не больше большей стороны участка и сумма меньших сторон домов меньше меньшей стороны дома;
- ...

Если нужен switсh, то, например, разворачивание участка:
Код:
switch trunc(a/b)   // в С++ trunc() отбрасывает дробную часть.
{
   case 0: m = a; a = b; b = m; break;
}
Вот только что из такого творчества получится ...


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 26.10.2013, 22:32   #8
dykee
Пользователь
 
Регистрация: 09.10.2013
Сообщений: 78
По умолчанию

ужас, реально без конкретного примера просто не понимаю...
dykee вне форума Ответить с цитированием
Старый 26.10.2013, 23:01   #9
dykee
Пользователь
 
Регистрация: 09.10.2013
Сообщений: 78
По умолчанию

Заливаю новенькое то что я написал по вашим советам
#include<stdio.h>
#include<conio.h>
#include<iostream>
int main(void)
{
system("chcp 1251");
system("cls");
int a,b,q,r,g,p,S,S1,S2,S3,z;

puts("Введите данные для площади застройки");
printf("Длину: ");
scanf("%d", &b);
printf("Ширину: ");
scanf("%d", &a);
S = a*b;
printf("%1.0d Площадь", S);
puts("\nВведите данные для площади 1 дома");
printf("Длинна: ");
scanf("%d", &p);
printf("Ширина: ");
scanf("%d", &g);
S1 = p*g;
printf("%1.0d Площадь", S1);
puts("\nВведите данные для площади 2 дома");
printf("Длинна: ");
scanf("%d", &r);
printf("Ширина: ");
scanf("%d", &q);
S2 = r*q;
printf("\n%1.0d Площадь", S2);
if ( S>=S1+S2 || S1+S2<=S) printf("Поместятся");
else printf("\nНе поместятся");
switch (0)
{
case 0: printf("Не поместятся");break;
case 1: printf("Поместятся");break;
}
getchar ();
getchar();
return 0;
}
dykee вне форума Ответить с цитированием
Старый 27.10.2013, 00:45   #10
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Код:
if ( S>=S1+S2 || S1+S2<=S) printf("Поместятся");
А в чём тут прикол?
Почему не просто:
Код:
if ( S>=S1+S2) printf("Поместятся");
Попробуйте решить вашу задачу при следующих условиях:
Размер участка: 20, 10: 200 кв.м.
Первый дом: 15, 5: 75 кв.м.
Второй дом: 11, 6: 66 кв.м.
Площадь под домами: 141 кв.м. < 200 кв. м.
И? ...


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ оператор SWITCH Ramina Помощь студентам 10 05.02.2012 19:32
switch оператор Alex-Kunfuman Общие вопросы C/C++ 28 22.01.2012 04:42
C++ оператор switch Pingvinenok_Lolo Помощь студентам 4 05.12.2011 23:11
оператор switch aank10 Общие вопросы C/C++ 3 01.06.2011 10:28
Оператор switch. IgorArhangel Помощь студентам 4 16.01.2009 01:53