Вопрос № 122029: Здравствуйте!
Пробую сама писать программы, но не очень получается,есть такая задачка-
1. Игра «кубики». Условие: имеется два игральных кубика со значениями от 1 до 6. Игра происходит с компьютером, кубики бросаются поочередно. Побеждает тот,...Вопрос № 122031: Переформулирую вопрос - как в MS C++ элементарно послать один единственный UDP-пакет? Какова максимальная длина информационной части UDP-пакета?...Вопрос № 122078: Уважаемые експерты у меня вопрос.
Есть ли компонент для работы с базой даных(чето типа DataGrid в C#,VB).
Работаю в Microsoft VS 2005.
Если есть, то где искать....
Вопрос № 122.029
Здравствуйте!
Пробую сама писать программы, но не очень получается,есть такая задачка-
1. Игра «кубики». Условие: имеется два игральных кубика со значениями от 1 до 6. Игра происходит с компьютером, кубики бросаются поочередно. Побеждает тот, у кого сумма выпавших очков по итогам пяти бросков больше. Предусмотрите возможность получения первого хода человеком или компьютером. Кубики отображаются с помощью символов. В конце игры необходимо выводить среднюю сумму по броскам для обоих участников.
В приложении //1 я пробовала писать сразу целую программу, но я сно, что не получилось.
Потом я решила написать программу //2 ( без бросков, как-бы есть два массива инадо найти среднее арифметическое каждого массива и узнать, какое из них будет больше.).Но итут ничего не получается.
Может у кого-то получится исправить мои ошибки?
Отвечает: Терсков Сергей
Здравствуйте, Рак Оксана !
В ваших исходниках очень много ошибок. Например:
int array[5];
for (int i=1;i<7;)
{
array[i]=rand()%5+1;
out<
}
Здесь вы пытаетесь обратится к элементу array[6], которого нет.
int array[5];
for (int j=1;j<7;)
{
array[j]=rand()%5+1;
cout<
}
Цикл никогда не закончится, т.к. переменная j не изменяется. Обращение к элементу массива array[i], но откуда взялась переменная i - непонятно.
В общем, ошибка на ошибке. Если не изучать язык, то и программы получаться тоже не будут. В приложении вы найдете рабочий вариант решения вашей задачи.
Приложение:
Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 07.02.2008, 04:53 Оценка за ответ: 5
Отвечает: Dr_Andrew
Здравствуйте, Рак Оксана !
А зачем такие сложные подходы для решения, в общем-то, тривиальной задачи? ;) Массивы здесь совершенно ни к чему. Вообще при написании игровых программ следует шире пользоваться приёмами объектно-ориентированного программирования, в частности, использовать классы, позволяющие имитировать объекты реального мира. Правда, в данном случае собственно игры не получится, т.к. бросок кубика имитируется функцией rand(), т.е. компьютер в любом случае будет играть сам с собой. Но для демонстрации можно и попробовать что-то
изобразить.
Итак, нам нужны: а) класс игрового кубика и б) класс судьи, отвечающего за подсчёт очков у двух игроков и вывод результатов. Всё остальное смотрите в комментариях к коду (в приложении).
Приложение:
Ответ отправил: Dr_Andrew (статус: 6-ой класс)
Ответ отправлен: 07.02.2008, 12:14 Оценка за ответ: 5
Отвечает: Solowey
Здравствуйте, Рак Оксана !
Во первых, если ты создаеш переменую в теле функции или цикла она не видна за пределами ее. Т.е. в фукнции f1 () вводиш переменую int i - это значит что она видна только в пределах этой функции, за ее пределами она не видная (к ней нельзя обратиться в функции f2() ).
Во вторых, суммирование массива следует делать через цикл.
В третьих, не путай переменые к которым ты обращаешься. array[j]=rand()%5+1; сout<<array[i]<<"
"; Скорее всего должно быть сout<<array[j]<<"
";
Приложил вариант моего решения... Правда нет проверки на ввод неправильных значений.
Приложение:
Ответ отправил: Solowey (статус: 3-ий класс)
Ответ отправлен: 07.02.2008, 12:30 Оценка за ответ: 5
Отвечает: shayen
Здравствуйте, Рак Оксана !
код в приложении, компилил под VS 2003
Приложение:
Ответ отправил: shayen (статус: 2-ой класс)
Ответ отправлен: 07.02.2008, 13:41
Вопрос № 122.031
Переформулирую вопрос - как в MS C++ элементарно послать один единственный UDP-пакет? Какова максимальная длина информационной части UDP-пакета?
Отправлен: 07.02.2008, 02:33
Вопрос задал: Blackie (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Теперь необходимо инициализировать сокет:
int s = socket (AF_INET, SOCK_DGRAM, 0); // SOCK_DGRAM указывает что тип сокета будет udp (В случае ошибки возвращает INVALID_SOCKET)
Данные посылаются с помощью функции send
int send(SOCKET s, // сокет- отправитель
const char FAR *buf, // указатель на буфер с данными
int len, // длина данных
int flags // флаги (может быть 0)
);
пример:
char* buff="string1";
send (s, (char* ) buff, strlen(buff)+1, 0 )
При ошибке функция возвращает SOCKET_ERROR
пример программы в приложении
Приложение:
Ответ отправил: Попов А.С. (статус: 8-ой класс)
Ответ отправлен: 07.02.2008, 13:00 Оценка за ответ: 5
Вопрос № 122.078
Уважаемые експерты у меня вопрос.
Есть ли компонент для работы с базой даных(чето типа DataGrid в C#,VB).
Работаю в Microsoft VS 2005.
Если есть, то где искать.
Отправлен: 07.02.2008, 13:01
Вопрос задал: Tadey (статус: 1-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Попов А.С.
Здравствуйте, Tadey!
Да, такой компонент есть - DataGridView
Ответ отправил: Попов А.С. (статус: 8-ой класс)
Ответ отправлен: 07.02.2008, 13:13 Оценка за ответ: 1 Комментарий оценки: Вы саме пробовали его подключать в Visual C++?(не в C# или VB) Если да то поделитесь опытом(Вы ведь есперт 7-го класса)
Отвечает: Сандров Алекс
Здравствуйте, Tadey!
В Microsoft Common Control 6 есть грида, устанавливается в проект, как ActiveX контрол. Среда сама генерит все нужные методы к нему(враперы). К сожелению, знаю только как в VC 6.0 вставлять активыксы в проект(правый клик на диалоге, в контектном меню "Insert ActiveX control..." и выдадут список...)
Из MS CC 6.0 использовал MS Chart, быстро и удобно. Единственное неудобство - на машине может не стоять нужная либа. Но при добавлении контрола в проект можно узнать путь и таскать её в проекте как ресурс и устанавливать, если не стоит.
Ответ отправил: Сандров Алекс (статус: 3-ий класс)
Ответ отправлен: 07.02.2008, 13:15 Оценка за ответ: 2 Комментарий оценки: Как "Microsoft Common Control 6"
мне может помочь в Visual C++.