Суббота, 16 Ноября 2024, 17:21

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

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

Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
SnuuxДата: Понедельник, 30 Апреля 2012, 18:39 | Сообщение # 301
постоянный участник
Сейчас нет на сайте
Lord_Zeon, а можешь подсказать подробнее, а то что то не получается с выше написанным кодом(?
Lord_ZeonДата: Понедельник, 30 Апреля 2012, 18:47 | Сообщение # 302
частый гость
Сейчас нет на сайте
Snuux,
Вот таким способом:

Code

#include <iostream>

using namespace std;

#define size 10

void get_array(int arr[size][size])
{
      for (int i = 0; i < size; i++){
          for (int j = 0; j < size; j++){
              arr[i][j] = 1;
              cout << arr[i][j] << endl;
          }
      }

}

int main()
{
      int array[size][size] ={0};

      get_array(array);

      return 0;
}


Сообщение отредактировал Lord_Zeon - Понедельник, 30 Апреля 2012, 18:48
ArchidoДата: Понедельник, 30 Апреля 2012, 19:10 | Сообщение # 303
Сэнсэй
Сейчас нет на сайте
Snuux
А что не нравится с передачей через двойной указатель? Самый универсальный вариант smile


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
SnuuxДата: Понедельник, 30 Апреля 2012, 19:25 | Сообщение # 304
постоянный участник
Сейчас нет на сайте
Archido, нет, нет, все нравиться, спасибо вам всем (просто где-то наткнулся на ужасный, страшный код с использованием двойного указателя (а тут вроде и не страшно) ).
ТритонДата: Понедельник, 30 Апреля 2012, 20:05 | Сообщение # 305
постоянный участник
Сейчас нет на сайте
Quote (Snuux)
(жаль без указателей нормально нельзя( )
И чего здесь жалеть?

Добавлено (30.04.2012, 20:05)
---------------------------------------------
Quote (Snuux)
просто где-то наткнулся на ужасный, страшный код с использованием двойного указателя
Не верю. Если страшный и ужасный, то это было наглядное пособие, как делать не надо с простым указателем.


Не всё так плохо, как оно есть на самом деле.

Сообщение отредактировал Тритон - Понедельник, 30 Апреля 2012, 20:05
GrossCageДата: Среда, 02 Мая 2012, 15:56 | Сообщение # 306
Плюсовый Сишник
Сейчас нет на сайте
У меня при дебаге игры встал огромный вопрос. Как узнать полный путь к ехе-шнику игры? Я гуглил, нифига sad
АП!


PixelPong - готов

Сообщение отредактировал GrossCage - Четверг, 03 Мая 2012, 14:54
ТритонДата: Суббота, 05 Мая 2012, 14:47 | Сообщение # 307
постоянный участник
Сейчас нет на сайте
http://www.google.ru/search?rlz=1C1AVSX_enRU457RU457&aq=f&sourceid=chrome&ie=UTF-8&q=c%2B%2B+path#hl=ru&newwindow=1&rlz=1C1AVSX_enRU457RU457&sclient=psy-ab&q=c%2B%2B%20%D0%BF%D1%83%D1%82%D1%8C%20%D0%BA%20exe&oq=c%2B%2B%20%D0%BF%D1%83%D1%82%D1%8C%20%D0%BA&aq=0&aqi=g3g-v1&aql=1&gs_l=serp.11.0.0l3j0i15.17799.21335.0.22634.12.12.0.0.0.3.1076.3798.0j1j8j2j7-1.12.0.erf1.1.1.0.hUn8ZoBsKkk&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=4c11eed90104d3f0&biw=910&bih=444&pf=p&pdl=300, четвёртая ссылка (http://forum.codenet.ru/q34820/).

Не всё так плохо, как оно есть на самом деле.

Сообщение отредактировал Тритон - Суббота, 05 Мая 2012, 14:48
luissДата: Вторник, 08 Мая 2012, 16:50 | Сообщение # 308
был не раз
Сейчас нет на сайте
if (strchr(vowel, symbol[i]))
ch = static_cast<char>(symbol[i] & 0xFC);
else
ch = static_cast<char>(symbol[i] | 0x0A);

подскажите что делают эти строки?
TikaraДата: Вторник, 08 Мая 2012, 17:48 | Сообщение # 309
частый гость
Сейчас нет на сайте
Quote (luiss)
if (strchr(vowel, symbol[i]))
ch = static_cast<char>(symbol[i] & 0xFC);
else
ch = static_cast<char>(symbol[i] | 0x0A);


strchr(vowel, symbol[i]) - ищем первый символ symbol[i] и проверяем найден или нет (здесь, видимо, идёт проверка гласный ли символ в массиве symbol)

ch = static_cast<char>(symbol[i] & 0xFC); - преобразуем int-овое значение symbol[i] в char
luissДата: Вторник, 08 Мая 2012, 17:52 | Сообщение # 310
был не раз
Сейчас нет на сайте
Quote (Tikara)
strchr(vowel, symbol[i]) - ищем первый символ symbol[i] и проверяем найден или нет (здесь, видимо, идёт проверка гласный ли символ в массиве symbol)

ch = static_cast<char>(symbol[i] & 0xFC); - преобразуем int-овое значение symbol[i] в char


откуда вы узнали про поиск гласной (потому что vowel переводится как гласная)? а что означают 16-ричные цифры 0xFC и 0x0A?


Сообщение отредактировал luiss - Вторник, 08 Мая 2012, 18:07
Tera128Дата: Среда, 09 Мая 2012, 02:24 | Сообщение # 311
был не раз
Сейчас нет на сайте
Всем доброго времени суток. Не давно начал изучать С++. Решил попробовать составить простую текстовую игру и не знаю как сделать переход от вторых вопросам к третьим вот код...
Code

{       
setlocale( LC_ALL, "Russian" );
int i=0;
int a=0;
int e=0;
int y=0;
cout <<"Проходя по улице, вы слышите громкий хлопок.\nВы бежите в ту сторону и видите на полу искрящийся камень.\nВаши действия:\n1.Поднять его и рассмотреть поближе.\n 2.Вызвать пожарных.\n 3.Снимаем его на камеру и выкладываем в youtube.\n 4.Забить на камень и пойти куда шли.\n";
cin >> a;
a = a + i;
switch (a)
    {
case 1: cout<<"Вы пытаетесь его поднять, но он тяжелее чем вы думали.\nВаши следующие действия:\n 1.Пойду куда шол, зачем мне 300киллограммовый камень\?\n 2.Позвать на помощь прохожих.\n 3.Попытаюсь его сломать ломом.\n 4.Попробовать на вкус.\n"; break;
cin >> e;
e = e + 4
switch (e)
{
case 5:Действие1
case 6:Действие2
case 7:Действие3
case 8:Действие4
}
case 2: cout<<"Они решают что вы сошли с ума и вместо их к вам приезжает машина с санитарами.\n (Вы проиграли)\n"; break;    
case 3: cout<<"Вы выкладываете видео в youtube,но все думают что это монтаж\! Шанс прославиться сорвался.\n (вы проиграли)"; break;    
case 4: cout<<"Вы дошли до своего дома, спокойно зашли в квартиру...Но вас всё равно беспокоит тот камень, вернувшись на то место вы его не находите.\n (вы проиграли)\n"; break;
}
cin.get();
cin.get();
cin.get();
return 0;
}

Пытался сделать по разному, но все равно не получалось...Нужен переход от действий-
case 1: cout<<"Вы пытаетесь его поднять, но он тяжелее чем вы думали.\nВаши следующие действия:\n 1.Пойду куда шол, зачем мне 300киллограммовый камень\?\n 2.Позвать на помощь прохожих.\n 3.Попытаюсь его сломать ломом.\n 4.Попробовать на вкус.\n"; break;
К вопросам
{
case 5:Действие1
case 6:Действие2
case 7:Действие3
case 8:Действие4
}


Сообщение отредактировал Tera128 - Среда, 09 Мая 2012, 02:27
TikaraДата: Среда, 09 Мая 2012, 06:14 | Сообщение # 312
частый гость
Сейчас нет на сайте
Code
switch (a)  
     {  
case 1: cout<<"Вы пытаетесь его поднять, но он тяжелее чем вы думали.\nВаши следующие действия:\n 1.Пойду куда шол, зачем мне 300киллограммовый камень\?\n 2.Позвать на помощь прохожих.\n 3.Попытаюсь его сломать ломом.\n 4.Попробовать на вкус.\n"; // break здесь не нужен, раз здесь идёт выбор
cin >> e;  
// e = e + 4 ; зачем складывать с 4?
switch (e)  
{  
case 1:Действие1  
case 2:Действие2  
case 3:Действие3  
case 4:Действие4  
}
break; // здесь нужен break
  


Во-первых, ваш код просто ужасен и нелогичен. Во-вторых, если уже смотреть ошибку в вашем алгоритме, то убирите оператор break; перед cin >> e;. switch(a) просто прерывается и не доходит до выполнения cin.

Всё же, если вы собрались сделать линейный квест с небольшим выбором, то используйте switch-case только для выбора вариантов действий.

Рекомендую читануть самоучитель по C++. (не удивлюсь, если такие советы вам уже поступали)
KpoJIukДата: Среда, 09 Мая 2012, 10:57 | Сообщение # 313
In C++ We Trust
Сейчас нет на сайте
Посоны, подкиньте реализацию или идею. Мне нужно создать динамический массив из объектов своего класса, к каждому из элементов которого должен быть вызван конструктор со своими параметрами.
TikaraДата: Среда, 09 Мая 2012, 12:09 | Сообщение # 314
частый гость
Сейчас нет на сайте
Quote (KpoJIuk)
Посоны, подкиньте реализацию или идею. Мне нужно создать динамический массив из объектов своего класса, к каждому из элементов которого должен быть вызван конструктор со своими параметрами.


Code
class Object {
public:
      Object(int state);
};

Object::Object(int state){
       switch(state)
       {
         case 1:
          //...
         break;

         case 2:
          //...
         break;

         case 3:
         //...
       }
}

int main(){
       Object **obj;
       obj = new Object*[3];
       obj[0] = new Object(1);
       obj[1] = new Object(2);
       obj[2] = new Object(3);

}


Я правильно понял?
KpoJIukДата: Среда, 09 Мая 2012, 12:18 | Сообщение # 315
In C++ We Trust
Сейчас нет на сайте
Tikara, Да, спасибо, попробуем-с.
Tera128Дата: Среда, 09 Мая 2012, 18:29 | Сообщение # 316
был не раз
Сейчас нет на сайте
Quote

Во-первых, ваш код просто ужасен и нелогичен. Во-вторых, если уже смотреть ошибку в вашем алгоритме, то убирите оператор break; перед cin >> e;. switch(a) просто прерывается и не доходит до выполнения cin.

Я только начал учить С++, прочитал 3-4урока и решил проверить на что хватит моих знаний...
ТритонДата: Пятница, 11 Мая 2012, 07:28 | Сообщение # 317
постоянный участник
Сейчас нет на сайте
luiss, а разве перед else можно ставить точку с запятой?

Не всё так плохо, как оно есть на самом деле.

Сообщение отредактировал Тритон - Пятница, 11 Мая 2012, 07:28
goldsphereДата: Пятница, 11 Мая 2012, 09:58 | Сообщение # 318
заслуженный участник
Сейчас нет на сайте
Тритон, Эт не паскаль...

FinderX - Android Аркада
ТритонДата: Пятница, 11 Мая 2012, 10:06 | Сообщение # 319
постоянный участник
Сейчас нет на сайте
Quote (goldsphere)
Тритон, Эт не паскаль...
тем более.


Не всё так плохо, как оно есть на самом деле.
SnuuxДата: Вторник, 15 Мая 2012, 19:26 | Сообщение # 320
постоянный участник
Сейчас нет на сайте
Ребят слушайте, у меня, что то студия не хочет компилировать хоть какой то код ( (очень странно.. Правда я недавно обновил с Win 7 Home, до Win 7 Enterprise, может из-за этого?)

Собственно вопрос:
Какой код - верный?
Quote
if (a%4 == 1)
printf("Число кратно четырем");

Или:
Quote
if (a%4 == 0)
printf("Число кратно четырем");

Добавлено (15.05.2012, 19:22)
---------------------------------------------
В интернете искал, а там все по разному... Не знаю кому верить...

Добавлено (15.05.2012, 19:26)
---------------------------------------------
И ещё вопрос:
В обычном языке Си, когда мы объявляем функцию main так: "void main(void){", нужно возвращать значение в конце программы или не нужно? (просто в егэ требуется писать на Си, вот не знаю, вдруг ещё отметят как ошибку...)

Поиск:

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