Chyba v kóde
-
32jojo32
Chyba v kóde
Ahojte. Učím sa programovať v C Sharpe a našiel som si tutorial na programovanie a bolo tam, že vytváranie aplikácie lenže keď to spravím tak mi nahadzuje vo Visual Studiu chybu a kód mám podľa tutorialu neviete mi prosím pomôcť kde mám chybu ?
namespace priklady_zive
{
class ZarovkaTest
{
public static void Main(string[] args)
{
//zavolani konstruktoru pro vytvoreni instance tridy zarovka
Zarovka naseZarovka = new Zarovka();
//nastaveni atributu vykon přes vlastnost Vykon
naseZarovka.Vykon = 120;
Console.WriteLine("Vykon zarovky je " + naseZarovka.Vykon);
Console.WriteLine("Atribut sviti zarovky = " + naseZarovka.Sviti);
//zavolání metody Rozsvitit
naseZarovka.Rozsvitit();
Console.WriteLine("Atribut sviti zarovky po zavolani metody Rozsvitit = " + naseZarovka.Sviti);
//zavolání metody Zhasnout
naseZarovka.Zhasnout();
Console.WriteLine("Atribut sviti zarovky po zavolani metody Zhasnout = " + naseZarovka.Sviti);
Console.ReadLine();
}
}
}
namespace priklady_zive
{
class ZarovkaTest
{
public static void Main(string[] args)
{
//zavolani konstruktoru pro vytvoreni instance tridy zarovka
Zarovka naseZarovka = new Zarovka();
//nastaveni atributu vykon přes vlastnost Vykon
naseZarovka.Vykon = 120;
Console.WriteLine("Vykon zarovky je " + naseZarovka.Vykon);
Console.WriteLine("Atribut sviti zarovky = " + naseZarovka.Sviti);
//zavolání metody Rozsvitit
naseZarovka.Rozsvitit();
Console.WriteLine("Atribut sviti zarovky po zavolani metody Rozsvitit = " + naseZarovka.Sviti);
//zavolání metody Zhasnout
naseZarovka.Zhasnout();
Console.WriteLine("Atribut sviti zarovky po zavolani metody Zhasnout = " + naseZarovka.Sviti);
Console.ReadLine();
}
}
}
Re: Chyba v kóde
1. Kod patri do tagu code
2. Aku chybu ti to hlasi? Zislo by sa tiez hodit cely kod, nikde totiz nevidim definiciu classy Ziarovka
2. Aku chybu ti to hlasi? Zislo by sa tiez hodit cely kod, nikde totiz nevidim definiciu classy Ziarovka
-
32jojo32
Re: Chyba v kóde
Pridal som sem screeny prvý screen je to čo som mal v tutoriale a druhý je to čo som dal to c sharpu
-
Mek
Addict
- Príspevky: 4661
- Registrovaný: 23 mar 2005, 23:00
- Bydlisko: ZA <-> TN
- Kontaktovať používateľa:
Re: Chyba v kóde
Ta chyba hovori, ze v programe ti chyba trieda Zarovka.
-
32jojo32
Re: Chyba v kóde
Aj som si myslel ale ako ju tam dám... Prepáč možno to je úplne ľahké ale ja sa to len učím takže neviem nič....
Re: Chyba v kóde
Musis si ju napisat, pozri si ako funguju triedy a objekty v cpp
Re: Chyba v kóde
Numline sa asi sekol a myslel C#. Kazdopadne vysvetlit kde napisat triedu je trocha odveci. Skus si zohnat inu knizku alebo iny zdroj lebo zda sa ze to co pouzivas to nevie vysvetlit (popripade len ty pochopit)
-
32jojo32
Re: Chyba v kóde
Akože všetok kód ktorý som sem dal mám dať do triedy to by som mal vedieť už som v tom trochu robil len ma zaujíma či tam mám dat celý ten kód ?
Re: Chyba v kóde
Stačí vytvoriť ďalšiu triedu "Zarovka" aj do toho istého kódu, v ktorej zadefinuješ metódy, resp. atribúty Sviti, Rozsvitit, Zhasnout a Vykon a potom to pôjde.
Re: Chyba v kóde
Ty jedine co potrebujes spravit je zadefinovat triedu a vsetkych jej potrebnych clenov. Neviem o com rozpravas.
-
anyway
Light Star
- Príspevky: 297
- Registrovaný: 12 dec 2009, 18:38
- Bydlisko: Nuuk, Greenland (prechodne BA)
Re: Chyba v kóde
Ahojte, dam to sem, snad to zakladatelovi temy vadit nebude...
Program by mal spriemerovat zadane hodnoty z klavesnice, ale obsahuje logicku chybu, ktoru neviem napravit. Ocakaval som, ze pri druhej funkcii scanf precita znak z klavesnice a podla toho bud cyklus opusti alebo ho zopakuje. Avsak po zadani prvej hodnoty ("Enter value: ") program cyklus zopakuje a naraz vypise retazce z oboch funkcii printf. Ked zadam znak tak zopakuje predchadzajucu hodnotu, ktora sa ulozila do premennej input_value.
Za objasnenie K+.
Program by mal spriemerovat zadane hodnoty z klavesnice, ale obsahuje logicku chybu, ktoru neviem napravit. Ocakaval som, ze pri druhej funkcii scanf precita znak z klavesnice a podla toho bud cyklus opusti alebo ho zopakuje. Avsak po zadani prvej hodnoty ("Enter value: ") program cyklus zopakuje a naraz vypise retazce z oboch funkcii printf. Ked zadam znak tak zopakuje predchadzajucu hodnotu, ktora sa ulozila do premennej input_value.
Za objasnenie K+.
Kód: Vybrať všetko
#include <stdio.h>
void main()
{
double input_value,
total_value = 0;
int count = 0;
char con_req;
for(; ;) {
printf("Enter value: ");
scanf("%lf", &input_value);
total_value += input_value;
count++;
printf("\nDo you want to continue[Y/N]");
scanf("%c", &con_req);
if (con_req == 'n' || con_req == 'N')
break;
}
printf("\nThe avarage of entered values is: %.2lf: ", total_value/count);
}Re: Chyba v kóde
Dopln za V bufferi ti totiz po nacitani cisla ostane znak \n a ten dalsi scanf si potom ten znak z bufferu nacita.
Kód: Vybrať všetko
fflush(stdin);Kód: Vybrať všetko
scanf("%lf", &input_value);-
anyway
Light Star
- Príspevky: 297
- Registrovaný: 12 dec 2009, 18:38
- Bydlisko: Nuuk, Greenland (prechodne BA)
Re: Chyba v kóde
Dakujem!
A ak chcem pouzivat prikazy, ktore su mi zname je
toto vhodne riesenie? Mozno ta napadne nieco vhodnejsie pouzitim klucovych slov, ktore sa zvykne ucit na zaciatku (ako if, while...)
A ak chcem pouzivat prikazy, ktore su mi zname je
Kód: Vybrať všetko
printf("\nDo you want to continue[Y/N]");
scanf("%c", &con_req);
if(con_req == '\n')
scanf("%c", &con_req);
Re: Chyba v kóde
Skor to potom spravit tak ze namiesto fflush (ak ho teda nechces pouzit, ale proramovanie je aj o googleni a objavovani novych funkcii), tak si mozes spravit taky vyprazdnovac bufferu aj sam.
Kód: Vybrať všetko
while (getchar() != '\n');-
anyway
Light Star
- Príspevky: 297
- Registrovaný: 12 dec 2009, 18:38
- Bydlisko: Nuuk, Greenland (prechodne BA)
Re: Chyba v kóde
Prirodzene, len som chcel vediet ci existuje viac sposobov ako sa vysporiadat s tymto problemom.
Este raz dakujem.
Este raz dakujem.
Re: Chyba v kóde
Existuje. Môžeš do scanf pridať načítanie znaku naviac a to bude odchytávať práve ten enter. A vyprázdňovanie bufferu nebude potrebné.anyway napísal:len som chcel vediet ci existuje viac sposobov ako sa vysporiadat s tymto problemom.
Jednoduchšie a aj logickejšie je ale robiť to tak, ako bolo spoenuté.
-
anyway
Light Star
- Príspevky: 297
- Registrovaný: 12 dec 2009, 18:38
- Bydlisko: Nuuk, Greenland (prechodne BA)
Re: Chyba v kóde
Ahojte, vysledne hodnoty sa zobrazuju ako nulove. Preco?
Ak pouzijem datovy typ float, tak je vsetko v poriadku.
BX: Tiez diki.
Ak pouzijem datovy typ float, tak je vsetko v poriadku.
Kód: Vybrať všetko
#include <stdio.h>
int main(void)
{
double values_read[5];
double values_recip[5];
double sum = 0.0;
for(int i = 0; i < 5; i++) {
printf("Enter %d. value: ", i + 1);
scanf("%lf", &values_read[i]);
}
for(int i = 0; i < 5; i++) {
values_recip[i] = 1.0 / values_read[i];
printf("The reciprocal value of %.2lf is %.2lf\n", values_read[i], values_recip[i]);
sum += values_recip[i];
}
printf("\nThe sum of the reciprocal values is %.2lf", sum);
return 0;
}
Re: Chyba v kóde
Nezobrazujú. U mňa v pohode a v kóde chybu nevidím.anyway napísal:Ahojte, vysledne hodnoty sa zobrazuju ako nulove.
-
anyway
Light Star
- Príspevky: 297
- Registrovaný: 12 dec 2009, 18:38
- Bydlisko: Nuuk, Greenland (prechodne BA)
Re: Chyba v kóde
Tak to bude chyba v mojom systeme.. Nestretol si sa nahodou s tymto problemom?
Pouzivam CodeBlocks vo Win7.
Pouzivam CodeBlocks vo Win7.
Re: Chyba v kóde
V printf použi %f, nie %lf - ISO C++ toto v printf nepodporuje. Neviem, či to môže spôsobovať takúto chybu, tak vyskúšaj.
Mať svoj notebook, tak to vyskúšam v Codeblocks na W7. Teraz som na macu.
Mať svoj notebook, tak to vyskúšam v Codeblocks na W7. Teraz som na macu.