Problém z definíciou premennej – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Problém z definíciou premennej – C / C++ – Fórum – Programujte.comProblém z definíciou premennej – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
w3q0
Věrný člen
30. 9. 2007   #1
-
0
-

Mám takýto kód:

#include <iostream>

using namespace std;
int main()
{
//Deklarácia premenných
char vyber[64]
int F[64];
//Menu
cout <<"Menu:\nVypocet vykonu,\nVypocet prace,\nGrav.zrychlenie\n";
cout <<"Vyberte si moznost(Opiste jednu z moznosti v menu).
cin >> vyber;
if(vyber == Vypocet vykonu)
cout <<"Vzorec:P=F:T\n";
cout <<"Zadajte hodnotu F: ";
cin >> F;
cin.get();
}


Vzorec si nevšímajte, nechcelo sa mi zisťovať aký je(zabudol som) tak som si tipol. Lenže keď spustím kompiláciu, vypíše mi chybu pri premennej F;. Prečo? Čo je nesprávne?

Nahlásit jako SPAM
IP: ...–
HTML,CSS,PHP,MySQL, začínam s Objected C 2.0
Reklama
Reklama
DeathHumanCZ0
Stálý člen
30. 9. 2007   #2
-
0
-

Nejdemy do hlavy
if(vyber == Vypocet vykonu)

Nahlásit jako SPAM
IP: ...–
Vskutku...
k
~ Anonymní uživatel
143 příspěvků
30. 9. 2007   #3
-
0
-

Ach jaj,... HENTAK SA C-CKOVE RETAZCE NEPOROVNAVAJU !!!!!! Uz to tu bolo zopar krat riesene.
if(strcmp(ret1, ret2) == 0) => takto sa porovnavaju C-ckove retazce.
A navyse ak ocakavas viac slovny vstup tak musis pouzit get() alebo getline().
Alebo pouzi triedu string.

A k F: ty to mas z nepochopitelneho dovodu deklarovane ako pole, ak to uz potrebujes ako pole tak to musis mat nieco ako cin >> F[nejaky_index]; alebo F deklauj ak int F;

A uplne nakoniec, vykon sa pocita P = dE/dt = W/dT = (F.ds)/dt = F.v
(d srandy nemusis chapat ako diferncialy, stacia lubovlone zmeny drahy za cas)

Nahlásit jako SPAM
IP: ...–
w3q0
Věrný člen
30. 9. 2007   #4
-
0
-

Ok, prišiel som na to že som mal chyby v kóde(zabudol som ; a pod.) a dostal som sa k ďalšiemu problému: potrebujem, aby sa premenná F ktorú zadal užívateľ delila premennou T ktorú tiež zadal užívateľ. V praxi:

#include <iostream>

using namespace std;
int main()
{
/*Deklarácia premenných*/
int vyber;
int F;
int T;
/*Menu*/
cout <<"Menu:\n1. Vypocet vykonu,\n2. Vypocet prace,\n3. Grav.zrychlenie\n";
/*Samotný program*/
cout <<"Vyberte si moznost(Opiste jednu z moznosti v menu): ";
cin >> vyber;
if (vyber=1)
cout <<"Vzorec:P=F:T\n";
cout <<"Zadajte hodnotu F: ";
cin >> F;
cout <<"\nZadajte hodnotu T: ";
cin >> T;
F:T=P
cout <<"Hodnota P je: "<< P << "\n";

cin.get();
}


Lenže pri cout my to vyhodí chybu a neviem prečo.Niečo mám zle, ale netuším čo.

Nahlásit jako SPAM
IP: ...–
HTML,CSS,PHP,MySQL, začínam s Objected C 2.0
w3q0
Věrný člen
30. 9. 2007   #5
-
0
-

Ok, prišiel som na to že som mal chyby v kóde(zabudol som ; a pod.) a dostal som sa k ďalšiemu problému: potrebujem, aby sa premenná F ktorú zadal užívateľ delila premennou T ktorú tiež zadal užívateľ. V praxi:

#include <iostream>

using namespace std;
int main()
{
/*Deklarácia premenných*/
int vyber;
int F;
int T;
/*Menu*/
cout <<"Menu:\n1. Vypocet vykonu,\n2. Vypocet prace,\n3. Grav.zrychlenie\n";
/*Samotný program*/
cout <<"Vyberte si moznost(Opiste jednu z moznosti v menu): ";
cin >> vyber;
if (vyber=1)
cout <<"Vzorec:P=F:T\n";
cout <<"Zadajte hodnotu F: ";
cin >> F;
cout <<"\nZadajte hodnotu T: ";
cin >> T;
F/T == P
cout <<"Hodnota P je: "<< P << "\n";

cin.get();
}


Lenže pri cout my to vyhodí chybu a neviem prečo.Niečo mám zle, ale netuším čo.

Nahlásit jako SPAM
IP: ...–
HTML,CSS,PHP,MySQL, začínam s Objected C 2.0
k
~ Anonymní uživatel
143 příspěvků
30. 9. 2007   #6
-
0
-

To w3q: Skara chlape presiel si ty aspon 1. lekciu v _HOCIAKOM_ C-ckoidnom jazyku ?!



F:T = P

...jezismaria!
(btw. zo syntaktickeho hladiska tam chyba len ';' ale bude to robit vselico len nie delit...)
a


if(vyber=1) bla bla

nepresiel si nahodou z Pascalu/Delphi ? operator porovnavania je == a nie = a blok prikazov ti nieco hovori - {} - ?

p.s. ten vzorec mas aj tak zle...

Nahlásit jako SPAM
IP: ...–
k
~ Anonymní uživatel
143 příspěvků
30. 9. 2007   #7
-
0
-

Po tom co si to upravil je to este vtipnejsie.... ;)
Takze, najprv si velmi dobre a pozorne precitaj toto:
http://www.builder.cz/art/cpp/clanek320850769.html
a ten kod si uprav na volaco taketo:



float P
if(vyber == 1) {
...
P = (float)F/T;
...
}

Nahlásit jako SPAM
IP: ...–
w3q0
Věrný člen
30. 9. 2007   #8
-
0
-

Viem že vzorec mám zle, to je iba príklad, Delphi mám, viem že operátor prirovnania je == a zabudol som na ;. OK, upravil som kód, dodal som tam ; a program už ide, ale vždy vypíše že hodnota P je 50. Prečo? Pritom 50 sa nikde v programe nespomína :(

/* Názov Programu:Fyzicé vzorce-konstanty*/

/*Tvorca Programu:Michal Takác*/
/*Verzia Programu:1.0.0 BETA v.*/
/*Dátum vytvorenia: 30.9.2007*/



#include <iostream>
using namespace std;
int main()
{
/*Deklarácia premenných*/
int vyber;
int F;
int T;
int P;
/*Menu*/
cout <<"Menu:\n1. Vypocet vykonu,\n2. Vypocet prace,\n3. Grav.zrychlenie\n";
/*Samotný program*/
cout <<"Vyberte si moznost(Opiste jednu z moznosti v menu): ";
cin >> vyber;
if (vyber==1)
cout <<"Vzorec:P=F:T\n";
cout <<"Zadajte hodnotu F: ";
cin >> F;
cout <<"\nZadajte hodnotu T: ";
cin >> T;
F/T==P;
cout <<"Hodnota P je: "<< P;
cin.get();
cin.get();
return 0;
}

Nahlásit jako SPAM
IP: ...–
HTML,CSS,PHP,MySQL, začínam s Objected C 2.0
k
~ Anonymní uživatel
143 příspěvků
30. 9. 2007   #9
-
0
-

Precital si si moj predchadazjuci prispevok a odkaz v nom ?
1.) Chyba ti blok - za if daj '{' a pred 1. cin.get() daj '}'.
Tak ako to mas teraz sa ti if vztahuje iba na "cout <<"Vzorec:P=F:T\n";". Skus napr. zadat 2 a uvidis co to bude robit...

2.)F/T == P - preco to porovnavas ?! Ty chces priradit F/T do P. Takze mas zly operator a este to mas aj nopak. Spravne to ma byt:
P = F/T;
A aj tak ti to nebude robit to co chces lebo nemozes predpokladat ze F/T bude vzdy cele cislo a ked su F aj T cele, tak sa robi celociselne delenie. Takze musis but vsetky deklarovat ako float alebo double alebo iba P a potom aspon jedno z F alebo T pretypovat na float||double.

Nahlásit jako SPAM
IP: ...–
w3q0
Věrný člen
30. 9. 2007   #10
-
0
-

smiem sa spýtať načo je tam ten float?

Nahlásit jako SPAM
IP: ...–
HTML,CSS,PHP,MySQL, začínam s Objected C 2.0
w3q0
Věrný člen
30. 9. 2007   #11
-
0
-

Aha už som pochopil, nechápal som, ale došlo mi, že float je reálny typ.

Nahlásit jako SPAM
IP: ...–
HTML,CSS,PHP,MySQL, začínam s Objected C 2.0
survik1
~ Moderátor
0
Posthunter
30. 9. 2007   #12
-
0
-



#include <iostream>
using namespace std;
int main()
{
int vyber;
int F;
int T;
int P;
cout <<"Menu:\n1. Vypocet vykonu,\n2. Vypocet prace,\n3. Grav.zrychlenie\n";
cout <<"Vyberte si moznost(Opiste jednu z moznosti v menu): ";
cin >> vyber;
if (vyber==1)
{
cout <<"Vzorec:P=F:T\n";
cout <<"Zadajte hodnotu F: ";
cin >> F;
cout <<"\nZadajte hodnotu T: ";
cin >> T;
P = (float)F/T;
cout <<"Hodnota P je: "<< P;
}
cin.get();
cin.get();
return 0;
}


mimochodem, výkon se vypočítá dvěma způsoby:
průměrný: Ps = W/t
okamžitý: P = dW/dt

Nahlásit jako SPAM
IP: ...–
Život je jen hra, která se nedá vyhrát.
mephi0
Expert
1. 10. 2007   #13
-
0
-

P = (float)F/T;

nespoliehal by som sa na prioritu, odporučam zatvorky
P = ((float)F)/((float)T);


mimochodom prečo pretypovať keď to definuješ ako int ? zmenil by som na :
float F;    float T;    float P;


----

survik1 píše:
mimochodem, výkon se vypočítá dvěma způsoby:
průměrný: Ps = W/t
okamžitý: P = dW/dt



tie vzorce sa nijako neodlišuju

Nahlásit jako SPAM
IP: ...–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
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, 279 hostů

Podobná vlákna

Volanie funkcie z premennej — založil radypala

Sql vysledok do premennej — založil deadripple

Php kod v premennej — založil Jakub

URL zmena premennej — založil Codemaster

Moderátoři diskuze

 

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