Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Szukam] program losujacy tekst


Rekomendowane odpowiedzi

Opublikowano

zrób tablice 200 stringów i losuj liczbę z zakresu (0-199). Później wystarczy wypisać konkretny string.

Przykładowo:

std::string zdanie[200];
/*wczytywanie zdań*/
std::cout << zdanie[rand()%200]; 

Najlepiej będzie stworzyć plik gdzie każda linia będzie jednym zdaniem i wczytywać go sobie do tablicy.

Opublikowano

Ja bym dorzucił jeszcze

 

srand(time (NULL));

ale w sumie do takiego przykładu to nie ważne ;)

To po to by się liczby " nie powtarzały" .A jak chcesz być koksem :P to możesz stworzyć tablicę wielowymiarową do jednej części dodać literki do drugiej liczby od 1 do 20.Do tego funkcja rand do losowania , i napisać program który sam ci będzie losował każdą kolejną literę i długość zdania :D.

-Jestem habilitowanym profesorem,magistrem, który nie umie zawiązać sobie butów.

-A ja jestem technikiem który daje ci prace.

Opublikowano
Opublikowano

 

prawie

 

#include 
#include 
int main ()
{
std::string strings[200] = {"a", "b", c"...};
std::cout << strings[rand()%200];
return 0;
}

i nie działa :)

pacz błąd::

 

Compiling: C:\Users\JANUSZ\Desktop\Radek\radzek.cpp

 

 

C:\Users\JANUSZ\Desktop\Radek\radzek.cpp: In function 'int main()':

 

 

C:\Users\JANUSZ\Desktop\Radek\radzek.cpp:9: error: 'rand' was not declared in this scope

 

 

Process terminated with status 1 (0 minutes, 1 seconds)

 

 

1 errors, 0 warnings

 

 

Opublikowano

rand to funkcja z cstdlib, dodaj odpowiedni include.

aaaa thx

aa jeszcze jedno pyt

pacz

mam :

#include <iostream>

#include <string>

#include <cstdlib>

int main ()

 

{

int losuj ;

std::cout<< " losuj :"

std::string strings[200] = {" 2 ", " 4 ", " 5 "};

std::cout << strings[rand () %200 ];

return 0;

}

 

nie losuje liczb :(

Opublikowano

Wydaje mi się, że przed losowaniem powinno być:

srand(time(0));

 

I powinna być dodana biblioteka ctime.

 

Drugi błąd to to, że losuje jjedną wartość od 0 do 200. Tablica jest zainicjowana tylko w trzech pierwszych polach, reszta prawdopodobnie jest inicjowana wartością zerową, pustym stringiem, dlatego nie wyświetla żadnej wartości. W takim wypadku musisz jeszcze resztę zainicjować tzn. wszystkie 200 pól tablicy.

 

PS. To nie liczby, tylko łańcuchy :).


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

Wydaje mi się, że przed losowaniem powinno być:

srand(time(0));

 

I powinna być dodana biblioteka ctime.

 

Drugi błąd to to, że losuje jjedną wartość od 0 do 200. Tablica jest zainicjowana tylko w trzech pierwszych polach, reszta prawdopodobnie jest inicjowana wartością zerową, pustym stringiem, dlatego nie wyświetla żadnej wartości. W takim wypadku musisz jeszcze resztę zainicjować tzn. wszystkie 200 pól tablicy.

 

PS. To nie liczby, tylko łańcuchy :).

#include <iostream>

#include <string>

#include <cstdlib>

int main ()

 

{

int losuj ;

std::cout<< " losuj :";

std::string strings[3] = {" lubie placki 1 ", " gram w pilke ", " myje naczynie "};

std::cout << strings[rand () %3 ];

return 0;

}

 

i zawsze losuje myje naczynie . dlaczego ?

Opublikowano

Bo tak działa pseudolosowość. Z danego ziarna otrzymasz jednakowe wyniki. Ustaw seeda do randa na początku programu używając czegoś z zewnatrz, time(0) lub GetTickCount(). Tak jak napisał @=3.

Opublikowano

ok zrobiłem ;d

 

#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
int main ()


{
int losuj;

srand(time(0));
std::cout<< " losuj :";
std::string strings[3] = {" lubie placki 1 ", " gram w pilke ", " myje naczynie "};
std::cout << strings[rand () %3 ];
return 0;
}

 

 

^^

Opublikowano
#include <QSettings>
#include <QtCore/QCoreApplication>
#include <QStringList>
#include <chrono>
#include <random>
#include <iostream>
 
using namespace std;
 
int main(int argc, char **argv)
{
    default_random_engine engine;
    QCoreApplication app(argc, argv);
    const QString fileName = "data.txt";
    const QString filePath = QCoreApplication::applicationDirPath() + '/' + fileName;
    QSettings *ini = new QSettings(filePath,QSettings::IniFormat);
 
    ini->beginGroup("Zdania");
 
    const QStringList childKeys = ini->childKeys();
    engine.seed(std::chrono::steady_clock::now().time_since_epoch().count());
    std::uniform_int_distribution<int> dis(0,childKeys.size()-1);
 
    cout << ini->value(childKeys[dis(engine)]).toString().toStdString() << '\n';
 
    ini->endGroup();
    delete ini;
    return 0;
}

 

+ plik zczytywany z lokalizacji pliku .exe Liczba zdan moze byc dowolona. Wylosuje zawsze jedno z dostepnych.

 

 

 

[Zdania]

1=Pierwsze zdanie
2=Drugie zdanie
3=bla bla bla

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...