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

Návratová hodnota – C / C++ – Fórum – Programujte.comNávratová hodnota – C / C++ – Fórum – Programujte.com

 

Luckaa+2
Návštěvník
27. 7. 2012   #1
-
0
-

Dobrý den chtěla bych se zeptat jak udělat návratovou hodnotu vždy krokem zpět ? př

...

int CLANEK;
cin CLANEK;
switch (CLANEK)
	{
case 1 :
text
break;
case 2: 
text 
	int CLANEK_DVA;
	cin CLANEK_DVA;
	switch (CLANEK_DVA)
		{
		case 1:
		text
		break;
		case 2:
		text
		break;
}
break;
}
 // Zde bych potřebovala kdyz skonci CLANEK_DVA tak aby se hodnota vratila na 
// CLANEK continue nepomaha 
Nahlásit jako SPAM
IP: 89.102.78.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
vitamin+8
Grafoman
27. 7. 2012   #2
-
0
-

Daj to cele do cyklu.

Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Luckaa+2
Návštěvník
27. 7. 2012   #3
-
0
-

#2 vitamin
ted nechapu

Nahlásit jako SPAM
IP: 89.102.78.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
vitamin+8
Grafoman
27. 7. 2012   #4
-
0
-

Co znamena toto:

...aby se hodnota vratila na CLANEK

?

Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Luckaa+2
Návštěvník
27. 7. 2012   #5
-
0
-

Jo to chapu ale jeste nemam takove znalosti a opravdu nevim jak to hodit do cyklu :) Ale rada se poučím :)

Nahlásit jako SPAM
IP: 89.102.78.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
vitamin+8
Grafoman
27. 7. 2012   #6
-
+1
-
Zajímavé

Funkcie maju navratovu hodnotu, preto mozu vracat hodnotu (ty nic nevracias).

continue mozes pouzit len v cykle. break ukoncujuci case je iny ako break v cykle.

Nepochopil som presne co chces spravyt, ale moze to byt toto:

int CLANEK;

while(true){
	cin >> CLANEK;
	switch (CLANEK){
		case 1 :
			//text
			break;
		case 2: 
			//text 
			int CLANEK_DVA;
			cin >> CLANEK_DVA;
			switch (CLANEK_DVA){
				case 1:
					//text
					break;
				case 2:
					//text
					break;
			}
		break;
	}
}
Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Luckaa+2
Návštěvník
27. 7. 2012   #7
-
0
-

Vyzkouším to a večer se ozvu :) Děkuji za odpověd máš u mě opravdu veklé +

Nahlásit jako SPAM
IP: 89.102.78.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Atheo+4
Stálý člen
7. 8. 2012   #8
-
0
-

#7 Luckaa
nemusis tam davat zadnej cyklus... ono bohate staci to navratit k funkci napisu priklad :  

#include <stdio.h>

int main(int cislo)
{
    printf("\nZadej cislo");
    scanf("%d", &cislo);
    
    switch(cislo)
    {
                 case 1 : printf("jedna");
                 return main();
                 break;

                 case 2 : printf("dva");
                 return main();
                 break;

                 default : printf("to ostatni");
                 return main();
                 break;
    }
    return 0;
}
return main(); /* te vrati z5 na funkci main ale samozdrejme tam muzes dat jakoukoli jindou funkci vyklus je podle me na tohle zbytecny */
Nahlásit jako SPAM
IP: 188.175.140.–
Atheo+4
Stálý člen
7. 8. 2012   #9
-
0
-

#1 Luckaa
nebo hold pridat pred case

while(1){

switch....

} ale to je podle me zbytecny

Atheo

Nahlásit jako SPAM
IP: 188.175.140.–
Atheo+4
Stálý člen
7. 8. 2012   #10
-
0
-

#1 Luckaa
jeste neco pokud budes chtit zjistit zda se do scanf nacetli jen cisla a ne slova protoze pak to dela borde tak funkce scanf navrati hodnotu a ukaze kolik nacetlo hodnot v nasem pripade %d kdyz zadas cislo tak scanf(..) = 1 ALE kdyz nacte neco jineho tak navrati nulovou hodnotu takze to osetris nasledovne

#include <stdio.h>

int main(int cislo)
{
    printf("\nZadej cislo");
    if(scanf("%d" , &cislo)
	{
		printf("Zadal si nespravnou hodnotu");
		return 0;
	}
    
    switch(cislo)
    {

asi se ptas proc je scanf az v podmince a ne pred ni takto:  

#include <stdio.h>

int main(int cislo)
{
    printf("\nZadej cislo");
    scanf("%d", &cislo);
/*************************/
    if(scanf.......)
    switch(cislo)
    {

<- to je spatne! A to  z duvodu rvalue pokud jsou tam dve rvalue tak se bude cist 2x a proto je to az v podmince aby rvalue bylo jen jeden krat ^^ sice opozdena pomoc ale aspon se neco dozvis :)

Nahlásit jako SPAM
IP: 188.175.140.–
Luckaa+2
Návštěvník
7. 8. 2012   #11
-
0
-

#10 Atheo
Zkoušela sem dát návrat return main(); to fungovalo bez problemu ale kdyz sem dala treba return text; tak me to nevratilo. Myslim ze problem byl v tom ze sem to nedala do tridy.

Nahlásit jako SPAM
IP: 89.102.75.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Atheo+4
Stálý člen
7. 8. 2012   #12
-
0
-

#11 Luckaa
to bys musela dat do funkce mila zlata :)

Nahlásit jako SPAM
IP: 188.175.140.–
Atheo+4
Stálý člen
7. 8. 2012   #13
-
0
-

#11 Luckaa
priklad  

void text(void);

void text(void)
{
	/* sem das co chces aby funkce delala */
}

a pak uz do switche napises jen misto text  

text();

/* a kdyz budes chtit navratit hodnotu ze se na text tak napises jen */

return text();

Atheo

Nahlásit jako SPAM
IP: 188.175.140.–
Luckaa+2
Návštěvník
7. 8. 2012   #14
-
0
-

#11 Luckaa
Popíšu ti to asi tak  Dejme tomu ze chci udelat Nejaky menu : 

int main()
{
cout << Zadejte cislo\n\n";

int menu;
cin >> menu;
switch (menu)
{
case 1 : 
cout << Prihlaseni \n";

int Prihlaseni;
cin >> Prihlaseni;
switch (Prihlaseni) 
{
case 1:
cout << Zadejte jmeno \n";
......
case 2:
cout << Zpet do menu\n";
return main();   
break;
}
break;

case 2:
cout << Registrace\n";
int Registrace;
cin >> Registrace;
switch (Registrace) 
{
case 1:
cout << Bla bla bla\n";
....
case 2: 
cout << Zpet na prihlaseni\n";
return Prihlaseni;  // Ale zde se program nevrati do prihlaseni ale ukonci se
break;
}
break;

case 3: 
cout << Odejit\n";
return 0;
break;

}

Proto me napadlo dat to asi do tridy jestli to nejak pomuže.

Nahlásit jako SPAM
IP: 89.102.75.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Luckaa+2
Návštěvník
7. 8. 2012   #15
-
0
-

#14 Luckaa
Takze myšlenku sem měla dobrou :)

Nahlásit jako SPAM
IP: 89.102.75.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Atheo+4
Stálý člen
7. 8. 2012   #16
-
+1
-
Zajímavé

#14 Luckaa
slecno za 1. stabni kultura ti asi nic nerika :P (odradkovani a podobne)

a za 2. bych to udelal nasledovne napisu to v jazyce C

#include <stdio.h>
void prihlaseni(void);
void registrace(void);

char nickname[32],heslo[32]; /* globalni promenne */
int main()
{
	registrace();
}

/* zde je funkce prihlaseni */
void prihlaseni(void)
{
	printf("Zadej NickName");
	scanf("%s", &nick);
	printf("Zadej Heslo");
	scanf("%s" , &heslo);
        if(heslo == 123456)
            /* program pokracuje */
            
        else
            /* program se ukonci */
            return 0;
}
/* zde je funkce na registraci */
void registrace(void)
{
	printf("Zvolte si prezdivku");
	scnaf("%s", &nickname);
	printf("Zvolte si heslo");
	scanf("%s", &heslo);
        return prihlaseni();

}

snad jsem to napsal dost jasne a pochopila jsi to jak to myslim :) 2x jsem to editoval :D snad uz je to ok

Nahlásit jako SPAM
IP: 188.175.140.–
Atheo+4
Stálý člen
7. 8. 2012   #17
-
+1
-
Zajímavé

#15 Luckaa
a program to udela nasledovne : vyvola registraci protoze v main() je jen registrace(); a na konci funkce registrace je 

Prave to return prihlaseni(); takze to vyvola prihlaseni :) pokud se heslo bude rovnat te promenne co jsme zadali u registrace atd.. to uz jsou detaily:)

Nahlásit jako SPAM
IP: 188.175.140.–
Luckaa+2
Návštěvník
7. 8. 2012   #18
-
+2
-
Zajímavé

#16 Atheo
Urcitě pochopila jen mě ještě napadlo když udělam

class POKUS;
{
int Prihlaseni()
{
 //zde zadam vse co by melo byt pro prihlaseni
}
int Registrace()
{
// zde vse pro registraci 
}
int main()
{
 // a zde uz jen case 1,2,3
// stim ze uz bych mohla odkazovat pouze return Prihlaseni(); ? 
// slo by to ? Nebylo by to jednodusi ? 
Nahlásit jako SPAM
IP: 89.102.75.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Atheo+4
Stálý člen
7. 8. 2012   #19
-
+1
-
Zajímavé

#18 Luckaa
myslim ze mas pravdu chce to vyzkouset... jak rikam C++ neumim v C tridy nejsou :) takze s tridama ti nepomuzu  ale melo by to fungovat :) 

http://jpeg.cz/…07/tZ0wM.jpg

i dont have class :(

Nahlásit jako SPAM
IP: 188.175.140.–
Luckaa+2
Návštěvník
7. 8. 2012   #20
-
0
-

#18 Luckaa
Učím se :) Proto takove blbe otázky :) Snad se nezlobis.

Nahlásit jako SPAM
IP: 89.102.75.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Luckaa+2
Návštěvník
7. 8. 2012   #21
-
0
-

#19 Atheo
:D :D :D

Nahlásit jako SPAM
IP: 89.102.75.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Atheo+4
Stálý člen
7. 8. 2012   #22
-
+1
-
Zajímavé

#21 Luckaa
jeee urcite nezlobim rad pomuzu :) kazdej zacina a ja nejsem taky zrovna zadny expert takze si to aspon zopakuju :)

Nahlásit jako SPAM
IP: 188.175.140.–
reciproke0
Návštěvník
7. 8. 2012   #23
-
0
-

#18 Luckaa
Na třídy se teď vykašli, když v tuhle chvíli se zasekneš na něčem základním.


Pro přehlednost si vytvoř funkce které ti budou vypisovat jednotlivé části jako menu, přihlášení..., které budeš podle kontextu z cyklu volat.

Nahlásit jako SPAM
IP: 82.208.4.–
Atheo+4
Stálý člen
7. 8. 2012   #24
-
0
-

#23 reciproke
omlouvam se ale v cem je to jine nez tech 10 komentu odeme nad tim?:)

Nahlásit jako SPAM
IP: 188.175.140.–
reciproke0
Návštěvník
7. 8. 2012   #25
-
0
-

#24 Atheo
Prakticky v ničem, jen ať do toho nemotá třídy, které problém jednodušejí nevyřeší.

ad #16 problém neřeší, uzávám že jako nástřel funkcí ok i když bez návratové hodnoty...

Nahlásit jako SPAM
IP: 82.208.4.–
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, 46 hostů

Podobná vlákna

Návratová hodnota — založil RePRO

Návratová hodnota z vlákna — založil Filip0913

Delegát - návratová hodnota — založil Kubas129

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ý