Пятница, 15 Ноября 2024, 05:14

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос-Ответ (C++)
KornivalДата: Воскресенье, 04 Сентября 2011, 19:10 | Сообщение # 1
The Witcher
Сейчас нет на сайте
Чтобы не создавать отдельную тему на каждый глупый вопрос, предлагаю задавать их здесь.

Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
kSky7000Дата: Вторник, 18 Июня 2013, 07:51 | Сообщение # 941
частый гость
Сейчас нет на сайте
mega-ice-boy, Вопрос: а в гугле спросить не судьба было?
1: да
2: да
3: short занимает меньше памяти чем int, соответственно хранить большие числа там не выйдет
4: long наоборот же занимает памяти больше чем int, еще есть long long который еще больше
IzaronДата: Вторник, 18 Июня 2013, 08:37 | Сообщение # 942
Rammstein forever
Сейчас нет на сайте
mega-ice-boy, http://ru.wikipedia.org/wiki/Limits.h
OpenGOOДата: Вторник, 18 Июня 2013, 10:41 | Сообщение # 943
почти ветеран
Сейчас нет на сайте
mega-ice-boy,
Если хочешь стать профессиональным программистом, для начала прочитай хотя бы одну книгу по с++, а то так и будешь задавать элементарные вопросы.


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]


Сообщение отредактировал OpenGOO - Вторник, 18 Июня 2013, 12:08
mega-ice-boyДата: Вторник, 18 Июня 2013, 13:08 | Сообщение # 944
частый гость
Сейчас нет на сайте
От души Спасибо, братья, за ответы
появилось еще вопросы, вопрос.1. Почему в конце строка применяются оператор
Endl; ? Что будет если его не пишем? (например: cout<<"hello world"<<endl; )
вопрос2.
For (int i=5;i<7;i++)
cout<<"i";

здесь сначала на экран выйдет начальное значение переменного i , потом увеличенное?(то есть сначала 5, потом 6...) или сразу выйдет на экран увеличенное? То есть значение 6


Сообщение отредактировал mega-ice-boy - Вторник, 18 Июня 2013, 13:15
SkyScraperДата: Вторник, 18 Июня 2013, 13:12 | Сообщение # 945
почетный гость
Сейчас нет на сайте
Цитата (mega-ice-boy)
1. Почему в конце строка применяются оператор
Endl; ?

чтоб все слитно не писать, а новую строчку создать.


Меня оскорбляет GC-Vic. См. историю репутации
IzaronДата: Вторник, 18 Июня 2013, 14:10 | Сообщение # 946
Rammstein forever
Сейчас нет на сайте
Цитата (mega-ice-boy)
вопрос2. For (int i=5;i<7;i++) cout<<"i"; здесь сначала на экран выйдет начальное значение переменного i , потом увеличенное?(то есть сначала 5, потом 6...) или сразу выйдет на экран увеличенное? То есть значение 6

Нет.
For (int i=5;i<7;i++) cout<<"i"; дважды выводит символ "i", так как ты выводишь не переменную i, а строку "i"
For (int i=5;i<7;i++) cout<< i; выводит именно число i, а не строку "i". Сначала выведет 5, так как i=5, потом i увеличивается на 1, и соответственно, выводит 6.

Добавлено (18.06.2013, 14:10)
---------------------------------------------
И не For, а for


Сообщение отредактировал Izaron - Вторник, 18 Июня 2013, 14:11
pelmenkaДата: Вторник, 18 Июня 2013, 14:26 | Сообщение # 947
Драгоценный Тунеядец
Сейчас нет на сайте
mega-ice-boy, собственно short int занимает 2 байта, а long int 4 байта.
Это было придумано из-за того, что в 16-битных системах int занимал 2 байта, а в 32-битных системах 4, из-за чего програма могла работать по другому.


Сталина в каждый дом!
mega-ice-boyДата: Вторник, 18 Июня 2013, 17:34 | Сообщение # 948
частый гость
Сейчас нет на сайте
А что будет если использовать оператор \n вместо еndl ? Это был вопрос 1. Теперь вопрос 2. Про Обычные и многомерные массивы. Допустим я создал такой массив:

int massiv[5]; // это значить что я создал 5 переменных с типом int?
Вопрос 3.
Допустим я создал такой массив:

int massiv[5][5]; // это значить я создал 25 переменных с типом int? Если это не так то почему в этом сайте, в форуме, в этом разделе, в теме "основы С для начинающих " написано что это так?


Хочу стать профессиональным программистом! У меня есть терпение, ум.
IzaronДата: Вторник, 18 Июня 2013, 17:48 | Сообщение # 949
Rammstein forever
Сейчас нет на сайте
Цитата (mega-ice-boy)
int massiv[5][5]; // это значить я создал 25 переменных с типом int? Если это не так то почему в этом сайте, в форуме, в этом разделе, в теме "основы С для начинающих " написано что это так?

Я посмотрел в окно и увидел, что небо голубое. Это значит, что небо голубое? Если это не так, то почему, не только на этом сайте, не только в форуме, не только в этом разделе, не только в теме с основами, написано, что небо голубое?

Добавлено (18.06.2013, 17:48)
---------------------------------------------


Сообщение отредактировал Izaron - Вторник, 18 Июня 2013, 17:48
TikaraДата: Вторник, 18 Июня 2013, 17:54 | Сообщение # 950
частый гость
Сейчас нет на сайте
Цитата (mega-ice-boy)
А что будет если использовать оператор \n вместо еndl ?

endl добавляет в буфер символ конца строки ( привет '\n' ) и вызывает метод flush для "сброса" буфера.

Цитата (Izaron)
На самом деле массивы в С++ - это указатели

int mas[3];

mas[2] - указатель? куда я указываю? Может поговорим об этом? ^^


Сообщение отредактировал Tikara - Вторник, 18 Июня 2013, 18:01
IzaronДата: Вторник, 18 Июня 2013, 18:06 | Сообщение # 951
Rammstein forever
Сейчас нет на сайте
Tikara, не имею желания говорить об том, что давно для меня доказано.

Вот скажи, как ты создаешь динамичный массив в этом случае размерностью n?
Код
int n;
cin >> n;

Желаю удачи)

Добавлено (18.06.2013, 18:06)
---------------------------------------------
Именно массив, а не вектор или что-то еще.

TikaraДата: Вторник, 18 Июня 2013, 18:15 | Сообщение # 952
частый гость
Сейчас нет на сайте
Izaron, так и думал, что ты это напишешь). Мы говорим о массивах в c++ в общем, а не об указателях на массив.

Тогда рассуждаем так, если

Код
int mas[3];


- это не есть указатель, тогда утверждение "На самом деле массивы в С++ - это указатели" не верно.

Я же на c++ это написал - верно? Это массив, так?


Сообщение отредактировал Tikara - Вторник, 18 Июня 2013, 18:15
IzaronДата: Вторник, 18 Июня 2013, 18:24 | Сообщение # 953
Rammstein forever
Сейчас нет на сайте
Tikara, а с каких пор int *mas и int mas[] не эквивалентны?)
Думаю, нам не удастся переубедить друг друга, так что не желаю скатываться в унылую демагогию и доказывать уже доказанные вещи biggrin
TikaraДата: Вторник, 18 Июня 2013, 18:30 | Сообщение # 954
частый гость
Сейчас нет на сайте
Цитата (Izaron)
а с каких пор int *mas и int mas[] не эквивалентны?)

С тех пор как int *mas - это указатель, а int mas[] - это последовательность 4ёх байтовых чисел.

Код
int *mas = new int[3];


Мы выделили в памяти 4 байта под указатель и 12 байт под массив и того 16 байт.

Код
int mas[3] = {1,2,3};


Выделено ровно 12 байт.

PS Раз начали, тогда доводим до конца) Вы должны знать правду)
l1feДата: Вторник, 18 Июня 2013, 18:30 | Сообщение # 955
был не раз
Сейчас нет на сайте
Izaron,
Ничего подобного. Объявление массива "int arr[];" требует определенного места для данных, которое будет известно под именем "arr". То есть, существует место под именем "arr", в которое могут быть помещены данные. С другой стороны, объявление указателя "int *mas;" требует места только для самого указателя. Указатель будет известен под именем "mas" и может указывать на любой участок данных (или непрерывный массив данных).


Сообщение отредактировал l1fe - Вторник, 18 Июня 2013, 18:31
IzaronДата: Вторник, 18 Июня 2013, 18:31 | Сообщение # 956
Rammstein forever
Сейчас нет на сайте
Цитата (l1fe)
PS Раз начали, тогда доводим до конца) Вы должны знать правду)

Ну спасибо, теперь моя жизнь никогда не станет прежней:D
mega-ice-boyДата: Вторник, 18 Июня 2013, 22:36 | Сообщение # 957
частый гость
Сейчас нет на сайте
TIKARA,
ответь на мою 3 вопрос подробно, пожалуйста

Добавлено (18.06.2013, 22:36)
---------------------------------------------
Даже не знаю кому доверять


Хочу стать профессиональным программистом! У меня есть терпение, ум.
IzaronДата: Вторник, 18 Июня 2013, 22:38 | Сообщение # 958
Rammstein forever
Сейчас нет на сайте
Цитата (mega-ice-boy)
TIKARA, ответь на мою 3 вопрос подробно, пожалуйста

Как можно ответить на вопрос, в котором уже есть ответ?

Цитата (mega-ice-boy)
это значить я создал 25 переменных с типом int? Если это не так то почему в этом сайте, в форуме, в этом разделе, в теме "основы С для начинающих " написано что это так?

Прочитай еще раз это вдумчиво.

Те, кто писал ту тему с основами, как я понимаю, знают С/C++ лучше тебя.

Добавлено (18.06.2013, 22:38)
---------------------------------------------

Цитата (mega-ice-boy)
Даже не знаю кому доверять

Верь в себя.
mega-ice-boyДата: Вторник, 18 Июня 2013, 22:46 | Сообщение # 959
частый гость
Сейчас нет на сайте
Int igrok=100,
int p=0,
int s;

while (true)
{
int max=30;
int min=70;
s=min+(rand()%(min-max)); //генератор случайных чисел.
igrok-=s;
if (igrok==0)
break;
}
здесь я правильно вычислил диапазон для переменного s ? Или есть ошибки? Если есть ошибки то скажите как его исправить?


Хочу стать профессиональным программистом! У меня есть терпение, ум.

Сообщение отредактировал mega-ice-boy - Вторник, 18 Июня 2013, 22:52
IzaronДата: Вторник, 18 Июня 2013, 22:56 | Сообщение # 960
Rammstein forever
Сейчас нет на сайте
Цитата (mega-ice-boy)
int igrok=100; int p=0; int s;


Добавлено (18.06.2013, 22:54)
---------------------------------------------
Цитата
int max = 30, min = 70;
while (true)
{
s=min+(rand()%(min-max)); //генератор случайных чисел.
igrok-=s;
if (igrok<=0)
break;
}

Добавлено (18.06.2013, 22:56)
---------------------------------------------
1. Орфография кода хромает.
2. Не объявлять переменные каждый раз в цикле, если они не изменяются
3. igrok не обязательно будет равен 0

Сообщение отредактировал Izaron - Вторник, 18 Июня 2013, 22:54
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг