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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2011, 16:04   #1
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 433
По умолчанию Что не так с ИЛИ ?

Уважаемые, что не так делаю ? Когда использую И - все работает, как перехожу на ИЛИ программа отказывается сворачиваться под натиском "q".

Может не так ИЛИ ввожу(в принципе не пользуюсь) - || ?

Код:
#include <iostream>

using namespace std;

void menu();

void menu()
{
	cout << "\n\nPlease enter a c, t, p or g:\n"
		"c) carnivore		p) pianist\n"
		"t) tree			g) game\n"
		"q) quit\n";
}

int main()
{
	cout << "Please enter one of the following choises:";
	menu();

	char choise;
	cin >> choise;

	while (choise != 'Q' && choise != 'q')
	{
		switch (choise)
		{
		case 'c':
		case 'C': cout << "Something about carnivore...";
			break;
		case 't':
		case 'T': cout << "Something about tree...";
			break;
		case 'p':
		case 'P': cout << "Something about pianist...";
			break;
		case 'g':
		case 'G': cout << "Something about game...";
			break;
		default: cout << "This is not a choise!";
		}
		menu();
		cin >> choise;
	}
	cout << "Bye" << endl;
	system ("pause");
}
P.s
Если есть время, не могли бы показать как сию программу перевести на Win Api? (я конечно понимаю, что мне до уровня WA еще плыть и плыть, но все же хотелось бы сие увидеть не на черном квадрате, а в Win - если не трудно конечно же)
L6go1as вне форума Ответить с цитированием
Старый 22.11.2011, 16:15   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Код:
while (choise != 'Q' && choise != 'q')
чтоб перейти к ИЛИ, нужно применить закон ДеМоргана
Код:
while (!(choise == 'Q' || choise == 'q'))
эти две записи аналогичны
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 22.11.2011, 16:20   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Может не так ИЛИ ввожу(в принципе не пользуюсь) - || ?
Именно две чёрточки. Остальное, ничё не понял.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 22.11.2011, 16:26   #4
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 433
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
чтоб перейти к ИЛИ, нужно применить закон ДеМоргана
Как часто сие применяется и стоит ли заучивать(записать куда нить) ?
L6go1as вне форума Ответить с цитированием
Старый 22.11.2011, 16:32   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2L6go1as
а как часто применяются свойства ассоциативности/коммутативности/дистрибутивности? законы ДеМоргана примерно так же часто. это нужно просто знать
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 22.11.2011, 16:32   #6
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Вас пустят в метро, если (вы НЕ пьяны И у вас есть жетон)
Вас НЕ пустят в метро, если (вы пьяны ИЛИ у вас НЕТ жетона)

> Как часто сие применяется и стоит ли заучивать(записать куда нить) ?

применяется ежедневно, учить не нужно, просто применяйте логику )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 22.11.2011, 16:43   #7
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
вы пьяны
Вы трезвы.
Вы НЕ трезвы.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 22.11.2011 в 16:46.
Smitt&Wesson вне форума Ответить с цитированием
Старый 22.11.2011, 18:00   #8
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 433
По умолчанию

Дабы не плодить темы, можно ли в теле switch делать циклы ?
Например, есть прога, при выборе preference нужно что бы программа вывела отсортированный список по установленному preference.

Код:
#include <iostream>

using namespace std;

const int strsize = 20;
void menu();

struct bop
{
	char name[strsize];
	char title[strsize];
	char bopname[strsize];
	int preference; //2 - name, 1 - title, 0 - bopname
};

void menu()
{
	cout << "Benelovent Order of Programmers Report\n"
		"a. display by name\n"
		"b. display by title\n"
		"c. display by bopname\n"
		"d. display by preference\n"
		"q. quit\n";
}

int main()
{
	bop members[5] = 
	{
		{"Wimp Macho", "Meneger", "Wimp Macho", 2},
		{"Raki Rhodes", "Saler", "Junior Programmer", 1},
		{"Celia Laiter", "Cashier", "MIPS", 0},
		{"Hoppy Hipmen", "Storeman", "Analyst Trainee", 1},
		{"Pat Hand", "President", "LOOPY", 2}
	};

	menu();
	cout << "Enter your choise: ";

	char choise = 0;
	cin >> choise;

	while (choise !='q' && choise !='Q')
	{
		for (int i = 0; i < 5; i++)
		{
			switch (choise)
			{
			case 'a':
			case 'A': cout << members[i].name << endl; 
				break;
			case 'b':
			case 'B': cout << members[i].title << endl;
				break;
			case 'c':
			case 'C': cout << members[i].bopname << endl;
				break;
			case 'd':
			case 'D': cout << members[i].preference << endl;
				break;
			default: cout << "You're wrong, please enter a, b, c, d or q: ";
			}
		}
		
		menu();
		cout << "Next choise: ";
		cin >> choise;
	}

	cout << "Bye!";
	system("pause");
}
Программа работает как нужно, но вот с preference пока никак - ибо не знаю как вставить цикл ... жду советов )

Последний раз редактировалось L6go1as; 22.11.2011 в 18:04.
L6go1as вне форума Ответить с цитированием
Старый 22.11.2011, 20:59   #9
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 433
По умолчанию

Все еще актуально, ибо как отсортировать preference в свитче - не знаю
L6go1as вне форума Ответить с цитированием
Старый 22.11.2011, 23:51   #10
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Да как и обычно:
Код:
case 'D': 
{
for(inr i=0; i<members[i].preference; i++)
{
cout << members[i].preference << endl;
}	
			break;
}
Ну, или что-то в этом роде.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 22.11.2011 в 23:55.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что с файлом и как его, так сделали или изуродовали? valerij Microsoft Office Excel 4 10.01.2011 16:47
что не так с php кдом или с настройками MySQL+PHP Jimmi Помощь студентам 2 27.12.2010 09:03
Проблема с ParentWindow или SetParent и так плохо и так(когда одно находится в другом) puga555 Общие вопросы Delphi 1 14.12.2009 23:53