Prosim RADU – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Prosim RADU – C / C++ – Fórum – Programujte.comProsim RADU – C / C++ – Fórum – Programujte.com

 

Mikys
~ Anonymní uživatel
17 příspěvků
5. 4. 2012   #1
-
0
-

Chtel bych udelat program který bude reagovat na položenou otázku s předem definovanou odpovědí.
Pomůžete  mi v kousku kodu ?
Předem děkuji za odpověd.

Nahlásit jako SPAM
IP: 89.177.13.–
Mikys
~ Anonymní uživatel
17 příspěvků
5. 4. 2012   #2
-
0
-

Budu moc rad  kdyz me aspon navedete na dobrou cestu pod cim bych mel hledat a cemu se venovat. Dekuji

Nahlásit jako SPAM
IP: 89.177.13.–
miro
~ Anonymní uživatel
20 příspěvků
5. 4. 2012   #3
-
0
-

zakladne konstrukcie c/c++...

Nahlásit jako SPAM
IP: 147.175.189.–
KIIV
~ Moderátor
+43
God of flame
5. 4. 2012   #4
-
0
-

spis zalezi na tom co mysli tou odpovedi na otazku ... (hlavne jestli je obecna ci libovolna)

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
yaqwsx+9
Posthunter
5. 4. 2012   #5
-
0
-

Pořádně nechápu co máš na mysli... Pokud máš zadanou tabulku hodnot otázka/odpověď, tak program může vypadat např. takto:

#include <iostream>
#include <string>
#include <map>

using namespace std;

int main()
{
	map<string, string> tabulka;
	//Naplnění tabulky daty:
	tabulka["Jakou barvu má obloha?"] = string("Modrou");
	tabulka["Kolik je 1+1?"] = string("2");
	string otazka;
	cout << "Zadejte otázku: ";
	getline(cin, otazka);
	string odpoved = tabulka[otazka];
	if(odpoved.size() == 0)
		cout << "Neznám odpověď";
	else
		cout << odpoved;
	return 0;
}
Nahlásit jako SPAM
IP: 85.160.39.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Mikys
~ Anonymní uživatel
17 příspěvků
5. 4. 2012   #6
-
0
-

Tou otazkou myslím třeba klasickou komunikaci ... Ale ten poslední kod se mi opravdu libi :) zkusím to a popřípadně se ještě ozvu... chtěl  bych vytvořit program takový chatovaci o to mi jde...  kamarád mě poprosil jestli by to bylo možne tak sem řekl, že něco zkusim a uvidíme jak to dopadne... Každopádně děkuji za odpověď

Nahlásit jako SPAM
IP: 89.177.13.–
Mikys
~ Anonymní uživatel
17 příspěvků
5. 4. 2012   #7
-
0
-

jeste dotaz

#include <iostream>
#include <string>
#include <map>

using namespace std;

int main()
{
map<string, string> tabulka;
//Naplnění tabulky daty:
tabulka["Jakou barvu ma obloha?"] = string("Modrou");
tabulka["Kolik je 1+1?"] = string("2");
string otazka;
cout << "Zadejte otázku: ";
getline(cin, otazka);
string odpoved = tabulka[otazka];
if(odpoved.size() == 0)
  cout << "Neznam odpoveď";
else
  cout << odpoved;
 
  system("pause");
      return 0;
      }

u tohoto kodu jak se vraci zpatky hodnota na otazku ? vypise mi to jen jednou

 a pak se program ukonči

Nahlásit jako SPAM
IP: 89.177.13.–
ingiraxo+15
Grafoman
5. 4. 2012   #8
-
0
-

#7 Mikys
nekonečnej cyklus... "brejkneš" to pak dle potřeby, ale na tvím místě, bych se spíš naučil aspoň základy, kdyby ti kamarád řekl, zkus naprogramovat kopii Windows, tak tu budes psát denně 10+ dotazů a "tvůj" kód bude složenej z našich kódů =D

Né opravdu... nauč se základy aspon ;)

Nahlásit jako SPAM
IP: 46.183.64.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Mikys
~ Anonymní uživatel
17 příspěvků
5. 4. 2012   #9
-
0
-

Omlouvám se pokud to někoho naštvalo učím se c++ 2týdny..  učím se z knihy ( mistrovství c++) ale zatím to tam nikde nerozepisoval proto se ptám zde... a proto možná existuje tohle forum :)

Každopádně děkuji za odpovědi... a když to řeknu jinak člověk má hubu na to aby se ptal :)

Ale i tak se teda omlouvám :)

Nahlásit jako SPAM
IP: 89.177.13.–
Mikys
~ Anonymní uživatel
17 příspěvků
5. 4. 2012   #10
-
0
-

#4 KIIV
Otazka je libovolna ... cim se mi libi vypsat si knihovnu... ale přemyslím jestli program potom nebude pracovat pomalu kdyz bude hledat odpověd na otazku ....

Nahlásit jako SPAM
IP: 89.177.13.–
Mikys
~ Anonymní uživatel
17 příspěvků
5. 4. 2012   #11
-
0
-

#5 yaqwsx
Strašně děkuji za kod. Hodně mi pomohl a hlavně tímto se přiblížím trošku k c++ Pravda kopírovat někoho práci není zrovna to nejlepší ale já pevně věřím, že se třeba naučím  jiný způsob :) Moc děkuji :)

Nahlásit jako SPAM
IP: 89.177.13.–
KIIV
~ Moderátor
+43
God of flame
5. 4. 2012   #12
-
0
-

jde o to ze udelat tendle typ odpovidace je pomerne narocny... neni to zrovna projekt co by clovek chtel delat po 2 tydnech... resp da se to udelat jednoduse, ale sebemensi odchylka a uz to nenajde odpoved

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Mikys
~ Anonymní uživatel
17 příspěvků
5. 4. 2012   #13
-
0
-

#12 KIIV
Ano nadtim sem premyslel ... proto sem udelal ReadMe co vypise program na zacatku :)

jen jeste prosim otazka docela badam na tim jak program prinutit aby se nevypnul po prvni otazce

to mam za kazdou odovedi davat break ? nebo se to da uz udelat v tom returnu 0;  premyslel sem ze by se dalo zadat na navrat pocatecní otázky ale jak koliv to napisu tak kompilator haze chybu

Nahlásit jako SPAM
IP: 89.177.13.–
yaqwsx+9
Posthunter
5. 4. 2012   #14
-
0
-

#13 Mikys
Aby se ti nevypnul, tak nekonečnou smyčku:

while(true)
{
//Tvůj kód zde, pro ukončení stačí break;
}

popř. ještě se používá:

bool hotovo = false;
while(!hotovo)
{
	//Kód zde
	//Pokud potřebuješ ukončit, tak hotovo = true
}

Jinak tyto chatovací programy se většinoupíšou na základě jednoduché analýzy vstupu. Proto jsou tak blbé. Např.hledají ve vstupu sprosté slovo - pokud tam je, tak vypíší větu ve smyslu "Nebuď sprostý". Nebo hledají jména, klíčová slova např. pro otázky počasí atd... (např. když najde ve vstupu slovo venku a pěkně, tak vypíše větu ve smyslu "Ano, opravdu je venku pěkně, ale včera bylo škaredě") Porozumnění "lidské komunikaci" je zatím velký problém.

Nahlásit jako SPAM
IP: 85.160.39.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Mikys
~ Anonymní uživatel
17 příspěvků
5. 4. 2012   #15
-
0
-

#14 yaqwsx
prosim vas jeste kde ten kod ted mam zadat presneji vlozim vas kod co jste mi napsal a jestli vas muzu drzovat vypiste ho zpatky stim upravenym o opakovani

#include <iostream>
#include <string>
#include <map>

using namespace std;

int main()
{
map<string, string> tabulka;
//Naplnění tabulky daty:
tabulka["Jakou barvu má obloha?"] = string("Modrou");
tabulka["Kolik je 1+1?"] = string("2");
string otazka;
cout << "Zadejte otázku: ";
getline(cin, otazka);
string odpoved = tabulka[otazka];
if(odpoved.size() == 0)
  cout << "Neznám odpověď";
else
  cout << odpoved;
return 0;
}

kazdopadne vubec netusim jak se vam mam za to kompenzovat... strasne jste mi pomohl

Nahlásit jako SPAM
IP: 89.177.13.–
ingiraxo+15
Grafoman
5. 4. 2012   #16
-
0
-

#15 Mikys
 

#include <iostream>
#include <map>
#include <string>

using namespace std;

int main()
{
    map<string, string> texty;

    // seznam otazek a odpovedi
    texty["ahoj"]        = "cau";
    texty["jak se mas?"] = "dobre";
    texty["tak zatim"]   = "jojo";

    // nekonecny cyklus
    // je nutne ukoncit program rucne pres break/return/exit
    while (true)
    {
        // pres konzoli se ptam na otazku
        string otazka;
        getline(cin, otazka);

        // pokud otazka bude ":q", tak ukonci program
        if (!otazka.compare(":q")) break;
        
        // zjisti odpoved na danou otazku
        string odpoved = texty[otazka];

        // pokud se otazka bude vyskytovat v seznamu = bude na ni odpoved
        // tak ji vypise.. pokue ne, tak vypise spodni text
        cout << (odpoved.length() ? odpoved :
        "Na tuto otazku neznam odpoved :(") << endl;
    }
    return 0;
}
Nahlásit jako SPAM
IP: 46.183.64.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Mikys
~ Anonymní uživatel
17 příspěvků
5. 4. 2012   #17
-
0
-

#16 ingiraxo
děkuji

Nahlásit jako SPAM
IP: 89.177.13.–
Mikys
~ Anonymní uživatel
17 příspěvků
5. 4. 2012   #18
-
0
-

#16 ingiraxo
ale spis by me zajimalo jak to udelat na return 0; nekde sem videl ze misto 0 napsal do zavorky vraceni na "treba" (otazka :)

Nahlásit jako SPAM
IP: 89.177.13.–
ingiraxo+15
Grafoman
5. 4. 2012   #19
-
0
-

#18 Mikys
to spíš tohle měli ve funkci a pokud něco neprošlo nebo prošlo, tak vrátili odpověď třeba lehká úprava...  

#include <iostream>
#include <map>
#include <string>

using namespace std;

static map<string, string> texty;

void nactiTexty()
{
    texty["ahoj"] = "cau";
    texty["jak se mas?"] = "dobre";
    texty["tak zatim"] = "jojo";
}

string odpoved(string& otazka)
{
    string odpoved = texty[otazka];

    return odpoved.length() ? odpoved :
    "Na tuto otazku neznam odpoved :(";
}

int main()
{
    nactiTexty();

    while (true)
    {
        string otazka;
        getline(cin, otazka);

        if (!otazka.compare(":q")) break;

        cout << odpoved(otazka) << endl;
    }
    return 0;
}
Nahlásit jako SPAM
IP: 46.183.64.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Mikys
~ Anonymní uživatel
17 příspěvků
5. 4. 2012   #20
-
0
-

#19 ingiraxo
každopádně tohle funguje na "boží" urovni :) děkuji moc

Nahlásit jako SPAM
IP: 89.177.13.–
Yami0
Duch
27. 4. 2012   #21
-
0
-

Ahoj.

Mám tu technický problém. Jsem začátečník a mám za úkol udělat aplikaci ohmova zákona. Aplikace se chová takto:

tlačítkem button musím násobit nebo dělit hodnoty v editech. Tady to jsem zatím spáchal:

int cislo;

  if(edtA->Text == "IntToStr")
   edtB->Text = IntToStr(cislo);
   edtC->Text = edtA->Text / edtB->Text;
   rbtOdpor->Checked = true;
  else
   if(edtA->Text == "IntToStr")
   edtB->Text = IntToStr(cislo);
   edtC->Text = edtA->Text*edtB->Text;
   rbtNapeti->Checked = true;

Problém je že mě to vypíše chybu v else. Nevím asi tam mám nějakou začátečnickou chybu. Předem vám děkuji za odpověď

Nahlásit jako SPAM
IP: 90.183.25.–
KIIV
~ Moderátor
+43
God of flame
27. 4. 2012   #22
-
0
-

K cemu to else podle tebe asi tak patri? Videl si if-else syntaxi?

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Yami0
Duch
27. 4. 2012   #23
-
0
-

když mám splněnou podmínku tak se mi vykoná daná funkce. else je vlastně  "nebo" a díky němu bych pak měl vykonat ty funkce pod ním. Když to else tam nedám tak program jde přeložit ale nefunguje správně.

Nahlásit jako SPAM
IP: 90.183.25.–
KIIV
~ Moderátor
+43
God of flame
27. 4. 2012   #24
-
0
-

jenze syntaxe je:

if ( podminka )
  prikaz_splneno();
else
  prikaz_nesplneno();

pricemz je problem ze muzes else cast vynechat ... jak pak poznas ze tam ma byt 60prikazu a pak teprve else? Ci lepsi: co kdyz v tech 60 prikazech bude dalsi if - else ? k cemu patri to else?

A ted otazka za 2 bludistaky: kdyby jen existoval zpusob, jak rict C++ku, aby se skupina prikazu vzala jako jeden ...

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Yami
~ Anonymní uživatel
10 příspěvků
27. 4. 2012   #25
-
0
-

#24 KIIV

už mi to funguje vyřešil jsem to takto:


if(edtA->Text == "IntToStr")
  {
   edtB->Text = IntToStr(cislo);
    edtC->Text = edtA->Text / edtB->Text;
     rbtOdpor->Checked = true;
   }
   else
      if(edtA->Text == "IntToStr")
      edtB->Text = IntToStr(cislo);
      edtC->Text = edtA->Text * edtB->Text;
      rbtOdpor->Checked = true;

Nahlásit jako SPAM
IP: 90.183.25.–
vitamin+8
Grafoman
27. 4. 2012   #26
-
0
-

 Zrejme tam mas zopar logicky chyb, odsadil by som to takto, hned si potom vsimnes zopar chyb

if(edtA->Text == "IntToStr"){
   edtB->Text = IntToStr(cislo);
   edtC->Text = edtA->Text / edtB->Text;   //ako mozes delit retazce ked minimalne jeden z nich obsahuje neciselny string "IntToStr"

   rbtOdpor->Checked = true;
}

else if(edtA->Text == "IntToStr")edtB->Text = IntToStr(cislo);  //preco testujes edtA->Text == "IntToStr" ked vies ze to bude false?


edtC->Text = edtA->Text * edtB->Text;  //podobna blbost ako vyzsie
rbtOdpor->Checked = true;
Nahlásit jako SPAM
IP: 178.143.60.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
KIIV
~ Moderátor
+43
God of flame
27. 4. 2012   #27
-
0
-

#25 Yami
kazdopadne davam automaticky vsechno do bloku... se pak nestane ze bych neco pridal a zapomel na blok... a pak se divil proc mi to ty dalsi prikazy vykonava vzdy ... (protoze za else a if muze byt maximalne jeden prikaz - ostatni uz pak nepatri k tomu)

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 28 hostů

Podobná vlákna

Prosím o radu! :) — založil brunoczech

Prosím o radu !!! — založil ospalka123

Prosím o radu — založil dave3++

Prosím o radu — založil Berry309

Prosím o radu — založil Pavel00

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý