Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Срочно нужна помощь C++

Автор: sanyaka2
Дата сообщения: 15.05.2005 14:38
Задача:
Есть множество {1,2...30}
Есть отображение F: {1,2...30} -> {3,4,1,2...30} (задаётся с клавиатуры)
нужно найти максимальное разбиение этого множества
на подмножества V(i), чтобы:
UV(i)={1,2...30}, попарно не пересекались, и
F(V(i)) входит в V(i).

нужно написать прогу на C++ срочно!
Автор: evle
Дата сообщения: 15.05.2005 18:03
sanyaka2
Приведи, пожалуйста, название темы в соответствие с правилами.
Задачу немного не понял. Приведи пример начальных данных и результата.
Автор: sanyaka2
Дата сообщения: 15.05.2005 18:51
Например для n=5.
есть отображение вектора например:
(1,2,3,4,5) -> (3,1,2,4,5)

тогда максимальное разбиение множества (1,2,3,4,5)
будет равно 3, т.е:
(1,2,3), (4), (5)

эти подмножества удовлетворяют условиям:
объединение даёт наше основное, непересекаются и
F((1,2,3))=(3,1,2) что входит в (1,2,3)
F((4))=4 что входит в (4)
F((5))=5 что входит в (5)
Автор: DeADMoHAX
Дата сообщения: 27.06.2005 14:12
Да мне фот тоже нужен хелп. Как остановить выход из программы после вывода итогового знчения.

Код:
a++
cout<<a;
Автор: WiseAlex
Дата сообщения: 27.06.2005 14:35
DeADMoHAX
а простой
cin>>s;
не подойдет?
Автор: DeviL
Дата сообщения: 29.06.2005 15:10
Народ простите что тут постю но новую тему не хочется открывать на небольшой вопрос.

допустим есть некая переменная когда-то описанная
float val;

далее в теле есть такие
if ( val != 0.0)
{ ...


и такие
if ( val != 0)
{ ...


и почему на использовать просто
if (val)
{ ...


что предпочтительнее

val = 0.0;
или
val = 0;

я так понимаю что запись типа val = 0; всеравно приводится компилятором к чему то подобному val = (float)0;
но стоит ли хранить 0.0 в 4 байтах?

какие вещи предпочтительнее в чем особенности.
кто разбирается мона услышать ваще мнение.
Автор: Ambal
Дата сообщения: 30.06.2005 08:58
никакой разницы нет, нолик компилятор сам приведет к нужному типу.
Автор: evle
Дата сообщения: 30.06.2005 09:12
DeviL
Я так думаю, это для того, чтобы самому программисту было понятней, с какими типами он работает.
Автор: DeviL
Дата сообщения: 30.06.2005 11:06
странно так никто и не написал про условия.
не уж то все считают что написать в одной строке
if ((val1 !=0) && (val2 != 0.0) && (val3)) - это нормально?
интересно тут ваще программисты бывают.. ???
Автор: ShIvADeSt
Дата сообщения: 01.07.2005 00:43
DeviL

Цитата:
if ((val1 !=0) && (val2 != 0.0) && (val3)) - это нормально?

Вот смотри в принципе все это идентично val3 НО
Цитата:
это для того, чтобы самому программисту было понятней, с какими типами он работает.
то есть глядя на эту запись он значет, что val1 это целое val2 дробное val3 имеет смысл булеана. Например в паскале можно записать if Flag=true then или if Flag then что в принципе одно и тоже. Если компилятор не выдает варнингов, то запись нормальная ИМХО. Хотя есть общепринятые правила записи.
Автор: dimaniac
Дата сообщения: 01.07.2005 01:10

Цитата:

Задача:
Есть множество {1,2...30}
Есть отображение F: {1,2...30} -> {3,4,1,2...30} (задаётся с клавиатуры)
нужно найти максимальное разбиение этого множества
на подмножества V(i), чтобы:
UV(i)={1,2...30}, попарно не пересекались, и
F(V(i)) входит в V(i).

нужно написать прогу на C++ срочно!


Человеку видимо уже не поможешь но если кому интересно могу рассказать идею.
Во-первых входит значит равны т.к. состоят из одинакового числа элементов.
Во-вторых разбиение по определению и так означает что они не пересекаются.
Далее берем 1 она отображается в 3 по условию 3 должно быть в V(i) поэтому 3 тоже берем ей соответсвут 2. 2 нет в V(i) поэтому ее тоже добавляем. 2 отображается в 1 она уже есть в V(i) Цепь замкнулась. Далее также продолжаем с оставшимися. Разбиение максимальное т.к. мы не можем образовать подмножества меньшего размера по построению.
Автор: DeviL
Дата сообщения: 01.07.2005 09:00

Цитата:
то есть глядя на эту запись он значет, что val1 это целое val2 дробное val3 имеет смысл булеана

да все переменные имеют тип флотов !

Цитата:
val3 имеет смысл булеана

прога на С так что никаих булеанов.

ща сам блин буду тестить на кол-во занимаемой памяти )
Автор: DeADMoHAX
Дата сообщения: 26.07.2005 17:58
WiseAlex

Цитата:
не подойдет?

нет. Да, в принципе помощь уже не нужна. Пока в отпуске был, разобрался
Автор: sergey_ladia
Дата сообщения: 28.07.2005 10:15
Могу немного помоч. На сайте www.ladia.ru в разделе программирование - собрано очень много статей по C++. Если помогут буду рад.
Автор: DeADMoHAX
Дата сообщения: 03.08.2005 18:12
sergey_ladia
вообще сказать - Реклама !!!
Цитата:
Сообщить модератору



Код: include<iosetream>
include<string>

void main(){
string a;
cin>>a;
cout<<a;
}
Автор: WiseAlex
Дата сообщения: 03.08.2005 18:28
DeADMoHAX
перед исрльзованием чего-то из стандартной библиотеки нужно делать или
using namespace std;
или using std::string; и т.д.
или вызывать везде с квалификатором std:: Например std::string
Автор: DeADMoHAX
Дата сообщения: 04.08.2005 09:53

Цитата:
using namespace std;

в VC++ 6 пишу - орет Ошибка
Автор: WiseAlex
Дата сообщения: 04.08.2005 10:07
DeADMoHAX

Цитата:
в VC++ 6 пишу - орет Ошибка

написал бы какая, что пишет, используешь ли mfc, есть ли ошибка в vc7, приведи исправленный текст программы. (пора уже уметь конкретизировать вопрос )
Автор: graycrow
Дата сообщения: 04.08.2005 14:47
DeADMoHAX
такой библиотеки как iosetream нет в природе
Автор: DeADMoHAX
Дата сообщения: 05.08.2005 16:32
WiseAlex
Ошибки в VS7.0 нет, но при работе с файловыми потоками говорит:

Цитата:
error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)


Цитата:
error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)



Код: void create()
{
std::string txt;
ofstream out;
out.open("text.txt");
cout<<"Print your text\n";
cin>>txt; // <<ЗДЕСЬ
out<<txt; // <<И ЗДЕСЬ
out.close();
cout<<"Successfully done !\n";
answ();
}
Автор: EAS
Дата сообщения: 05.08.2005 16:47
DeADMoHAX

Цитата:
error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)

Добавь
#include <string>
и все будет хорошо


Добавлено:
Т.о. для приведенного кода требуются

Код: #include <iostream>
#include <fstream>
#include <string>
Автор: segeich
Дата сообщения: 05.08.2005 17:05
DeADMoHAX

Код:
#include <fstream>
#include <string>

void create()
{
std::string txt;
std::ofstream out;
out.open("text.txt");
std::cout<<"Print your text\n";
std::cin>>txt;
out<<txt;
out.close();
std::cout<<"Successfully done !\n";
answ();
}
Автор: EAS
Дата сообщения: 05.08.2005 17:24
segeich
Если не учитывать, что cin/cout согласно стандарту определяются в <iostream> , все так
Автор: DeADMoHAX
Дата сообщения: 05.08.2005 17:30
EAS
гы. Я ж не совсем дурак. Включил все что ты назвал.
segeich
У меня именно 2-й код.
Автор: WiseAlex
Дата сообщения: 08.08.2005 09:16
DeADMoHAX

Цитата:

#include <fstream>
#include <string>

using namespace std;

void create()
{
string txt;
ofstream out;
out.open("text.txt");
cout<<"Print your text\n";
cin>>txt;
out<<txt;
out.close();
cout<<"Successfully done !\n";
answ();
}

на vc7.1 без проблем...
Автор: DeADMoHAX
Дата сообщения: 08.08.2005 21:05
WiseAlex
ща попробую в 2005 версии.
Автор: DeADMoHAX
Дата сообщения: 11.08.2005 19:23
2005 паленая. Нужен другой выход.
Автор: WiseAlex
Дата сообщения: 15.08.2005 10:54
DeADMoHAX
а 2003 у тебя нет?
а ты случаем не делаешь #include <string.h> так делать нельзя. все без h
Автор: DeADMoHAX
Дата сообщения: 15.08.2005 22:21
WiseAlex
нет. Не делаю.
Автор: DeADMoHAX
Дата сообщения: 10.09.2005 17:56
При компиляции любого MFC Application(даже пустого) вылетает ошибка

Цитата:
fatal error RC4214: Codepage not valid: ignored


Код: #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // ПОКАЗЫВАЕТ СЮДА !!!
#pragma code_page(1252)
#endif //_WIN32

Страницы: 12

Предыдущая тема: Совместная разработка


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.