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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2016, 01:25   #1
fr0st1k123
Пользователь
 
Регистрация: 28.09.2015
Сообщений: 53
По умолчанию интервал в булевом пространстве нужно дополнить.

интервал в булевом пространстве размерности N задан своими максимальными и минимальными элементам. Вывести соответствующий интервалу троичный вектор ( 1011 , 1000-->10--).

Нужно проверить сравнимы ли вектора , если нет - то не интервал , если да то "Вывести соответствующий интервалу троичный вектор "
Как проверить сравнимы вектора или нет ?
Код:
#include "stdafx.h"
#include "iostream"
using namespace std;
 
 
int main()
{
    int N = 4;
    char str1[] = "1011";
    char str2[] = "1000";
    for (int i = 0; i < N; i++)
        cout << (str1[i] == str2[i] ? str1[i] : '-');
    return 0;
}
fr0st1k123 вне форума Ответить с цитированием
Старый 07.01.2016, 03:51   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Чтобы вектора были сравнимы, нужно чтобы по всем компонентам максимальный элемент был больше или равен минимальному.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 08.01.2016, 20:52   #3
fr0st1k123
Пользователь
 
Регистрация: 28.09.2015
Сообщений: 53
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Чтобы вектора были сравнимы, нужно чтобы по всем компонентам максимальный элемент был больше или равен минимальному.
Подскажите как это написать в коде ?
fr0st1k123 вне форума Ответить с цитированием
Старый 08.01.2016, 21:01   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Что-то типа (если без функций):
Код:
bool fl = true;
for (int i = 0; i < N && fl; i++)
    fl = fl && (str1[i] >= str2[i]);
if (fl) {
    //сравнимы
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 17.01.2016, 18:48   #5
fr0st1k123
Пользователь
 
Регистрация: 28.09.2015
Сообщений: 53
По умолчанию

так же как ее сделать через функцию ввода булевых векторов
вот вроде функция , но я не уверен
Код:
 unsigned int vvod(char str1[32], int n)
{
	unsigned int b = 0;
	for (int i = 0; i<n; i++)
		if (str1[i] == '1') b = b | (1<<(n - i - 1));
	return b;
}
fr0st1k123 вне форума Ответить с цитированием
Старый 18.01.2016, 15:14   #6
fr0st1k123
Пользователь
 
Регистрация: 28.09.2015
Сообщений: 53
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Что-то типа (если без функций):
Код:
bool fl = true;
for (int i = 0; i < N && fl; i++)
    fl = fl && (str1[i] >= str2[i]);
if (fl) {
    //сравнимы
}
А не подскажете как сделать через функцию ввода булевых векторов ?
fr0st1k123 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
интервал в булевом пространстве fr0st1k123 Общие вопросы C/C++ 3 21.12.2015 16:04
Нужно дополнить програму (Турбо Паскаль) Sinner1994 Паскаль, Turbo Pascal, PascalABC.NET 3 26.05.2012 11:38
Дополнить нужно небольшое условие в задачу PascalABC Помощь студентам 6 30.10.2011 23:44
Нужно дополнить скрипт moshkin_ura JavaScript, Ajax 7 16.08.2011 19:47