Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Часть 2. Я начинающий, подскажите как...(Все вопросы начинающих!!!)

51K
05 июля 2009 года
Олориин
1 / / 05.07.2009
День добрый вопрос такой: в ListBox создал 3 столбца
ListBox1->Columns=3;
каким образом записать строку в второй и третий столбцы?

1636 ответов / показаны 1441 - 1479

Страницы:
9.7K
30 октября 2011 года
Vitamant
228 / / 07.02.2011
Отсутствуют BB-теги "code" вокруг твоего кода. Это как минимум.

Не силен в С++, но попробую помочь: чего вдруг твой оператор, принимающий в качестве второго элемента указатель на Time должен работать с int. Даже если С++ позволяет вот так вот переводить целые числа в адреса (но я сомневаюсь, что это позволит компилятор), то в ссылающемся черт знает куда указателе точно не будет объекта Time с полями h, m и s.

В будущем приводи, пожалуйста, полный код, а не огрызки из него. В твоем варианте ты вообще прибавляешь не инициализированную k.
14K
31 октября 2011 года
artem_kvadro
63 / / 30.07.2007
Нужно сделать что-то наподобие DataGrid, как в 4-ой версии. Есть у меня созданные в XAML контролы на Grid'е. Вот я думаю именовать контролы так, чтоб в конце стоял номер строки: ComboBox1, ComboBox2 и т.д. Затем, чтоб пройти по всему столбцу, нужно в цикле просто добавлять номер к строковой переменной. А вот как обращаться к контролам по этому строковому имени?
9.7K
01 ноября 2011 года
Vitamant
228 / / 07.02.2011
Цитата: artem_kvadro
Нужно сделать что-то наподобие DataGrid, как в 4-ой версии. Есть у меня созданные в XAML контролы на Grid'е. Вот я думаю именовать контролы так, чтоб в конце стоял номер строки: ComboBox1, ComboBox2 и т.д. Затем, чтоб пройти по всему столбцу, нужно в цикле просто добавлять номер к строковой переменной. А вот как обращаться к контролам по этому строковому имени?



http://www.c-sharpcorner.com/UploadFile/mahesh/FindName10022009122153PM/FindName.aspx

77K
01 ноября 2011 года
Матраскин
2 / / 01.11.2011
Всем доброго времени суток!
У меня такая просьба, ребят, подскажите мне пожалуйста с чего начать учить с++?Посоветуйте литературу именно для новичка,скачал две книги: Стивен Прата - Язык программирования С++ лекции и упражнения, и Липман - с++. Как вы думаете это подойдет для новичка?Желательно бы такую книжку где для начала объясняется для чего это применяется и где используется,что бы хоть примерно знать назначение той или иной функции. Искал видео уроки, но потом передумал, лучше читать книжки. Да и наверное литературу лучше купить, долго не могу читать на компьютере,неудобно, лучше когда книга в руках. Сейчас я учусь в Отрадненском Нефтяном техникуме на факультете ЭВМ,сейчас нас переименовали в КС. Уже на 2 курсе, но больно то ничему не учат, по электротехнике сидим заряды считаем, по МиЛоЭВТ пишем таблицы истинности, по информационным технологиям в ворде, в экселе работаем не много. Глядя на все начинаешь понимать, что ни кто ничему не научит, нужно самому искать,читать книги, практиковаться,учить. Сейчас после новогодней сессии, по МиЛоЭВТ начнем изучать Паскаль и Бейсик. Паскаль немного,так поверхностно изучали в 8 классе в школе. Еще не могу точно для себя определиться, что мне более нужно,перспективнее, что писать клиентские программы,или же писать драйвера какие нибудь, или еще что,(Объясните,или подскажите литературу) чем еще может заниматься программист, кроме клиентских программ,драйверов...с этим я пока не разбираюсь и не знаю на какой путь встать. После техникума в армию, приду пойду в институт по этой же специальности, но наверное заочно, надеюсь после армии пойти работать.
С нетерпением жду Ваших ответов!
С Большим Уважением!
Родионов Александр.
9.7K
01 ноября 2011 года
Vitamant
228 / / 07.02.2011
С++ не был интересен, так что из новых работ ничего не подскажу. Из классики - Страуструп, однозначно: http://lib.ru/CPPHB/cpptut.txt

На чем и как писать, на самом деле, особого значения не имеет. Изучи различные виды - объектно-ориентированное программирование (пусть будет С++), функциональное (Haskell, Mathematica, Nemerle), декларативное (WPF\C#). После этого ты сможешь писать что угодно и на чем угодно. Захочешь заниматься системным - начнешь изучение ассёмблера, IL. Здесь не будет красивых интерфейсов, писать большей части придется на чистом С, реже - на С++, но зато ты будешь знать, как работает каждый "винтик" в компьютере. Захочешь красочного дизайна - перйдешь с С++ на Qt (или уйдешь на другую платформу - Java, WPF\C#). А если заинтересуешься логикой и вычислениями - любой из функциональных языков станет тебе лучшим другом. В любом случае, С++ является отличной отправной точкой, после которой ты можешь двигать в любом направлении.

И да, настоятельно рекомендую в следующем семестре выполнить только необходимый минимум по паскалю и васику и не вдаваться вглубь изучения этих богомерзких языков. Испортишь карму. :)
Удачи!
77K
01 ноября 2011 года
Матраскин
2 / / 01.11.2011
Vitamant

Огромное спасибо тебе за советы!Очень ценю! Много узнал нового и интересного..куда двигаться..Спасибо)начну С++ и дальше как ты говорил маленькими осторожными шажками пойду дальше "функциональное (Haskell, Mathematica, Nemerle), декларативное (WPF\C#)."
Спасибо за совет про Паскаль с бейсиком XD учту!
70K
02 ноября 2011 года
Настен
37 / / 13.10.2011
Добрый день!!!!
Срочно,помогите написать программу!!!!!

В текстовом файле (создается самостоятельно по заданному ниже образцу, можно скопировать образец) дана информация о студентах одной группы:
• Фамилия
• Имя
• Отчество
• Оценка по программированию
• Оценка по мат. анализу
• Оценка по алгебре
Написать программу, реализующую работу контейнера для хранения и обработки этой информации. Необходимо:
1. Создать контейнер (класс для хранения и обработки даных в виде динамического массива) и загрузить в него данные о студентах ( реализацию TStudent, реализацию TGroup,чтение из файла)
2. Вывести на экран список студентов группы и средний балл для каждого ( за вывод Ф.И.О.,вывод среднего балла, реализацию выводов с использованием property)
3. Вывести список студентов, имеющих высший балл по программированию (т.е. с максимальным баллом в группе, и это может быть не обязательно пятёрка)
4. Вывести список студентов, фамилии которых начинаются с заданного шаблона (например, для шаблона «Ива» получаем список: Иванов, Иванчиков, Ивахов, Иващенко и т.п.)
В программе реализовать классы TStudent и TGroup. В классе TStudent обязательно реализовать метод для вывода информации о студенте на экран и метод для подсчета среднего балла студента.
77K
02 ноября 2011 года
Солнышко
2 / / 02.11.2011
Скажите,пожалуйста,я начинающий программист и мне не очень ясна данная тема: дан двумерный массив a размерности m на n целого типа.Сформировать массив С, состоящий из сумм элементов "контуров", образующих квадраты с центрами, совпадающими с геометрическим центром квадратной матрицы (m=n).с чего начинать?
77K
02 ноября 2011 года
Солнышко
2 / / 02.11.2011
писать программу в Visial Studio2010 C++ нужно
70K
02 ноября 2011 года
Настен
37 / / 13.10.2011
Подскажите,как правильно создавать классы по принципу дерева,дэка,стека,очереди...
14
02 ноября 2011 года
Phodopus
3.3K / / 19.06.2008
Цитата: Матраскин

Спасибо за совет про Паскаль с бейсиком XD учту!


Про бейсик ничего не скажу, хотя с него начинал, а от паскаля в восторге в том числе и создатель STL. Так что учите, все полезно в меру.

14
02 ноября 2011 года
Phodopus
3.3K / / 19.06.2008
Цитата: Солнышко
Скажите,пожалуйста,я начинающий программист и мне не очень ясна данная тема: дан двумерный массив a размерности m на n целого типа.Сформировать массив С, состоящий из сумм элементов "контуров", образующих квадраты с центрами, совпадающими с геометрическим центром квадратной матрицы (m=n).с чего начинать?


я так понял "a" и "C" это имена переменных? Завести эти переменные (если a не дано). А потом нарисовать на бумажке квадратную сетку mxn и понять задание.
[COLOR="gray"]ПыСы всегда умиляло задание начинающееся с mxn и заканчивающееся уже m=n. А mxm сразу было не написать?![/COLOR]

14K
03 ноября 2011 года
artem_kvadro
63 / / 30.07.2007
У меня теперь такой вопрос. В окне несколько ComboBox, а источник данных (обычный массив строк) для них должен быть один. Как здесь правильно воспользоваться привязкой Binding? Что-то я запутался с Binding'ом, нужно ли здесь реализовать интерфейс INotifyPropertyChanged?

Сейчас сделал так: массив строк описал как ObservableCollection<string> и присвоил его свойству ItemsSource. Вроде бы в итоге получилось, что хотел, добавляю новые элементы в коллекцию и они появляются в ComboBox'е, но хотелось бы разобраться с Binding'ом.
9.7K
03 ноября 2011 года
Vitamant
228 / / 07.02.2011
Цитата: artem_kvadro
У меня теперь такой вопрос. В окне несколько ComboBox, а источник данных (обычный массив строк) для них должен быть один. Как здесь правильно воспользоваться привязкой Binding? Что-то я запутался с Binding'ом, нужно ли здесь реализовать интерфейс INotifyPropertyChanged?

Сейчас сделал так: массив строк описал как ObservableCollection<string> и присвоил его свойству ItemsSource. Вроде бы в итоге получилось, что хотел, добавляю новые элементы в коллекцию и они появляются в ComboBox'е, но хотелось бы разобраться с Binding'ом.


Ты всё сделал правильно. Единственное, я не понял - как ты "присвоил его свойству ItemsSource" и при этом не разобрался с байндингом? :) Что тебе осталось не понятно?

ObservableCollection предоставляет доступ к событиям CollectionChanged и PropertyChanged. Первое вызывается всякий раз, когда изменяется содержимое коллекции. Все интересующиеся могут на это событие подписаться (что ComboBox делает автоматически, при задании ObservableCollection в качестве ItemsSource) и отображать эти изменения.

Твой вариант должен выглядеть примерно так:

Код:
<Window x:Class="MyNamespace.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="clr-namespace:MyNamespace.ViewModels" Title="Window1" Height="300" Width="300">
    <Window.DataContext>
        <vm:MyViewModel/>
    </Window.DataContext>
    <Grid>
        <StackPanel>
            <TextBlock Text="{Binding SomeStrings.Count}"/>
            <ComboBox ItemsSource="{Binding SomeStrings}"/>
            <ComboBox ItemsSource="{Binding SomeStrings}"/>
        </StackPanel>
    </Grid>
</Window>


Код:
public seald class MyViewModel
{
  private readonly ObservableCollection<string> someStrings = new ObservableCollection<string> { "String1", "String2", "String3" };

        /// <summary>
        /// Источник данных ComboBox'ов
        /// </summary>
        public ObservableCollection<string> SomeStrings
        {
            get { return someStrings ; }
        }
}


INotifyPropertyChanged же нужно реализовывать только в том случае, если может изменится само свойство, к которому ты привязываешься. Например - если SomeStrings может возвращать ссылки на разные коллекции. Например так:

Код:
<Window x:Class="MyNamespace.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="clr-namespace:MyNamespace.ViewModels" Title="Window1" Height="300" Width="300">
    <Window.DataContext>
        <vm:MyViewModel/>
    </Window.DataContext>
    <Grid>
        <StackPanel>
            <CheckBox IsChecked="{Binding FirstCollection, Mode=TwoWay}"/>
            <ComboBox ItemsSource="{Binding SomeStrings}"/>
            <ComboBox ItemsSource="{Binding SomeStrings}"/>
        </StackPanel>
    </Grid>
</Window>


Код:
public seald class MyViewModel : INotifyPropertyChanged
{
  private readonly ObservableCollection<string> someStrings1 = new ObservableCollection<string> { "String1", "String2", "String3" };
  private readonly ObservableCollection<string> someStrings2 = new ObservableCollection<string> { "String4", "String5", "String6" };

        bool firstCollection = true;

        public bool FirstCollection
        {
            get { return firstCollection ; }
            set
            {
                if (firstCollection != value)
                {
                    firstCollection = value;
                    PropertyChanged(this, new PropertyChangedEventArgs("FirstCollection"));
                    PropertyChanged(this, new PropertyChangedEventArgs("SomeStrings"));
                }
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;

        /// <summary>
        /// Источник данных ComboBox'ов
        /// </summary>
        public ObservableCollection<string> SomeStrings
        {
            get { return FirstCollection ? someStrings1 : someStrings2; }
        }
}


В данном примере в окне расположен CheckBox, который определяет - какую коллекцию следует использовать. Заметь, что при задании этого свойства, генерируется оповещение об изменении двух свойств: самого свойства (на слаучай, если к нему будет привязано еще что-то или оно будет меняться из кода) и SomeStrings. Последнее как раз и скажет твоим комбобоксам, что их источник данных изменен и пора обновить содержимое. :)
77K
04 ноября 2011 года
LeXar
1 / / 04.11.2011
Доброго времени суток!
Что я хочу: создать абстрактный класс, частично реализующий интерфейс
Проблема: ошибка компилятора CS0106: Модификатор "abstract" недопустим для этого элемента. (Для метода Reset и MoveNext)
Без этого модификатора, понятно, требует реализацию метода. Что делать?

Код:
using INDEX = System.UInt32;
    public abstract class NonNullElem<T> : System.Collections.IEnumerator
    {
        public INDEX i, j;
        public T elem;

        public void SetContent(INDEX i, INDEX j, T elem)
        {
            this.i = i;
            this.j = j;
            this.elem = elem;
        }
        object System.Collections.IEnumerator.Current
        {
            get
            {
                return this;
            }
        }
        abstract void System.Collections.IEnumerator.Reset();
        abstract bool System.Collections.IEnumerator.MoveNext();
    }
77K
04 ноября 2011 года
BiDiFo
1 / / 04.11.2011
Уважаемые форумчане!
Есть две готовые программы, хочу сделать для них общий интерфейс. В интерфейсе должно быть меню для выбора программы 1 или программы 2, и после выбора в окне интерфейса должна запуститься программа.
Возможна ли реализация когда интерфейс запускал бы "в себе" ехе от программ ? если да, подскажите как правильно сформулировать запрос для поисковой системы, что бы хоть что то по этому поводу найти ...
9.7K
04 ноября 2011 года
Vitamant
228 / / 07.02.2011
Цитата: LeXar
Доброго времени суток!
Что я хочу: создать абстрактный класс, частично реализующий интерфейс


Доброго! Ну, так и делай:

 
Код:
public abstract void Reset();
public abstract bool MoveNext();

Кстати, абстрактные методы не могут быть приватными, а методы Reset и MoveNext интерфейса должны быть публичными. Что ты хотел сказать своей конструкцией - не знаю. :)
297
04 ноября 2011 года
koodeer
1.2K / / 02.05.2009
Цитата: BiDiFo
Уважаемые форумчане!
Есть две готовые программы, хочу сделать для них общий интерфейс. В интерфейсе должно быть меню для выбора программы 1 или программы 2, и после выбора в окне интерфейса должна запуститься программа.
Возможна ли реализация когда интерфейс запускал бы "в себе" ехе от программ ? если да, подскажите как правильно сформулировать запрос для поисковой системы, что бы хоть что то по этому поводу найти ...


Какой язык: C, C++, C#? Какой гуй?
Впрочем, в любом случае всё сводится к использованию функции SetParent.
Пример для C#: тыц.

75K
05 ноября 2011 года
GeraldIstar
3 / / 05.11.2011
Всем доброго времени суток. Пишу на С++, столкнулся со следующей проблемой. Есть класс TechSeq, есть класс TechOp. В состав TechSeq входит вектор TechOp, под идентификатором tSeq. Есть экземпляр класса TechSeq - tqNewSeq. Хочу сделать: tqNewSeq->tSeq.erase(i); i естественно определен. При попытки скомилить ругается:
E2285 Could not find a match for 'vector<TechOp,allocator<TechOp> >::erase(int)'
Что-то совсем не догоняю, почему его int'овые интераторы не устраивают. Я с векторами впервые работаю, поэтому сообразить, где ошибаюсь не могу.

Еще возникла следующая проблема: класс TechOp имеет два конструктора - один с аргументами, другой без. При попытке выделить память под переменную или инициализоровать ее (не уверен, что именно):
TechOp *toTemp = new TechOp();
не может скомпилироваться, валиться на этапе линковки - Unresolved external TechOp::TechOp();
70K
06 ноября 2011 года
Настен
37 / / 13.10.2011
Добрый день!!!
Помогите описать главную функцию программы,и перегрузить оператор объединения множеств.
Код:
#include<iostream>
#include <conio.h>
#include <stdio.h>
class set
{
    class element
    {
        public:
            const int a;
            element *next;
            element(int _a):a(_a), next(NULL) { }
            void draw()
            {
                printf("%d ",a);
            };
    } *e;
   
    int count;
    public:
        set():e(NULL), count(0) { }
       
        ~set()
        {
            element *temp;
            while (e != NULL)
            {
                temp = e;
                e = e->next;
                delete temp;
            }
            count = 0;
        }
       
        void set::add(int b)
        {  
            element*i=e;
            if(!i)
            {
                i=new element(b);
                count++;
                return;
            }
            if (b>=i->a)
            {
                if (i->a==b) return;
                else
                {
                    while (!(i->next==NULL)&&(b>=i->next->a))
                    i=i->next;
                    element*temp=new element(b);
                    temp->next=i->next;
                    i->next=temp;
                    count++;
                    return;
                }
            }
            else
            {
                element*temp=new element(b);
                temp->next=e;
                e=temp;
                return;
            }
        }
        set*set::operator && (const set B)
        {
            set C;
            element*ia=this->e;
            element*ib=B.e;
            while (ia!=NULL)
            {
                while (ib!=NULL)
                {
                    if(ia->a==ib->a)
                        {C.add(ia->a);
                    ia=ia->next; }
                    else
                    {
                        if (ia->a>ib->a)
                            ib=ib->next;
                        else
                            ia=ia->next;
                    }
                }
            }
        }
};
75K
06 ноября 2011 года
fudobat
3 / / 02.11.2011
к примеру текстовый файл содержит строку qwertyTEST
 
Код:
file // путь к файлу
fstream file_obekt(file); // открываем его
file_obekt.seekp (5) // передвинуть позицию
file_obekt << 'a'; // запись
file_obekt.put('a');
file_obekt.close();

в результате получилось qwertyааST а мне нужно получить qwertyaaTEST
14
06 ноября 2011 года
Phodopus
3.3K / / 19.06.2008
Цитата: fudobat
к примеру текстовый файл содержит строку qwertyTEST
в результате получилось qwertyааST а мне нужно получить qwertyaaTEST


"вставка" в файл так не работает, надо или переносить информацию из старого файла в новый с добавлением необходимого посередине, или предварительно расширять файл и сдвигать байты после вставляемого куска

75K
07 ноября 2011 года
fudobat
3 / / 02.11.2011
а можно пример хотя бы самый простой
как это сделать
14
07 ноября 2011 года
Phodopus
3.3K / / 19.06.2008
Цитата: fudobat
а можно пример хотя бы самый простой
как это сделать


такую ерунду уж пожалуйста самостоятельно. читаем из ф1 пишем в ф2 сколько-то. пишем новое в ф2. дочитываем из ф1 и пишем в ф2 оставшееся. удаляем ф1 и переименовываем ф2 - по вкусу.

14K
08 ноября 2011 года
artem_kvadro
63 / / 30.07.2007
Нужно из таблицы dbBinder удалить несколько записей, которые в поле IDGroup имеют одинаковый groupID. Сделал так:
 
Код:
var delList =
    from table in dbBinder
    where table.IDGroup == groupID
    select table;

foreach (var record in delList)
{
    dbBinder.DeleteOnSubmit(record);
}
this.SubmitChanges();

Существует ли более "красивое" решение LINQ, чем удалять в цикле foreach каждую запись?


[COLOR="gray"]P.S.Vitamant, спасибо, разжевал про Binding, но репу не могу поднять почему-то.[/COLOR]
75K
09 ноября 2011 года
GeraldIstar
3 / / 05.11.2011
Имеется следующее:
Код:
//----------------------------------------------Classes.h
class TechOp {

    string Caption;
    string Description;
    bool ManualMode;
    double Duration;

    bool SwitchMode();
    void Reset();

};

class TechSeq {



    string Caption;
    string Description;
    vector<TechOp> tSeq;
    vector<TechOp>::iterator OpIterator;

    TDateTime CalculateDuration();
    void Reset();
    void SaveToFile();
    void LoadFromFile(char* filename);

};

//--------------------------------------------------Classes.cpp
void TechSeq::SaveToFile()
{
    char* tsq = ".tsq";
    char* filename = strcat( (char*)Caption.c_str(), (char*)tsq );
    FILE *tqFile = fopen(filename,"wb+");
    unsigned int sizeofVar;

    //Пишем размер заголовка и сам заголовок
    sizeofVar = sizeof(Caption);
    fwrite(&sizeofVar,sizeof(int),1,tqFile);
    fwrite(&Caption,sizeof(Caption),1,tqFile);

    //Пишем размер описания и само описание
    sizeofVar = sizeof(Description);
    fwrite(&sizeofVar,sizeof(int),1,tqFile);
    fwrite(&Description,sizeof(Description),1,tqFile);

    //Пишем размер вектора и сам вектор
    sizeofVar = sizeof(tSeq);
    fwrite(&sizeofVar,sizeof(int),1,tqFile);
    fwrite(&tSeq,sizeof(tSeq),1,tqFile);

   fclose(tqFile);



};

void TechSeq::LoadFromFile(char* filename)
{
    FILE *tqFile = fopen(filename,"rb+");
    unsigned int sizeofVar;

    //Читаем размер заголовка и сам заголовок
    fread(&sizeofVar,sizeof(int),1,tqFile);
    fread(&Caption,sizeofVar,1,tqFile);

    //Читаем размер описания и само описание
    fread(&sizeofVar,sizeof(int),1,tqFile);
    fread(&Description,sizeofVar,1,tqFile);


    //Читаем размер вектора и сам вектор
    fread(&sizeofVar,sizeof(int),1,tqFile);
    fread(&tSeq,sizeofVar,1,tqFile);

    fclose(tqFile);

};

//-----------------------------main.cpp

vector<TechSeq> CurrentsSeq;
TechSeq *tmpSq = new TechSeq;

void __fastcall TForm1::N5Click(TObject *Sender)
{
                                                    //Регистрация тех.процесса

    if (OpenDialog1->Execute())
        {

          tmpSq->LoadFromFile((char*)OpenDialog1->FileName.c_str());

          CurrentsSeq.push_back(*tmpSq); //Тут нормально
          Label1->Caption = tmpSq->Caption.c_str(); //А тут вылетает с Assess Violation или что-то в этом роде
//Label1 пришпандорил для проверки.
   
        };


}

Все лишнее выкинул для удобства восприятия. Работаю в CodeGear 2009.
Суть: есть класс технической операции TechOp, там есть члены с типом string, размер не фиксированный и заранее не известный. Есть класс TechSeq, который кроме всего прочего содержит vector<TechOp>.
В main.cpp есть vector<TechSeq> CurrentsSeq - текущие тех.последовательности. В него через tmpSeq планирутся загружать TechSeq из файлов.
Собсвенно в чем может быть ошибка?
70K
09 ноября 2011 года
Настен
37 / / 13.10.2011
Не могу найти и исправить ошибки.программа на множества по принципу стека,объединение,пересечение,дополнение множеств.
Код:
#include <conio.h>
#include <stdio.h>
# include <iostream>
using namespace std;
class set
{
class element
{
public:
    const int a;
    element *next;
    element(int _a):a(_a), next(NULL) { }
} *e;

int count;
public:
    set():e(NULL), count(0) { }
    ~set()
    {
        element *temp;
        while (e != NULL)
        {
            temp = e;
            e = e->next;
            delete temp;
        }
        count = 0;
    }

void set::add(int b)
{
    element*i=e;
    if(!i)
    {
        i=new element(b);
        count++;
        return;
    }
    if (b>=i->a)
    {
        if (i->a==b) return;
        else
        {
            while (!(i->next==NULL)&&(b>=i->next->a))
                i=i->next;
            element*temp=new element(b);
            temp->next=i->next;
            i->next=temp;
            count++;
            return;
        }
    }
    else
    {
        element*temp=new element(b);
        temp->next=e;
        e=temp;
        return;
    }
}
void draw()
{
    element *temp=e;
    while(e!=NULL)
    {
        cout<<e->a;
        e=e->next;
    }
    e=temp;
    cout<<"колличество:"<<count;
}
void set::del(int a)//удаление
{
    element * temp = new element (a);
    element  * t = new element  (a);
    t=e;//доп.переменную
    temp=e->next;
    if (e->a==a) {e=e->next; return;}//по всему списку идем и удаляем
    while (temp)
    {
        if (temp->a==a)
        {
            t->next=temp->next;
            delete temp;
            return;
        }
        temp=temp->next;
        t=t->next;
    }
}


set*set::operator && (const set B)
{
    set C;
    element*ia=this->e;
    element*ib=B.e;
    while (ia!=NULL)
    {
        while (ib!=NULL)
        {
            if(ia->a==ib->a)
            {
                C.add(ia->a);
                ia=ia->next;
            }
            else
            {
                if (ia->a>ib->a)
                    ib=ib->next;
                else

                    ia=ia->next;
            }
        }
    }
}
set*set::operator || (const set B)
{
    set D;
    element*ia=this->e;
    element*ib=B.e;
    while (ia!=NULL)
    {
        while (ib!=NULL)
        {
            if(ia->a==ib->a)
            {
                D.add(ia->a);
                ia=ia->next;
            }
            else
                ia=ia->next;

        }
    }
}
set * operator / (const set B)
{
    element*ia=this->e;
    element*ib=B.e;
    while (ia!=NULL)
    {\
    while (ib!=NULL)
    {
        if(ia->a==ib->a)
            while (e)
            {
                this->del.set(e->a);
                e=e->next;
            }
    }
    }
}
};
void main()
{
    setlocale(LC_ALL, "Russian");
    set A,B,C;
    int a;
    a=1;
    cout<<"введите первое множество"<<"\n";
    while (a)
    {
        cin>>a;
        A.add(a);
    }
    a=1;
    cout<<"введите второе множество"<<"\n";
    while(a)
    {
        cin>>a;
        B.add(a);
    }
    cout<<"\n-----------------\n";
    A.draw();
    cout<<"\n-----------------\n";
    B.draw();
    set *C=A&&B;
    cout<<"объединение(&&)";
    C.draw();
    set *C=A||B;
    cout<<"пересечение(||)";
    C.draw();
    set *C=A/B;
    cout<<"дополнение(/)";
    C.draw();
    getch();
}
9.7K
10 ноября 2011 года
Vitamant
228 / / 07.02.2011
Цитата: Настен
Не могу найти и исправить ошибки.программа на множества по принципу стека,объединение,пересечение,дополнение множеств.


Леди, не можете или лень?
Если лень - вам не сюда.
Если не можете... почему? Программа комплириуется? (если нет, то их за вас найдет компилятор) Если да, то что конкретно не работает или работает неверно? Что мешает воспользоваться отладчиком? Это волшебная штука, позволяющая выполнять программу пошагово и смотреть значения переменных в данный момент времени. Есть в любой приличной среде разработки, будь то Qt, VS или CodeGear. Если вы знаете что должно находиться в конкретной переменной в конкретный момент времени, а там оказывается совершенно другое то нужно смотреть почему. Не получится - возвращайтесь, но уже с конкретными вопросами, а не "ничего не работает".

32K
12 ноября 2011 года
LawManiak
76 / / 24.10.2011
Подскажите как записать текущую системную дату в переменную (только дату), сменить дату на нужную мне (например 19.09.2010) и при необходимости вернуть правильную на место?
VS 2010 C#
297
13 ноября 2011 года
koodeer
1.2K / / 02.05.2009
Цитата: LawManiak
Подскажите как записать текущую системную дату в переменную (только дату), сменить дату на нужную мне (например 19.09.2010) и при необходимости вернуть правильную на место?
VS 2010 C#


 
Код:
var date = DateTime.Today; // получаем текущую дату
var temp = date; // сохраняем дату
date = new DateTime(year: 2010, month: 09, day: 19); // задаём произвольную дату
date = temp; // возвращаем сохранённую дату
32K
13 ноября 2011 года
LawManiak
76 / / 24.10.2011
Ещё вопрос:
Как по нажатию кнопки запустить exe-файл (допустим C:\proc.exe) и следить за тем запущен ли он, а когда его закрывают выполнять какое-то действие (например MessageBox)?
Или например как в bat-файле, где все действия происходят последовательно, т.е. если запустил exe-файл следующее действие не выполнится пока не закроется этот exe...
277
13 ноября 2011 года
arrjj
1.7K / / 26.01.2011
Цитата: LawManiak
Ещё вопрос:
Как по нажатию кнопки запустить exe-файл (допустим C:\proc.exe) и следить за тем запущен ли он, а когда его закрывают выполнять какое-то действие (например MessageBox)?
Или например как в bat-файле, где все действия происходят последовательно, т.е. если запустил exe-файл следующее действие не выполнится пока не закроется этот exe...



1. ShellExecute + WaitForSingleObject
2. start /wait

Но так не сработает для программ в которых разрешен запуск только одной копии (WMP, OOo, ...)

32K
13 ноября 2011 года
LawManiak
76 / / 24.10.2011
Цитата: arrjj
1. ShellExecute + WaitForSingleObject
2. start /wait

Но так не сработает для программ в которых разрешен запуск только одной копии (WMP, OOo, ...)



А можно подробнее или хотя бы на примере? Топик все-таки для начинающих...
VS 2010 C#

277
13 ноября 2011 года
arrjj
1.7K / / 26.01.2011
 
Код:
start /wait firefox
echo "done"
pause

Так из bat
297
13 ноября 2011 года
koodeer
1.2K / / 02.05.2009
LawManiak, смотри класс Process. В нём есть всё, что тебе нужно. В частности, метод Start для запуска приложений; метод WaitForExit для ожидания, пока процесс завершится; событие Exited для отлавливания момента, когда процесс завершился сам, и пр.
69K
14 ноября 2011 года
l2qwe
13 / / 27.09.2011
Доброе время суток.
Вопрос по C# VS2008

Создаю форму и устанавливаю
IsMdiContainer = true;
Помещаю по центру Label с определенным текстом, ставлю чтоб он всегда был по центру.
Но когда создаю форму (MDIChild) она оказывается позади Label, как мне сделать так что бы Label был всегда позади открытых VDIChild'ов
70K
14 ноября 2011 года
Настен
37 / / 13.10.2011
Добрый день!
Как разработать и реализовать базовый класс (Base), объединяющий свойства перечисленных классов. Класс Base должен содержать не менее 2 полей и не менее 2 методов. Создать перечисленные классы как производные для базового класса (Base) с различным уровнем доступа, переопределить в них 1 метод базового класса. Объявить и описать собственные методы в производных классах. Продемонстрировать работу классов.
(студент, преподаватель, заведующий кафедрой.)
9.7K
14 ноября 2011 года
Vitamant
228 / / 07.02.2011
Цитата: Настен
Добрый день!
Как разработать и реализовать базовый класс (Base), объединяющий свойства перечисленных классов. Класс Base должен содержать не менее 2 полей и не менее 2 методов. Создать перечисленные классы как производные для базового класса (Base) с различным уровнем доступа, переопределить в них 1 метод базового класса. Объявить и описать собственные методы в производных классах. Продемонстрировать работу классов.
(студент, преподаватель, заведующий кафедрой.)


Тебе общую идею или конкретный пример? Если пример, то какой язык?

70K
14 ноября 2011 года
Настен
37 / / 13.10.2011
Скорее пример на С++(можно и идею):)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог