Форум программистов, компьютерный форум CyberForum.ru

Помогите написать программку - лотерею - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.80
Michael_Label
-20 / 1 / 0
Регистрация: 28.07.2011
Сообщений: 17
29.07.2011, 14:09     Помогите написать программку - лотерею #1
Я сам только окончил первый курс технаря...учусь отлично...решил, что пока каникулы, заняться изучением C++......как-то он меня увлек....вчера в голову пришла идея, написать программку - лотерею...типа вводишь несколько чисел подряд, программка их перебирает и выводит какое-то число на экран....
P.s. программка легкая, но я повторюсь, что я занимаюсь самостоятельным изучением.....помогите пожалуйста с этой программкой, мне интересна её структура, как она выглядит сама по себе........очень выручите)))

 Комментарий модератора 
Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
Правила форума
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2011, 14:09     Помогите написать программку - лотерею
Посмотрите здесь:

программку написать C++
Не могу написать программку C++
C++ Необходимо написать программку..
Помогите написать программку) C++
Помогите сделать программку на С++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
29.07.2011, 15:11     Помогите написать программку - лотерею #21
Цитата Сообщение от easybudda Посмотреть сообщение
если следующее сгенерированное число выдаст из массива 1 еще раз генерим
Ещё хлеще...
чем это классика то не угодила??
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
29.07.2011, 15:16     Помогите написать программку - лотерею #22
Цитата Сообщение от ValeryS Посмотреть сообщение
x=rand()%10-1;
функция rand() выдаёт случайное число в диапазоне [0; RAND_MAX], конструкция rand() % 10 будет выдавать числа от 0 до 9 включительно, а вышеприведённая от -1 до 8. Что случится при попытке доступа к элементу numbs[-1] ?

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
чем это классика то не угодила?
Не знаю, с какого бока это "классика", но работа такого алгоритма в теории может растянуться на неопределённое время...
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
29.07.2011, 15:29     Помогите написать программку - лотерею #23
Цитата Сообщение от easybudda Посмотреть сообщение
ункция rand() выдаёт случайное число в диапазоне [0; RAND_MAX], конструкция rand() % 10 будет выдавать числа от 0 до 9 включительно, а вышеприведённая от -1 до 8. Что случится при попытке доступа к элементу numbs[-1] ?
ну накосячил Бывает
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
30.07.2011, 21:15     Помогите написать программку - лотерею #24
Цитата Сообщение от easybudda Посмотреть сообщение
Не знаю, с какого бока это "классика",
специально взял паузу чтобы ответить по научному, но до книг так и не добрался.
вообщем не помню по по правильному,я их называю "драные массивы" -массивы где не все члены инициализированы.
Цитата Сообщение от easybudda Посмотреть сообщение
но работа такого алгоритма в теории может растянуться на неопределённое время...
при лотерее 5 из 36
на пятом ходу вероятность попадания 4/36 при повторе 4/36*4/36 и т.д
хорошее
Цитата Сообщение от easybudda Посмотреть сообщение
неопределённое время
если надо выводить всю последовательность 36 из 36 то явно это алгоритм не подойдет
и вобще в оригинале было
Цитата Сообщение от Michael_Label Посмотреть сообщение
выводит какое-то число на экран.
так что зря мы закусились за последовательность

Добавлено через 53 секунды
вспомнил "разреженные массивы"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.08.2011, 01:40     Помогите написать программку - лотерею
Еще ссылки по теме:

Нужно написать программку! C++
Написать программку на С++. Массив C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
voral
344 / 324 / 46
Регистрация: 16.03.2008
Сообщений: 1,692
03.08.2011, 01:40     Помогите написать программку - лотерею #25
Ваше задание из первого поста можно решить, например, таким способом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
// чтобы многократно не повторять одну и туже строку создаем константу
// с текстом запроса
#define PROMPT_STR "Enter number: "
 
using namespace std;
 
// функция ввода числа с клавиатуры
int getNumber()
{
    int Result;
    cout << PROMPT_STR;  //выводим текст запроса на экран
    // получаем значение с кавиатуры до тех пор пока не будет введено число
    while (!(cin >> Result))
    {
        // в тело цикла попадаем только если ввели не число
        cin.clear();  // сброс битов ошибок входного потока
 
        // из входного потока вытаскиваем сиволы до символа конца строки
        // Он повлятся при нажатии Enter при вводе значения
        // Если этого не сделать программа уйдет в долгий цикл
        while (cin.get() !='\n')  ;
        cout << "It's not number" << endl; // выводим сообщение, что введено не число
        cout << PROMPT_STR;  //выводим текст запроса на экран
 
    };
    return Result; // возвращаем число
}
 
int main()
{
    cout << "Enter size of array" << endl;
    // обявляем переменную целочисленного типа - количество вводимых чисел
    // инициализируем ее значением полученным с стандартного входа при помощи ф-ии
    int numNumbers = getNumber();
    // обявляем массив целых чисел и выделяем под него память
    int *arr = new int[numNumbers];
    cout << "Fill array" << endl;
    // создаем цикл для заполнения массива
    for (register int i=0; i < numNumbers; ++i)
        arr[i]= getNumber(); // значения получаем состандартного входа
    srand ( time(NULL) ); // инициализируем генератор случайных чисел
    // Выводим на экран элемент массива с индексом сгенерированным от 0 до numNumbers-1
    cout << "Winner: " << arr[((int)rand() % numNumbers)] << endl;
    delete[] arr; // освобождаем память занятую массивом
    
}
Yandex
Объявления
03.08.2011, 01:40     Помогите написать программку - лотерею
Ответ Создать тему
Опции темы

Текущее время: 03:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru