Odčítání hodnoty pomocí funkce – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Odčítání hodnoty pomocí funkce – C / C++ – Fórum – Programujte.comOdčítání hodnoty pomocí funkce – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Kenvelo+2
Super člen
24. 7. 2013   #1
-
0
-

Zdravím chci se zeptat potřeboval bych při každém spuštění funlce odebrat hodnotu př  

int i;

void A();
void B();

int main()
{
int i = 10;
return 0;
}

void A()
{
if (i == 0)
{
  //Kod
}
else 
//Kod
// odebere z hodnoty i - 1
}

void B()
{
if (i == 0)
{
//Kod
}
else // odebere z hodnoty i - 1
//Kod
// odebere z hodnoty i - 1
}

nějak si s tím nevím rady. Díky za pomoc 

Nahlásit jako SPAM
IP: 89.177.13.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
KIIV
~ Moderátor
+43
God of flame
25. 7. 2013   #2
-
0
-

pekvapive budes muset vypocitat i - 1 a pak to do i zase ulozit

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
25. 7. 2013   #3
-
0
-

Ta dvojí deklarace i asi nebude fungovat podle tvých představ, jednou je i globální, podruhé je lokální ve funkci main

Jinak nechápu, co má funkce provést, zda má udělat i - 1 nebo jakási_hodnota - (i - 1)

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Robo
~ Anonymní uživatel
82 příspěvků
25. 7. 2013   #4
-
0
-

#1 Kenvelo
A keď chceš aby ti nejaká funkcia fungovala, tak by si ju mal aj v maine zavolať.
Keď som si všimol, že v obidvoch funkciách iba odčítavaš a máš tam globálnu aj lokálnu premennú i, tak chceš asi vytvoriť program, ktorý ti bude odčítavať od týchto premenných nejakú hodnotu. Keď tam máš všade if, tak asi to chceš mať do nuly

#include <iostream>

int i = 10;

int A(int i); //Musi vracat hodnotu, kedze funkcia pracuje len s jej kopiu
void B(); //Nemusi vracit nic, kedze sa nepredava ako argument

int main()
{
	//Vytvorenie lokalnej premennej i, ktora prekryva globalnu premennu i
	int i = 10;

	for(int j = 0; j < 10; j++){
		i = A(i);
		B();

		std::cout << "Lokalna premenna: " << i << "\nGlobalna premenna: " << ::i << std::endl;
	}

	system("PAUSE");
}

int A(int i){
	if(i > 0)
		return --i;
}

//Pristup k lokalnej premennej za pomoci ::
void B(){
	if(::i > 0)
		::i -= 1;
}
Nahlásit jako SPAM
IP: 178.253.147.–
Robo
~ Anonymní uživatel
82 příspěvků
25. 7. 2013   #5
-
0
-

Ten komentár dole je zlý, to je prístup ku globálnej premennej

Nahlásit jako SPAM
IP: 178.253.147.–
vitamin+8
Grafoman
25. 7. 2013   #6
-
0
-

#1 Kenvelo
Čo sa vlastne pokúšaš vytvoriť?

Nahlásit jako SPAM
IP: 195.28.77.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Kenvelo+2
Super člen
25. 7. 2013   #7
-
0
-

#6 vitamin
Zkoušel sem příklad jen sem se zasekl. Zadání :

1. Vytvořte proměnou int i nastavte její maximální hodnotu na 500 a minimální na 0 aktuální stav proměnné je 10

2. Vytvořte 3 funkce void A,B,C které budete spouštět příkazem switch

3. Při každém spuštění funkce A nebo B se hodnota proměnné "int i" sníží o -1

4. Při spuštění funkce C se k proměnné int i přičte +1

Nahlásit jako SPAM
IP: 89.177.13.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
Kenvelo+2
Super člen
25. 7. 2013   #8
-
0
-

#7 Kenvelo
Zapoměl sem dodat že funkce A,B,C musí být ve třídě

Nahlásit jako SPAM
IP: 89.177.13.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
KIIV
~ Moderátor
+43
God of flame
25. 7. 2013   #9
-
0
-

tak to resis uplne blbe a i ta promenna ma byt ve tride...

tridnim funkcim se pak mimochodem rika metody

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kenvelo+2
Super člen
25. 7. 2013   #10
-
0
-

#9 KIIV
A řešení by prosím nebylo ? :)

Nahlásit jako SPAM
IP: 89.177.13.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
KIIV
~ Moderátor
+43
God of flame
25. 7. 2013   #11
-
0
-

Reseni by klidne bylo, ale prece to neni muj domaci ukol :D Ja to umim, ale co ty - chces se to naucit nebo kouknout, rict si aha tak takhle a okamzite to zase zapomenout?

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kenvelo+2
Super člen
25. 7. 2013   #12
-
0
-

#11 KIIV
Jasný chápu :) Špatně sem to vysvětlil, co bych měl hledat na googlu :)

Nahlásit jako SPAM
IP: 89.177.13.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
KIIV
~ Moderátor
+43
God of flame
25. 7. 2013   #13
-
0
-

tak abys to nemel tak tezky a bylo to cesky hledej napriklad   "c++ tridy"

bude to chtit konstruktor, metodu na inkrementaci ty promenny, metodu na dekrementaci, metodu na vraceni aktualni hodnoty a ty tri metody ktery jen zavolaji inkrementaci nebo dekrementaci (cesky pricteni a odecteni - obvykle jednotky)

a ta promenna by pak mela byt idealne privatni...

zjistit co vsechny zminene pojmy znamenaji a tak...

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kenvelo+2
Super člen
25. 7. 2013   #14
-
0
-

#13 KIIV
To mi jako odpověď stačí =) díky A hezký večer :)

Nahlásit jako SPAM
IP: 89.177.13.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
vitamin+8
Grafoman
25. 7. 2013   #15
-
0
-

Neriesil si to uplne zle ani predtym, ide to aj cez globalne premenne:


thread_local unsigned i = 10;

void A(){
    if(i)--i;
    else;
}
void B(){
    if(i)--i;
    else;
}
void C(){
    if(i < 500)++i;
    else;
}
Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
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, 35 hostů

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ý