Перейти к содержанию
Обновление форума
Опубликовано
comment_101701

мя очень надеется найти

 

Borland C++ версия 3.1

 

и будет оч-чень благодарна, если вы дадите ссылочку туда, где можно это скачать.

 

Понимаете, у мя она уже была на компе (тогда мя не качала из Сети, а брала у кого-то из друзей), но после переустановки винды часть прог и документов оказалась потеряна ^_^

 

так что граждане-форумчане!! помогите чем можете, не дайте загнуться студенту!!!

заранее спасибо!

Будущее уже наступило. Просто оно еще неравномерно распределено

Gendo Ikari is an anagram for "ignore a kid"

[Yuri][Общество любителей кошек][Дядьки]team

  • Ответов 232
  • Просмотры 41,3 тыс
  • Создана
  • Последний ответ

Топ авторов темы

Рекомендуемые сообщения

Опубликовано
comment_1967897

*_* Как быстр... Слушай прекланяюсь перед ствоим гением... Спасибо огромнейшее... хотя прога не сработала даже с твоими советами... но главное компилируется... Прости еще один вопрос ты не знаешь литератру, которую я могу почитать, а то судя по той что я скачал -___- пример не работает. Нужна литература по VC++

 

 

Вот кстати ошибка : e:\program files\уроки\учимся3\учимся3\урок.cpp(4) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

 

оу честно не знаю что есть int но постави его перд функцией я заставил заработать програму... ток теперь как бы мне получить резульатт... т.е. все замечательно проверка сделана -___- а где мне посмотреть как оно работает.

 

 

Нашел где посмотреть ехе фаил... так но он выводит и сразу закрывается.... как остановить это. Ну т.е. что бы окно оставалось висеть с нужным тебе текстом

 

Ужас еще вопрос, как перейти на старый способ включения файлов ну <iostream.h>

Изменено пользователем Nicholas D. Wolfwood (смотреть историю редактирования)

[ACROSS]

[Кантри ритм] team

Повторяйте за мной... НАША ЗЕМЛЯ СОЗДАНА ИЗ ЛЮБВИ И МИРА ,V..

Опубликовано
comment_1967962

Какая сейчас есть обучающая литература по С++ не знаю, я очень давно с этим языком знакомился. В качестве "библии" в любом случае надо иметь - Бьерн Страуструп, "Язык С++", издание какое-нибудь из последних - но это скорее как справочник, а не как учебник.

 

Посмотри в магазинах учебники именно по С++, без привязки к какой-то определённой среде разработки. Если возникают сложности именно со Студией, то можно и по этой теме отдельную книжку купить, но как правило среду и без книжек постепенно осваиваешь по статьям из инета, по советам с форумов, там в общем то нет ничего сложного и даже методом "тык+хелп" можно освоить.

 

Вот тут - .

В разделе "Статьи/средства разработки/MS Visual Studio/Отладка" очень советую прочитать первые 4 статьи из подраздела "Использование отладчика в Visual C++". Можно даже не вникать поначалу, просто пробежаться, что бы уловить какие вообще возможности по отладке имеются.

Прямой линк на подраздел - [url="http://rsdn.ru/article/vcpp/vcdebug_.xml" target="_blank" rel="nofollow">http://rsdn.ru/article/vcpp/vcdebug_.xml .

 

---------------------------------

 

Что бы результат задержался на экране надо консоль чем-нибудь тормознуть, например ожиданием нажатия клавиши пользователем.

Для этого можно использовать метод getch().

 

Eсли видишь какой-нибудь незнакомый метод (например тот, что выше указан), то запускаешь MSDN, ищешь, выбираешь из найденного ту статью, которая соответствует твоему языку, читаешь статью и там всегда сказано в каком хидере находится данный метод. В данном случае надо подключить заголовочный файл conio.h.

 

Т.е. в итоге у тебя в программу добавится две строчки.

Перед main() - #include <conio.h>.

Перед 'return 0' появится строка - getch().

 

--------------------------------

 

Ужас еще вопрос, как перейти на старый способ включения файлов ну <iostream.h>

Такого файла в поставке Студии нет, есть просто 'iostream'.

Изменено пользователем Рыб (смотреть историю редактирования)

Опубликовано
comment_1968004

Спасибо за совет... во только понять не могу одно..

 

Вот деректива #Include вводит содержимое файла, что записано в треуголных скобках.

Почему iostream пишеться без h, а выше обозначеный conio с h ведь поидее это два файла и они должны одинаково вскрываться что то типа того.

 

Заранее благодарю

[ACROSS]

[Кантри ритм] team

Повторяйте за мной... НАША ЗЕМЛЯ СОЗДАНА ИЗ ЛЮБВИ И МИРА ,V..

Опубликовано
comment_1968103

Странна, что же тогда такое iostream которому не нужно расширение и которое должно поидее быть файлом но им не является... почему в учебниках по С++ iosream записывается с расширением h.

 

И еще вопрос имеет ли смысл использовать тип данных int не заботясь о памяти или все же стоит все же пользоваться Short int и long int

Изменено пользователем Nicholas D. Wolfwood (смотреть историю редактирования)

[ACROSS]

[Кантри ритм] team

Повторяйте за мной... НАША ЗЕМЛЯ СОЗДАНА ИЗ ЛЮБВИ И МИРА ,V..

Опубликовано
comment_1968165
Странна, что же тогда такое iostream которому не нужно расширение и которое должно поидее быть файлом но им не является... почему в учебниках по С++ iosream записывается с расширением h.

Почему файлом не является? В каталоге установки студии лежит именно файл 'iostream'.

[url="http://www.progz.ru/forum/lofiversion/index.php/t28426.html" target="_blank" rel="nofollow">http://www.progz.ru/forum/lofiversion/index.php/t28426.html[/url]

Спойлер
По Стандарту C++ (ISO/IEC 14882, Standard for the C++ Programming Language) правильно использовать <iostream>. Тем не менее, большинство современных сред разработки всё же поддерживают <iostream.h>, который является deprecated (не рекомендованным).

 

Общая рекомендация проста: всегда используйте <iostream>, т.к. <iostream.h> официально не поддерживается и может пропасть в будущих версиях реализаций Standard C++ library. Более того, расширение .h для файлов Standard C++ library не используется уже почти 10 лет.

 

Вот основные отличия <iostream> от <iostream.h>:

1. <iostream> содержит щаблоны классы, которые поддерживают как обычные символы (char), так и "широкие" юникодные (wchar_t). <iostream.h> поддерживает только обычные символы.

2. Интерфейс <iostream> менялся с течением времени - в ходе естественного развития языка C++ и Standard C++ library. Интерфейс <iostream.h> остаётся неизменным уже давно.

3. Классы из <iostream> входят в пространство имён std, в то время как классы из <iostream.h> находятся в глобальном пространстве имён.

 

И еще вопрос имеет ли смысл использовать тип данных int не заботясь о памяти или все же стоит все же пользоваться Short int и long int

Вопрос непонятен ;).

Изменено пользователем Рыб (смотреть историю редактирования)

Опубликовано
comment_1968192

Эммм ну переменной можно задать тип данных int как я понял имеет 16 разрядов (-32 768 до 32 767 знаков) или 32(-2 147 483 до 2 147 483 647 знаков) и полностью повторяет

типы данных short int и long int, Но пишется короче и запутаться сложнее... так можно юзать только тип Int везде или к каждой переменной подходить нужно индивидуально продумывая ее размер.

[ACROSS]

[Кантри ритм] team

Повторяйте за мной... НАША ЗЕМЛЯ СОЗДАНА ИЗ ЛЮБВИ И МИРА ,V..

Опубликовано
comment_1968199
Nicholas D. Wolfwood, тип int зависит от системы и может иметь разный размер (int равен машинному слову). short int имеет 16 разрядов, long int 32 разряда, использовать short особого смысла обычно не имеет, ибо по умолчанию большинство компиляторов ради скорости выделяют под переменную машинное слово (32 бита для x86 и 64 для x86_64).

Изменено пользователем niiro dzyaki (смотреть историю редактирования)

[ Last Exile ] [ Моран жив! ] [ Fallout ] [ Админы ] [ Дядьки ] Teams [奇跡を信じて団 ]
Опубликовано
comment_1968263

Вопрос существует оператор приведения к типу static_cast

Хмм можете объяснить его значение в програмировании... я просто не совсем понимаю... зачем изменять тип переменных, когда он уже был допустим обозначен в функции

 

void FloatDiv(int x, int y)

{

float a = (float)x;

float b = static_cast<float>(y);

float c = a/b;

cout << "c: " << c << "\n";

}

[ACROSS]

[Кантри ритм] team

Повторяйте за мной... НАША ЗЕМЛЯ СОЗДАНА ИЗ ЛЮБВИ И МИРА ,V..

Опубликовано
comment_1968368

Приведение типов достаточно широко применяется. Например приведение указателя на базовый класс к указателю на производный и обратно. Операции с void*.

 

P.S.: столкнёшься на практике, станет очевидно.

Изменено пользователем Рыб (смотреть историю редактирования)

Опубликовано
comment_1968607

Nicholas D. Wolfwood,

Я, поскольку ответил на конкретный вопрос про расширение, - имел в виду только то, что если переименовать iostream в, скажем, xxx.nnn то хуже работать он от этого не станет, просто в программах придётся писать #include <xxx.nnn>. Переименовали его потому что им так захотелось в связи с развитием языка и появлением стандарта, в котором про просто iostream.h ничего не сказано. Поэтому в том же, например, VS.NET (до 2005) при попытке использовать "старый" iostream.h выдавалось предупреждение о том, что в последующих версиях его может и не быть, так что, мол, пишите сразу правильно. Потом они просто выполнили своё обещание.

 

Насчёт приведения типов... Я думаю лучше будет понятно, если посмотреть на другие языки. Например, на PHP с его нестрогой типизацией. В нём хотя в принципе есть разница между типами данных, но можно спокойно присваивать одной и той же переменной данные разных типов. Например, в C/C++ не получится написать $a = 'текст'; $a = 324234, а там это в порядке вещей. Мало того, с переменными можно делать всё что угодно независимо от их типов. Можно сложить, умножить, разделить текст на число, склеить их и наоборот. C++ же язык с более строгой типизацией. Поэтому если у нас есть две переменные разных типов, то даже если физически они представлены одним и тем же числом байт, - мы можем выполнять операции только между одинаковыми типами. Ну или в случае с перегруженными операторами - только с заданными нами. Более того, если мы складываем, скажем int с int'ом и int со float'ом, что всё же допустимо в языке, то на самом деле это две совершенно разных операции (там происходит неявное преобразование типа). Явное приведение типов нужно тогда, когда мы точно уверены, что нам нужно выполнить операцию над разными типами и это не ошибка. Или когда нас крайне сильно интересует, чтобы данные были преобразованы в нужный нам тип до какой-то операции.

В приведённом тобой примере функция получает на входе целочисленные переменные, а выводит результат деления чисел с плавающей запятой. Если бы мы просто написали int a = 3; int b = 2; float c = a / b, то на самом деле деление чисел a и b было бы целочисленным. Т.е. мы получили бы ответ вовсе не 1.5, а 1 из-за округления.

Для чего конкретно static_cast'ы не помню, не юзал.

  • 2 недели спустя...
Опубликовано
comment_1980532

Небольшой вопрос по с++.

Очень часто встречающаяся задача - перегон строки в число. При этом требуется проверка, возможен ли такой перегон в принципе. Для проверки на соответствие int мну нарыл функцию atoi(char*), которая, ежели верить хелпам, возвращает 0 когда преобразование в int невозможно. Вставил, попробовал - затыкается на дробных значениях. Например, 3.6 в инт не переделать, но проверку atoi почему-то проходит. Это глюк, или так и должно быть?

Если долго всматриваться в бездну, можно неплохо провести время.

Опубликовано
comment_1980658

У меня преобразование при помощи atoi работает как и заявлено в документации.

atoi("3.6") = 3

atoi("-3.6") = 3

atoi("zzz") = 0

atoi("3") = 3

Изменено пользователем Рыб (смотреть историю редактирования)

Опубликовано
comment_1980665

Рыб, всё, уже разобрался, я и составители хелпа не поняли друг друга. Функция возвращает не ноль, если может хоть какой-то кусок в начале перегнать в инт. Я искал функцию, которая всю строку анализирует. Есть ли такая в стандартном наборе?

ЗЫ Кстати, у меня atoi("-3.6") = -3

Изменено пользователем Shinsaku-To (смотреть историю редактирования)

Если долго всматриваться в бездну, можно неплохо провести время.

Опубликовано
comment_1980686
Рыб, всё, уже разобрался, я и составители хелпа не поняли друг друга. Функция возвращает не ноль, если может хоть какой-то кусок в начале перегнать в инт. Я искал функцию, которая всю строку анализирует. Есть ли такая в стандартном наборе?

Не знаю, всегда больная тема с этими преобразованиями была. В особо критичных случаях реализовывал своими силами, особенно что касается перевода даты в строку и обратно в независимости от локали.

 

ЗЫ Кстати, у меня atoi("-3.6") = -3

Ага, опечатка ).

Опубликовано
comment_1980745
Рыб, спасибо, понятно. Ладно, напишу. Пора уже собственные прибамбасы про запас копить, можно и с такого начать =)

Если долго всматриваться в бездну, можно неплохо провести время.

Опубликовано
comment_1982202
Shinsaku-To, попробуйте еще копнуть strtol(), strtoul(), strtod() и подобные. Очень хорошие функции, много лучше семейства atoi(). Правда не знаю, обитают ли они в виндовых библиотеках

смертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмер

тьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсм

ертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмерть

смертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмер

  • 1 месяц спустя...
Опубликовано
comment_2009266

Arion Telvanni, круто берёшь )) Без глубоких познаний в низкоуровневом программировании (или даже машинном коде), взаимодействии с системой, лексическом, синтаксическом анализе и прочих прелестей, имхо, никак. Хотя у самого у меня части таких знаний пока нету, возможно, всё проще, чем кажется.

А зачем тебе такое, если не секрет?

 

Вот пояндексил немножко и нашёл такое: [url="http://pascal.sources.ru/parsing/compl1.htm" target="_blank" rel="nofollow">http://pascal.sources.ru/parsing/compl1.htm[/url]

Изменено пользователем Shinsaku-To (смотреть историю редактирования)

Если долго всматриваться в бездну, можно неплохо провести время.

Опубликовано
comment_2009955
Небольшой вопрос.. кто-нить знает как писать компилятор? спс((
Для начала нужно определиться с тем, для какого языка компилятор. Накатать (или каким другим образом найти) документацию на него. Затем пишется фронтенд - странное нечто, которое преобразовывает принятый внутрь текст на данном языке программирования в некую структуру в памяти. В общем случае это граф. Затем этот граф может быть оптимизирован. И вот тут как раз без особенностей машинной архитектуры далеко не уедешь. Потом пишется бэкэнд - не менее странное нечто, перегоняющее полученную структуру в ассемблер для выбранной машины. Затем полученный ассемблерный код прогоняется через собственно ассемблер и получается (может быть) исполняемый (и исполнимый) файл.

 

На самом деле это не так уж и сложно, если не заниматься оптимизацией и не пытаться сразу реализовать кучу фич. Где-то на свежем мясе видел C-компилятор, написанный одним человеком. Он, конечно же, не полностью соответствует стандарту.

 

Вообще же при разработке языка сначала пишется транслятор, а не компилятор.

 

UPD И парочка мизерных C-компиляторов, для указания пути истинного

TCC -

NWCC - [url="http://nwcc.sourceforge.net/download.html" target="_blank" rel="nofollow">http://nwcc.sourceforge.net/download.html

Изменено пользователем Le_0 (смотреть историю редактирования)

смертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмер

тьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсм

ертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмерть

смертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмертьсмер

  • 4 месяца спустя...
Опубликовано
comment_2118946

Помогите нупке в Паскале: мне нужно, чтобы в текстовом режиме можно было подцепить обьект мышью и таскать его по экрану.

В паскале я стремлюсь к нулю, посему нашёл статью, в статье мышь расписана только для модуля Graph.

 

Собсно я в панике. Подскажите плз статью, где можно почитать об использовании мыши в текстовом режиме. Или, если не лень подскажите, как оно делается.

Some folks inherit star spangled eyes

Ooh, they send you down to war, Lord

And when you ask them, "How much should we give?"

Ooh, they only answer More! more! more! y'all

Опубликовано
comment_2118956
MuseHunter, в двух словах не расскажешь. Ищите в гугле доки по Turbo Vision или на callback int 33h свое вешайте (с этим тоже к гуглю, искать SetMouseHandler ).
[ Last Exile ] [ Моран жив! ] [ Fallout ] [ Админы ] [ Дядьки ] Teams [奇跡を信じて団 ]

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

Последние посетители 0

  • Ни одного зарегистрированного пользователя не просматривает данную страницу

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.