Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 989
от 07.02.2008, 16:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 480, Экспертов: 53
В номере:Вопросов: 2, Ответов: 3

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 121210: Здравствуйте. Прграмму генерации случайных чисел я знаю как написать, а вот необходимое колличество элементов значение которых равно нулю в двухмерном массиве это уже тяжелее. Внизу приложение , помогите исправить ошибки в программе....
Вопрос № 121211: Здравствуйте! Если есть игра в кости и надо написать количество случайных бросков и их среднее арифметическое, каким образом задать именно эти формулы в программе? ...

Вопрос № 121.210
Здравствуйте. Прграмму генерации случайных чисел я знаю как написать, а вот необходимое колличество элементов значение которых равно нулю в двухмерном массиве это уже тяжелее.
Внизу приложение , помогите исправить ошибки в программе.

Приложение:

Отправлен: 01.02.2008, 17:13
Вопрос задала: Рак Оксана (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Zhdan88
Здравствуйте, Рак Оксана !
Вот, попробуйте. У вас стоял диапазон от 0 до 100 - ноликов будет крайне мало. я заменил на от 0 до 15.

#include<iostream>
#include<stdlib.h> // в этом файле содержатся функции rand и srand
#include<time.h> // в этом файле содержится функция time

using namespace std;

void main()
{
// задаем размерность массива
const int a = 3;
const int b = 4;
int A[a][b]; // объявляем двумерный массив
int null_element,s;
// заполнение массива случайными числами и показ на экран

// перебираем отдельные строки (одномерные массивы в совокупности)
for(int i=0; i<a; i++)
{
// перебираем отдельные элементы каждой строки
for(int j=0; j<b;j++)
{
// инициализация элементов значениями в диапазоне от 0 до 100
A[i][j]=rand()%16;

// показ значений на экран
cout<<", A[i][j]);
}
// переход на другую строку матрицы
cout<<" ";
}
cout << " ";

// в переменной храним количество нулевых элементов
int null_element = 0;
for (int i=0; i<a; i++){

for (int j=0; j<b; j++)
{
// именно == а не = так как = это присваение, а == сравнение
// если встретили нолик - увеличиваем счетчик на единицу
if (A[i][j]==0) null_element=null_element+1;

}
//как найти количество нулевых элементов массива?
} //тоесть, когда программа находит первый элемент, то ставит 1
//второй 2 ит.д
cout<< null_element " ";
}

Приложение:

Ответ отправил: Zhdan88 (статус: 1-ый класс)
Ответ отправлен: 01.02.2008, 17:50
Оценка за ответ: 5

Отвечает: shayen
Здравствуйте, Рак Оксана !
У вас ошибка в том что вместо сравнения вы используете присваивание if (A[i][j]=0), а нужно if (A[i][j]==0) исправленый код в приложении

Приложение:

Ответ отправил: shayen (статус: 2-ой класс)
Ответ отправлен: 03.02.2008, 15:57
Оценка за ответ: 5


Вопрос № 121.211
Здравствуйте!
Если есть игра в кости и надо написать количество случайных бросков и их среднее арифметическое, каким образом задать именно эти формулы в программе?
Отправлен: 01.02.2008, 17:17
Вопрос задала: Рак Оксана (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Dr_Andrew
Здравствуйте, Рак Оксана !
Спасибо за интересный вопрос, весь вечер играл с компилятором! :)
Рецепт:
1. В классе игры объявляете закрытые переменные:
а. Для хранения количества бросков кубика за игру (у меня - int iDashes в классе TDiceForm - см. вложение);
б. Для хранения количества успешных бросков (т.е. когда выпавшее на кубике число совпадает с загаданным - resp. введённым пользователем) - у меня int iSuccessfulDashes;
в. Для хранения суммы выпавших чисел за текущую игру - у меня int iSum;
2. Для показа статистики игры в главном классе игры необходимо предусмотреть специальную функцию (у меня void GameShowStatisticsSlot();)
3. В конструкторе главного класса игры и при запуске новой игры (у меня функция void GameNewSlot();) вышеупомянутые переменные следует обнулять (см. приложение).
4. Реализация функции показа статистики (добавил комментарии):

void TDiceForm::GameShowStatisticsSlot()
{
// Строки для вывода статистики игры
QString sDashes, sSuccessfulDashes, sAverage;
if(iDashes != 0) // Если были сделаны броски...
{
float fAverage = (float)iSum / (float)iDashes; // ...вычисляем среднее арифметическое бросков.
sDashes = QString::number((int)iDashes);
sSuccessfulDashes = QString::number((int)iSuccessfulDashes);
sAverage = QString::number((float)fAverage);
}
// Вывод результатов лучше реализовать через специальную форму.
TStatisticsForm* pStatisticsDialog = new TStatisticsForm(this);
if(iDashes != 0) pStatisticsDialog->ShowStatisticsSlot(sDashes, sSuccessfulDashes, sAverage);
pStatisticsDialog->show();
}

5. В приложении - часть кода маленькой кроссплатформенной игры "Брось кубик - угадай число!", написанной с использованием библиотеки Qt. Если будете компилировать для Windows, то Qt лучше "прикручивать" к MS Visual C++, с Borland Free Compiler библиотека работает не всегда стабильно.
Здесь исходные коды игры с исполняемым файлом (для Linux):
http://linmedsoft.narod.ru/files/Dice.tar.gz
Здесь скриншот работы программы:
http://linmedsoft.narod.ru/screens/Dice.png

Приложение:

Ответ отправил: Dr_Andrew (статус: 6-ой класс)
Ответ отправлен: 01.02.2008, 19:57
Оценка за ответ: 5
Комментарий оценки:
спасибо, очень интересно


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.70 от 17.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное