Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа раздачи карт из учебника не работает, совсем не хочет, ругается компилятором 
:(
    Опции темы
Nia
  Дата 6.1.2012, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 14.2.2011

Репутация: нет
Всего: нет



Среда разработки C++Builder 2007, перепечатал туда программу из учебника, а она работать отказывается.

Код

//---------------------------------------------------------------------------
 // Программа раздачи карт  //


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

void shuffle (int [] [13]);
void deal (const int [] [13], const char *[], const char *[]);


//---------------------------------------------------------------------------


int main()
{
 char *suit[4] = {"Черви", "Бубны", "Трефы", "Пики"};
 char *face[13] = {"Туз", "Двойка", "Тройка", "Четвёрка", "Пятёрка", "Шестёрка", "Семёрка", "Восьмёрка", "Девятка", "Десятка", "Валет", "Дама", "Король"};

 int deck [4] [13] = {0};

 srand(time(NULL));

 shuffle (deck);
 deal (deck, face, suit);


 cout << " ==========================================================================" << endl;


 system("pause");
 return 0;
}
//---------------------------------------------------------------------------

void shuffle (int wDeck [] [13])
{
int row, column;

for (int card = 1; card <=52; card++)
{
 row = rand() % 4;
 column = rand() % 13;

 while(wDeck[row] [column] != 0)
 {
 row = rand() % 4;
 column = rand() % 13;
 }

 wDeck [row] [column]= card;
}

}

void deal (const int wDeck [] [13], const char *wFace[], const char *wSuit[])
{
for (int card=1; card<=52; card++)
   for (int row = 0; row <=3; row++ )
     for (int column = 0; column <=12; column++)
       if (wDeck[row] [column] == card)
         cout << setw(9) << setiosflags(ios::right)
         << wFace[column] << " масти "
         << setw(5) << setiosflags(ios::left)
         << wSuit[row]
         << (card %2 == 0 ? '\n' : '\t');

}




Компилятор пишет:
Код


[BCC32 Error] Program_cardst.cpp(27): E2034 Cannot convert 'char * *' to 'const char * *'
[BCC32 Error] Program_cardst.cpp(27): E2340 Type mismatch in parameter 2 (wanted 'const char * *', got 'char * *')
[BCC32 Warning] Program_cardst.cpp(35): W8004 'face' is assigned a value that is never used
[BCC32 Warning] Program_cardst.cpp(35): W8004 'suit' is assigned a value that is never used


Что не так?
Почему работать не хочет? 
Много, долго сверялся с учебником - всё правильно списано.
PM MAIL   Вверх
Nia
Дата 6.1.2012, 05:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 14.2.2011

Репутация: нет
Всего: нет



Проблема с вызовом вот этой функции:

Код

deal (deck, face, suit);


дописал в ссылки на массивы const - вроде как заработало:

Код

const char *suit[4] = {"Черви", "Бубны", "Трефы", "Пики"};
 const char *face[13] = {"Туз", "Двойка", "Тройка", "Четвёрка", "Пятёрка", "Шестёрка", "Семёрка", "Восьмёрка", "Девятка", "Десятка", "Валет", "Дама", "Король"};



Вот что получилось в итоге (пришлось новый проект сделать - совсем как в учебнике ано работать не хотело):

Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop


//---------------------------------------------------------------------------
 // Программа раздачи карт  //


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

void shuffle (int [] [13]);
void deal (const int [] [13], const char *[], const char *[]);


//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
 const char *suit[4] = {"Черви", "Бубны", "Трефы", "Пики"};
 const char *face[13] = {"Туз", "Двойка", "Тройка", "Четвёрка", "Пятёрка", "Шестёрка", "Семёрка", "Восьмёрка", "Девятка", "Десятка", "Валет", "Дама", "Король"};

 int deck [4] [13] = {0};

 srand(time(NULL));

 shuffle (deck);
 deal (deck, face, suit);


 cout << " ==========================================================================" << endl;


 system("pause");
 return 0;
}
//---------------------------------------------------------------------------

void shuffle (int wDeck [] [13])
{
int row, column;

for (int card = 1; card <=52; card++)
{
 row = rand() % 4;
 column = rand() % 13;

 while(wDeck[row] [column] != 0)
 {
 row = rand() % 4;
 column = rand() % 13;
 }

 wDeck [row] [column]= card;
}

}

void deal (const int wDeck [] [13], const char *wFace[], const char *wSuit[])
{
for (int card=1; card<=52; card++)
   for (int row = 0; row <=3; row++ )
     for (int column = 0; column <=12; column++)
       if (wDeck[row] [column] == card)
         cout << setw(9) << setiosflags(ios::right)
         << wFace[column] << " масти "
         << setw(5) << setiosflags(ios::left)
         << wSuit[row]
         << (card %2 == 0 ? '\n' : '\t');

}




в связи с этим вопрос:  Не думаю что в учебнике код был написан с ошибками - в чём тогда дело? Почему оригинал не хотел работать?

PM MAIL   Вверх
xvr
Дата 6.1.2012, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(Nia @  6.1.2012,  05:24 Найти цитируемый пост)
Не думаю что в учебнике код был написан с ошибками

Зря не думаете - именно так и было.

Цитата(Nia @  6.1.2012,  05:24 Найти цитируемый пост)
 в чём тогда дело?
В том, что не всегда можно доверять 'учебникам' - надо и своей головой думать (у вас получилось  smile ) 


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0650 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.