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

» Вопросы по программированию на C/С++

Автор: veronica b
Дата сообщения: 15.05.2007 14:33
xdude, я тоже не совсем понял про асски код. Вот программа и все работает.

Цитата:

/*
    15/05/2007
*/


#include <iostream.h>
#include <stdlib.h>

void EnterPass()
{
    int k;

    cout << "Enter password" << endl;
    cin >> k;

    if(k == 1)
    exit(0);
}


int main()
{
    cout << "in main()\n";

    EnterPass();

    cout << "Return from main)\n";

    return 0;
}

Автор: MFPSoftware
Дата сообщения: 17.05.2007 13:49
veronica b
вот это именно то, что нужно =) Проблема, значит, была именно в нолике)

Всем спасибо за помощь =)
Автор: Anyan
Дата сообщения: 21.05.2007 17:58
Хотел спросить опытных людей - для начала изучения, книга Хилла Мюрея и Страустрап Бьярн С++ (http://fanlib.ru/BooksList.aspx?RubricId=8e802405-a779-4346-ae34-bfe792f01fd2) подходит?
Автор: veronica b
Дата сообщения: 21.05.2007 22:15
Anyan, я вам расскажу одну историю. 100 лет назад, в США, когда только начал развиваться профессиональый баскетбол, хозяин одной команды заметил, что, если пришедший устраиваться человек, нагибается, заходя к нему в кабинет, то из него получается хороший игрок!
Вот так в С++ дверью служит математика, если вы с ней на ты и Матанализ не вызывает у вас трудности, то у вас есть хороший шанс выучить С++. Книга не играет большой роли.
Автор: Vladimir_Pashutin
Дата сообщения: 22.05.2007 05:37
Anyan, Бьёрн Страуструп - это классика жанра, так что вперёд, несмотря на подколки. Правда там не слишком-то всё разжёвано, но если осилить, то не пожалеешь.


Добавлено:
Извиняюсь, по указанной ссылке лежит первая из книг Страуструпа, там всё разжёвано.
Автор: veronica b
Дата сообщения: 22.05.2007 07:46

Цитата:
но если осилить

Тут ключевое слово если. А если нет, что намного вероятнее, то что делать? Человек теряет веру в свои силы и бросает все, хотя, что либо другое, он бы изучил легко и просто. Понимаете, в языках С/С++ есть такая вещь, как указатели. Вещь не сложная, но достаточно абстрактная. Если вы её не понимаете, то вы не владеете языкоми С/С++ . Что бы не обижать многих программистов, которые не смогли это усвоить, создали языки Java, C#. Они похоже на С/С++, но без указателей. Поэтому, может вам стоит сразу, не тратить время и силы, начать учить Java, C#.
Автор: xdude
Дата сообщения: 22.05.2007 10:01

Цитата:
в языках С/С++ есть такая вещь, как указатели. Вещь не сложная, но достаточно абстрактная.

Не думаю, что указатели - это самое сложное и абстрактное, что есть в С++. Взать хотя бы темплейты и переопределение операторов - многие именно на этом начинают буксовать. А вообще, ИМХО, по старинке, лучше всего начать изучать программирование с турбо-паскаля, а потом плавно переходить на С++, если речь действительно идет об изучении программирования в целом, а не языка С++ в частности (в чем я не совсем уверен, исходя из начального поста).
Автор: Qraizer
Дата сообщения: 22.05.2007 12:56

Цитата:
...Взать хотя бы темплейты и переопределение операторов - многие именно на этом начинают буксовать...
А я вот особо не буксовал. Но когда решил, что уже изучил их, сатана подкинул мне книжечку Александреску. И тут началось... Вот уж воистину райское яблочко. Обожаю С++.
Автор: veronica b
Дата сообщения: 22.05.2007 13:35
xdude, во первых мы говорим о языках С/С++, во вторых можно писать прграмму на С++ не используя темплейты и переопределение операторов, но очень тяжело написать программу на С без указателей.
Qraizer, чувствовается, что вы С++ знаете превосходно. Я на это обратил внимание.
Но ребята ответье мне, перед тем как начать учить С/С++, на каком уровне у вас была математика?

Автор: Vladimir_Pashutin
Дата сообщения: 22.05.2007 13:35
Qraizer
Скинь плз ссылочку на это яблочко, а то я до сих пор пребываю в уверенности что для меня нет тайн в С++
Автор: TeXpert
Дата сообщения: 22.05.2007 18:32
Vladimir_Pashutin
Есть на http://c-books.info, 3 Мб pdf, скан. Надеюсь, Qraizer не обидится, что я за него отвечаю).
Автор: RedLord
Дата сообщения: 22.05.2007 19:12
Qraizer

Цитата:
подкинул мне книжечку Александреску

код из которой с трудом пережевывают компилеры

Vladimir_Pashutin

Цитата:
до сих пор пребываю в уверенности что для меня нет тайн в С++

поиграйся с экспортом шаблонов.

P.S.
подозреваю, что и в Стандарте не все тайны раскрыты язык продолжает развиваться и совершенствоваться.

Автор: veronica b
Дата сообщения: 22.05.2007 21:17
Vladimir_Pashutin вам эта ссылка тоже понравится
http://anatolix.naumen.ru/Books/CPlusPlus?v=ezq
Там и другие книги есть

Автор: Vladimir_Pashutin
Дата сообщения: 23.05.2007 06:34
RedLord
Стандарт - это лишь средство договориться, а каждый компилятор вещь в себе! С экспортом шаблонов приходилось сталкиваться, особенно доставляет удовольствие выяснять специфические последствия применения специализаций после наследования в шаблонах. Но дорогу осилит идущий и не всегда следует достигать совершенства в деталях.

Добавлено:
PS За ссылки на книги всем спасибо!
Автор: RedLord
Дата сообщения: 23.05.2007 08:55
Vladimir_Pashutin

Цитата:
С экспортом шаблонов приходилось сталкиваться

каким компилером собирал?
ИМХО: экспорт шаблонов поддерживает Comeau и Intel под Linux
Автор: Vladimir_Pashutin
Дата сообщения: 23.05.2007 09:18
RedLord
Ну, тут должен покаяться, экспорт шаблонов у меня оказался неудачным, разбирал доставшийся в наследство код, неизвестного происхождения и компилировал его на Visual Studio, как обычно в условиях цейтнота, и понял всю прелесть экспорта шаблонов только когда переписал процентов 40 всего кода. И ты сейчас натолкнул меня на мысль проверить, а не появилась ли их поддержка в Visual Studio.net. счас правда тоже цейтнот, так что займусь этим летом.
Автор: Qraizer
Дата сообщения: 23.05.2007 12:33
veronica b
Математика? Это был мой любимый предмет в школе. Производные и интегралы в размере школьной программы осилил ещё в 7-м классе.
TeXpert & veronica b
Не обижусь. Тем более, что ссылочки у меня не было - я читал "натуральный" вариант.
RedLord & Vladimir_Pashutin
По поводу экспорта шаблонов - я на интел сильно обиделся, когда выяснилось, что их поддержка не включена в Win-версию их компилятора. Правда, уже доступна 10-я версия, но что-то сильно сомневаюсь. Да и Visual Studio ленится.
Автор: RedLord
Дата сообщения: 23.05.2007 14:43
Qraizer

Цитата:
Visual Studio ленится

Саттер несколько лет назад вносил предложение исключить экспорт из стандарта . отказали.

в сторону Comeau под Win даже не смотри.
как компилер он хорош, как оптимизатор и совместимость на уровне dllexport/dllimport - гуано.
Автор: veronica b
Дата сообщения: 23.05.2007 18:21
Qraizer

Цитата:
Математика? Это был мой любимый предмет в школе. Производные и интегралы в размере школьной программы осилил ещё в 7-м классе.

А я в девятом, но сам по книге "Высшая математика для начинающих и ее приложении к физике", Зельдовича. Без математической подготовки языки С и С++ не выучишь. Безполезно

Цитата:
как компилер он хорош, как оптимизатор и совместимость на уровне dllexport/dllimport - гуано.

Гуано - это весьма ценая состовляющая экспорта Чили. Кстати, в моей практике я не встречался с необходимостью применения шаблонов.
Автор: RedLord
Дата сообщения: 23.05.2007 19:59
veronica b

Цитата:
Гуано - это весьма ценая состовляющая экспорта Чили




Цитата:
Кстати, в моей практике я не встречался с необходимостью применения шаблонов

Но они существуют. и хорошо выручают. хотя злоупотреблять тоже не следует.
Автор: DrHead
Дата сообщения: 24.05.2007 00:48
Помогите пожалуйста!!!
Задача написать програму для сортировке чего-угодно методом 'quick sort', с использованием template классов. В принципе сам алгоритм не проблема(надеюсь). Не знаю просто как вызвать методы класса в int main. Вот примерно структура программы(функции, которые пустые, я напишу сам). Объясните как мне вызвать эти функции в int main пожалуйста. Вот код:


Код: #include <iostream>
using namespace std;

template <class Item>
class Array
{
    private:
        Item *arrayPtr;
        int size;
    public:
        Array(int n)
        {
            size=n;
            arrayPtr = new Item [n];
        }
        Item & operator[] (int index)
        {
            return arrayPtr[index]
        }
        };





template <class Item>
class Sort
{
private:
    void partition1(Array<Item*>& A,int l, int r)
    {
    
    
    
    }
public:
    void qSort(Array<Item*>& A, int l, int r)
    {}

    void generateAscending(Array<Item*>& A,int n)
    {
     int n=12; // заполнить массив
Array<int> A(n);
for (int i = 0; i < n; i++)
         A[i] = i+1;
for (int i = 0; i < n; i++)
         cout<<A[i]<<" ";
    }
    
};

int main()
{
Sort<int> t; // здесь я пытаюсь вызвать функцию generateAscending, но не работает
t.generateAscending(А,int n); // подскажите как нужно пожалуйста(функция генерирует массив, который должен будет сортироваться в дальнейшем)

    system ("pause");
};
Автор: Qraizer
Дата сообщения: 24.05.2007 13:07
veronica b
Цитата:
Кстати, в моей практике я не встречался с необходимостью применения шаблонов.
До момента откровения (см. выше) я тоже их не применял. Сейчас почти в каждой моей программе они присутствуют. Пока не представляешь себе вкупе всех возможностей той или иной языковой конструкции, вполне нормально не видеть многих мест для её применения. Можно сказать, что Александреску показал мне направление, а дальше уже проще пошло. Да и сырцы boost-а внушают.
Автор: Vladimir_Pashutin
Дата сообщения: 24.05.2007 17:11
Qraizer

Цитата:
До момента откровения

Благодарю за ссылку, признаться давно не получал таких эмоций, хоть и не откровение, но выше всяких похвал, не приходило в голову что можно с типами такое вытворять. Правда и задач такого уровня последние два года у меня не было, но сейчас как раз намечается. БЛАГОДАРЮ.
Автор: MFPSoftware
Дата сообщения: 24.05.2007 19:14
Есть функция, в которой считывается текстовой файл. Хочу сделать, что бы в функцию можно было передавать имя файла, который нужно считать.

Сейчас прототип выглядит так:

Код: void Save()
{
ofstream group;
group.open("file.txt", ios::trunc);
....
}
Автор: Labutin
Дата сообщения: 24.05.2007 19:34
void Save(const char * const fileName)
{
...
group.open(fileName, ios::trunc);
}
Автор: WiseAlex
Дата сообщения: 25.05.2007 12:56
вопрос по макросам
хотелось бы реализовать такое:

Код:
BEGIN_STRUCT(StructName)
FIELD(int a:2, fieldDescription)
FIELD(int b:4, fieldDescription)
...
END_STRUCT(StructName)
Автор: Qraizer
Дата сообщения: 25.05.2007 13:23
Vladimir_Pashutin
Спасибо скорее не мне, а скорее veronica b и TeXpert. И кстати, с Александреску у меня только началось, откровение пришло позже примерно на полгода, когда опыту поднабрался.
Да и вот забыл:
Цитата:
Стандарт - это лишь средство договориться, а каждый компилятор вещь в себе!
Не совсем так. Стандарт - это закон. Любая реализация обязана ему следовать. Но может расширять предоставляемые возможности, причём в рамках, опять-таки определёнными стандартом. Поэтому, если какая-нибудь реализация не удовлетворяет хоть одному пункту стандарта, она априори неправа. Посему отсутствие поддержки экпорта шаблонов с моей точки зрения есть очень большой недостаток.
Автор: Vladimir_Pashutin
Дата сообщения: 25.05.2007 14:12
Qraizer

Цитата:
Поэтому, если какая-нибудь реализация не удовлетворяет хоть одному пункту стандарта, она априори неправа.

Тут можно слишком глубоко увязнуть в дебрях курицы и яйца. Естесственно должно быть установлено поголовное соблюдение стандартов, но кто ж например у нас в стране соблюдает все законы? Да и потом, если не делать расширений стандарта, то и развитие остановится, а после принятия изменений стандарта свои замечательные решения подгонять под требования стандартов что-то мало охотников. Короче имеем что имеем, и глюки и фичи и как всегда заплатные решения. Но несмотря на всё это в подавляющем большинстве случаев в первую очередь ищи проблемы у себя, а если начал сомневаться в соблюдении стандартов компилятором - то либо делаешь полную ерунду (что чаще всего) либо ты наконец добрался до возможностей передовых технологий и тебе повезло упереться в недоговорённости разработчиков компиляторов по поводу трактовки стандарта, ну тут уж что ж ... Всё равно твои проблемы никто за тебя не решит. Говоря про вещь в себе, я имел ввиду эти редкие элементы. Просто мне в такие ситуации приходилось попадать довольно часто.
Автор: Qraizer
Дата сообщения: 25.05.2007 20:01
Проблема курицы и яйца тут решается легко: стандарт - закон. Всё. Ну а если что-то из стандарта в некой конкретной реализации не реализовано, так об этом написано большими буквами в реадми. Так что статус-кво так или иначе соблюдается, хоть это и не всегда радует.
Изменения в стандарте - до сих пор такая практика используется - всегда (почти) идёт с соблюдением обратной совместимости. Примеров тому немало - абсолютно неструктурный, но стандартизованный в этой своей форме switch; ключевые слова auto, inline и register, давно уж изжившие себя; С-библиотека вместо аналогичной по фунциональности "портированной" в C++; трёхвариантный char (знаковый, беззнаковый и никакой), вместо отдельно char и отдельно какие-нибудь signed/unsigned byte, например; итп. На нарушение принципа обратной совместимости идут крайне редко, и то только тогда, когда изменений в существующих проектах либо мало, либо они несложно реализуются. Либо таких проектов в принципе немного, хотя тут оценки, конечно, приблизительные. Например, отмена неявного int в составных типах. Поэтому нормально (читай, переносимо) написанный проект будет требовать совсем мало усилий для поддержки и сопровождения, не взирая ни на какие изменения в стандарте.
Другое дело, когда проект насквозь пронизан расширениями стандарта. Тут авторам не позавидуешь. С другой стороны, кто им виноват, что они сами себя загнали в угол? Это я к
Цитата:
...но кто ж например у нас в стране соблюдает все законы
Можно не соблюдать, но потом винить, кроме себя, будет некого.
Что касается "законодательной" силы стандарта. Я в эпоху перед откровением как-то набросал большущую библиотеку, которая вся сплошь была метапрограммной. (Кстати, во время её написания "откровение" как раз и наступило. ) При том, что в то время её мог потянуть только Intel Compiler (точнее, всё, что юзает EDG, но не суть). Сейчас её прекрасно понимают (из доступных мне реализаций) Comeau и MSVC. Так что стандарт - это законодательная сила.
Автор: TeXpert
Дата сообщения: 25.05.2007 21:07
Qraizer
Цитата:
...стандарт - закон

Цитата:
Можно не соблюдать, но потом винить, кроме себя, будет некого
Отлично сказано.
Цитата:
Кстати, во время её написания "откровение" как раз и наступило
Своеобразный "инкубационный" период).

Ребята, вопрос: насколько знаю, к Intel Compiler есть мощная математическая библиотека. Меня интересует версия как для Unix-систем, так и для Windows. Где разжиться можно?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

Предыдущая тема: не знаю как назвать тему :-)


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