Список форумов shedevr.org.ru shedevr.org.ru
Группа перевода приставочных игр "ШЕДЕВР"
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Программирование

 
Начать новую тему   Ответить на тему    Список форумов shedevr.org.ru -> Пустопорожняя болтовня
Предыдущая тема :: Следующая тема  
Автор Сообщение
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Вс Янв 07, 2007 7:33 pm    Заголовок сообщения: Программирование Ответить с цитатой

Вот решил я C++ подучить, но после VB это *опа... Над for час мучался, что уж говорить об остальном...
Прошу тех, кто щарит в Си, плиз, скажите,
1. как изменять параметры объектов(Caption'ы и т.п.),
2. как присваивать текстовую переменную с другими переменными,
3. и что такое классы??

З.Ы. Заранее спасибо.
З.З.Ы. У меня MVC++ 6.0
З.З.З.Ы. Как только освою C++, займусь написанием человеческого дебаггера для Gens, в первую очередь сделаю возможность ставить бесконечно много бряков, причём не только по адресам, но и по условиям.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
PEREVODчик



Зарегистрирован: 07.07.2006
Сообщения: 105
Откуда: Kirov

СообщениеДобавлено: Вс Янв 07, 2007 10:05 pm    Заголовок сообщения: Ответить с цитатой

HoRRoR писал(а):
Прошу тех, кто щарит в Си, плиз, скажите,


Если что, могу помочь в конкретном написании кокого-либо действия, в теории C++ как-то не очень...давно не писал прог, начинаю подзабывать...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Вс Янв 07, 2007 10:42 pm    Заголовок сообщения: Ответить с цитатой

PEREVODчик писал(а):
Если что, могу помочь в конкретном написании кокого-либо действия, в теории C++ как-то не очень...давно не писал прог, начинаю подзабывать...

Ну, до конкретных действий мне пока рано Smile Написать бы хотя б обычный загрузчик таблицы в массив для практики.
На бейсике я бы так сделал(в целях экономии места самый примитивный способ):

Dim lin As String ' Строка
Dim flag(1 To 256) As Boolean ' Индикатор заполненных ячеек
Dim table(1 To 256) As String ' Таблица
Open <file> For Input As 1 ' Открываем файл таблицы
While Not EOF(1) ' Пока не конец файла
Line Input #1, lin ' Читаем строку
table(val("&H" & Left(lin, InStr(lin, "=") - 1)) = Right(lin, Len(lin) - InStr(lin, "=")
' ^^^ Берём всё до знака "=", конвертируем в Dec, присваеваем элементу массива с полученным номером всё, что правее "="
flag(val("&H" & left(lin, InStr(lin, "=")-1)) = True ' Отмечаем, что эта ячейка не пустая
Wend ' Повторяем
Close 1 ' Закрываем файл

Какой код на C++ будет аналогичен этому?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Shiru



Зарегистрирован: 25.10.2006
Сообщения: 295
Откуда: Russia, Moscow

СообщениеДобавлено: Вс Янв 07, 2007 11:12 pm    Заголовок сообщения: Re: Программирование Ответить с цитатой

HoRRoR писал(а):
1. как изменять параметры объектов(Caption'ы и т.п.)

Этот вопрос не относится к языку C/C++, как таковому. Параметры объектов будут изменяться в зависимости от реализации этих объектов, так что надо конкретизировать (MSVC - тоже не ответ, т.к. программы под Win можно писать на чистом WinAPI, можно на MFC, можно ещё кучей способов).

В общем случае, если объект является указателем на экземпляр класса - к его 'параметрам' ты будешь обращаться примерно как Object->Parameter=...

HoRRoR писал(а):
2. как присваивать текстовую переменную с другими переменными

В C/C++ нет 'текстовых' (строковых) переменных. Есть массивы, строка текста - это просто массив значений.

Например, char str[100] - массив из 100 элементов типа char (8-битное знаковое число), в который ты можешь запихать строку до 99 символов длиной (ещё 1 символ уйдёт на 0 в конце строки, признак конца строки). С подобными строками работают с помощью набора специальных функций. Например, занести строку в массив - strcpy(str,"твоя строка").

Строки также могут быть реализованы как объект, тогда присвоение им значений и элементарные операции, скорее всего, будут реализованы стандартными операторами - знаком 'равно', 'плюс', и т.д.

HoRRoR писал(а):
3. и что такое классы??

Вот с этого вопроса и надо было начинать. И ещё с вопроса про указатели. Тема эта обширная, в двух словах не объяснишь - лучше всего купить хоть какую-нибудь книжку, и долго её курить.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пн Янв 08, 2007 12:21 am    Заголовок сообщения: Ответить с цитатой

Shiru писал(а):
В общем случае, если объект является указателем на экземпляр класса - к его 'параметрам' ты будешь обращаться примерно как Object->Parameter=...

Эээ... А можно как чайнику объяснить, что такое "указатель на экземпляр класса"? В VB делается так: Object.Parameter=...

Shiru писал(а):
В C/C++ нет 'текстовых' (строковых) переменных. Есть массивы, строка текста - это просто массив значений.

Например, char str[100] - массив из 100 элементов типа char (8-битное знаковое число), в который ты можешь запихать строку до 99 символов длиной (ещё 1 символ уйдёт на 0 в конце строки, признак конца строки). С подобными строками работают с помощью набора специальных функций. Например, занести строку в массив - strcpy(str,"твоя строка").

Строки также могут быть реализованы как объект, тогда присвоение им значений и элементарные операции, скорее всего, будут реализованы стандартными операторами - знаком 'равно', 'плюс', и т.д.

А как выводить, допустим, MessageBox так, чтобы засунуть среди текста переменные?

Shiru писал(а):
Вот с этого вопроса и надо было начинать. И ещё с вопроса про указатели. Тема эта обширная, в двух словах не объяснишь - лучше всего купить хоть какую-нибудь книжку, и долго её курить.

Книжка врядли поможет, мне ещё ни один мануал не помогал, либо сам допирал, либо помогали.

А сколько времени надо убить, чтобы освоить азы C++? На VB дня два мне хватило.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Shiru



Зарегистрирован: 25.10.2006
Сообщения: 295
Откуда: Russia, Moscow

СообщениеДобавлено: Пн Янв 08, 2007 12:42 am    Заголовок сообщения: Ответить с цитатой

HoRRoR писал(а):
Эээ... А можно как чайнику объяснить, что такое "указатель на экземпляр класса"?

Попробуй для начала покурить вот это:
http://www.codenet.ru/progr/visualc/vc/4.php (указатели)
http://www.programmersclub.ru/4 (классы)


HoRRoR писал(а):
А как выводить, допустим, MessageBox так, чтобы засунуть среди текста переменные?

Можно воспользоваться стандартной функцией вывода в строку:

char str[256];//строка такой-то максимальной длины
int a,b; //переменные, которые ты хочешь вывести (предполагается, что где-то ниже ты им присвоишь значения)

sprintf(str,"Длина: %i Толщина: %i",a,b); //выводим в str строку

MessageBox(hWnd,str,"Message",MB_OK);//показываем message box



HoRRoR писал(а):
А сколько времени надо убить, чтобы освоить азы C++? На VB дня два мне хватило.

Чтобы освоить азы C, мне когда-то хватило нескольких недель - на тот момент я знал только Sinclair Basic и ассемблер Z80 (на среднем уровне, несколько простых игрушек написал). А с тонкостями плюсов я до сих пор не особо разобрался, нет желания. На C/C++ одно и тоже можно писать множеством способов, знать всё 'от и до' необязательно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пн Янв 08, 2007 12:53 am    Заголовок сообщения: Ответить с цитатой

Shiru писал(а):
Попробуй для начала покурить вот это:
http://www.codenet.ru/progr/visualc/vc/4.php (указатели)
http://www.programmersclub.ru/4 (классы)

Спасибо, щас попыхчу Smile

Shiru писал(а):
sprintf(str,"Длина: %i Толщина: %i",a,b); //выводим в str строку

Ага, значит это надо не в MsgBox делать Smile Спасибо. А почему везде я вижу разные значения после %? То %s, то %d, то %i...

Shiru писал(а):
Чтобы освоить азы C, мне когда-то хватило нескольких недель - на тот момент я знал только Sinclair Basic и ассемблер Z80 (на среднем уровне, несколько простых игрушек написал). А с тонкостями плюсов я до сих пор не особо разобрался, нет желания. На C/C++ одно и тоже можно писать множеством способов, знать всё 'от и до' необязательно.

Думаю, за месяц освою(азы). "От и до" я учить не собираюсь(даже в VB ещё половины не знаю), но самое необходимое выучу Smile
Насколько реально встроить свой дебаггер в Gens и написать тайловый редактор?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Shiru



Зарегистрирован: 25.10.2006
Сообщения: 295
Откуда: Russia, Moscow

СообщениеДобавлено: Пн Янв 08, 2007 1:48 am    Заголовок сообщения: Ответить с цитатой

HoRRoR писал(а):
А почему везде я вижу разные значения после %? То %s, то %d, то %i...

Это указания, в качестве какого типа рассматривать выводимую переменную. %s - строка, %d - десятичное число со знаком, %i - целое 32-битное число со знаком (int). Довольно подробно всё это описано здесь: http://ru.wikipedia.org/wiki/Printf

HoRRoR писал(а):
Насколько реально встроить свой дебаггер в Gens и написать тайловый редактор?

Разбираться в чужом коде, тем более в таком большом проекте - очень неприятное дело. Но реально, конечно - для решения этих задач больше мороки будет с реализацией интерфейса средствами Windows, чем с кодом эмулятора.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
PEREVODчик



Зарегистрирован: 07.07.2006
Сообщения: 105
Откуда: Kirov

СообщениеДобавлено: Пн Янв 08, 2007 9:34 am    Заголовок сообщения: Ответить с цитатой

HoRRoR писал(а):
А сколько времени надо убить, чтобы освоить азы C++? На VB дня два мне хватило.

Смотря чем пользуешься. Я, например, пользуюсь Borland C++ Builder 6.0-легко разработать интерфейс Windows,не надо над этим зацикливаться - нужно только написать сам код программы.
Если ты пользуешься не Builder'ом, то придеться убить много времени.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Максут
Гость





СообщениеДобавлено: Пн Янв 08, 2007 10:46 am    Заголовок сообщения: Ответить с цитатой

Тоже Билдером пользуюсь, тоже начинающий. Cool
Советую брать уже Borland Builder 2006 - он новее, чем в 6.
Из книг советую:
- С++ Джесс Либерти. С++ освой самостоятельно - чистый С++.
- Кент Рейсфорд и Кен Хендерсон, освой Билдер за 21 день - уже на примере 6 Билдера, WinApi.
Вернуться к началу
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Ср Янв 10, 2007 3:20 pm    Заголовок сообщения: Ответить с цитатой

Что лучше - Borland Builder или Visual C++?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Shiru



Зарегистрирован: 25.10.2006
Сообщения: 295
Откуда: Russia, Moscow

СообщениеДобавлено: Ср Янв 10, 2007 3:39 pm    Заголовок сообщения: Ответить с цитатой

Это принципиально разные инструменты. Builder - RAD-среда, ориентированная в основном на использование VCL; MSVC - универсальный инструмент. Если нужно быстро набросать программу для win с большим количеством контролов, работой со всякими БД, и прочим - то проще использовать Builder. Если нужно, скажем, написать эмулятор - то MSVC. Без VCL (скажем, на WinAPI) на Builder'е писать смысла нет, т.к. никаких преимуществ у него нет (компилятор у него хуже, чем у MSVC).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Ср Янв 10, 2007 3:44 pm    Заголовок сообщения: Ответить с цитатой

Shiru писал(а):
Это принципиально разные инструменты. Builder - RAD-среда, ориентированная в основном на использование VCL; MSVC - универсальный инструмент. Если нужно быстро набросать программу для win с большим количеством контролов, работой со всякими БД, и прочим - то проще использовать Builder. Если нужно, скажем, написать эмулятор - то MSVC. Без VCL (скажем, на WinAPI) на Builder'е писать смысла нет, т.к. никаких преимуществ у него нет (компилятор у него хуже, чем у MSVC).

Ясно, спасибо. Значит использую MSVC, а набросать и на VB без особых усилий смогу Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
LG.BALUKATION



Зарегистрирован: 05.08.2006
Сообщения: 141
Откуда: Saint-Patersburg

СообщениеДобавлено: Вс Янв 14, 2007 11:40 am    Заголовок сообщения: Ответить с цитатой

HoRRoR писал(а):
Что лучше - Borland Builder или Visual C++?
MinGW =)

Вроде как основное их отличие уже описали. Но творение мелкомягких мне тоже не очень нравится... Во-первых, оно начиная с 7 версии (2002, 2003) завязано на .Net и оттачивается уже больше под неё, чем под "простые винды". VisualStudio 2005 вообще на моём далеко не самом слабрм компе как-то не очень шустро работала. Во-вторых это ИМХО очень перегруженная седа. Быть может для корпоация с очень большими пректами оно и хорошо, но для написания не больших прог там слишком много лишних наворотов.

Так что мой выбор на данный момент - GCC и его порт под винды (MinGW). Ещё можно глянуть на OpenWatcom, но там своеобразная IDE и сам проект кажется стОит на месте - новые версии выходят, но вот насколько они новы? Такое ощущение, что народ просто вылизывает старые сырцы.
_________________
Zwei Drachen betrachten einander
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов shedevr.org.ru -> Пустопорожняя болтовня Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group