Forum » Programiranje » c++ fukncije in procedura
c++ fukncije in procedura
roccat ::
Lepo pozdravljeni sem začetmik v tem in me zanima kako bi se lotili sledeče naloge.
Uporabnik poda besedilo .Izpiši besedilo v obratnem vrstnem redu.Če so v besedilu znaki cifer jih izpustimo.?
Nikakor nevem kako bi zapisal.
Uporabnik poda besedilo .Izpiši besedilo v obratnem vrstnem redu.Če so v besedilu znaki cifer jih izpustimo.?
Nikakor nevem kako bi zapisal.
darkkk ::
Malo bolj natančno boš moral specificirat zadeve. Ali lahko uporabljaš std::string ali moraš delat s char arrayem?
Ali je tekst podan kot datoteka ali vpiše v konzolo, okno?
Načeloma je to primer šolske naloge, katere namen je "razumevanje konceptov", recept je:
prebereš tvoj tekst, nato greš po tvojem tekstu od konca proti začetku in izpisuješ znake, če pa je znak števka, se ga ne izpiše.
Ko boš probal to narest in če ne bo delalo bomo pomagali dalje.
Ali je tekst podan kot datoteka ali vpiše v konzolo, okno?
Načeloma je to primer šolske naloge, katere namen je "razumevanje konceptov", recept je:
prebereš tvoj tekst, nato greš po tvojem tekstu od konca proti začetku in izpisuješ znake, če pa je znak števka, se ga ne izpiše.
Ko boš probal to narest in če ne bo delalo bomo pomagali dalje.
roccat ::
Ja z poljem in podprogrami kot sta procedura in funkcija .Tudi jaz bolj nerazumem kako bi se lotil da bi izpisal obratni vrstni red .
Tako kot si rekel
menda tako da npr uparabnik poda besedilo tak ga menda program izpiše v obratnem vrstnem redu pa če so št 1 do 9 podane jih program izpusti oz ne izpiše .Tako si jaz razglagam to nalogo ,ali prav razmišljam?
Tako kot si rekel
menda tako da npr uparabnik poda besedilo tak ga menda program izpiše v obratnem vrstnem redu pa če so št 1 do 9 podane jih program izpusti oz ne izpiše .Tako si jaz razglagam to nalogo ,ali prav razmišljam?
Zgodovina sprememb…
- spremenil: roccat ()
darkkk ::
Za kam rabiš to?
A compiler maš?
A hello world si že napisal? Napiš to tako, da bo izpisalo "dlrow olleh" in si že na pol poti.
A compiler maš?
A hello world si že napisal? Napiš to tako, da bo izpisalo "dlrow olleh" in si že na pol poti.
roccat ::
Za šolo rabim nevem kako bi se lotil ,oz nerazumem kaj bi uporabil za izpis obratnega vrsnega red.
nekak tak samo nevem če je prav
lahko bi tui šel s string kot si omenil
cin podaš besedilo,pol za cout naj izpiše obratno ali kako,lahko bi šel s stringom
kako pa stavim primer v ta forum ker sem probal pa mi nepiše da ni html koda zaključena
če mogoče udi kateri ve za dober vodič na internetu ,da si malo pogledam
nekak tak samo nevem če je prav
lahko bi tui šel s string kot si omenil
cin podaš besedilo,pol za cout naj izpiše obratno ali kako,lahko bi šel s stringom
kako pa stavim primer v ta forum ker sem probal pa mi nepiše da ni html koda zaključena
če mogoče udi kateri ve za dober vodič na internetu ,da si malo pogledam
Zgodovina sprememb…
- spremenil: roccat ()
hexor ::
Primer za array: Sprehodi se po nizu od konca proti začetku in če trenutni element na določenem indexu vsebuje števko narediš preskok v trenutni iteraciji (uporabiš continue stavek).
RootMachine ;)
darkkk ::
#include <iostream> #include <string> void obrni_in_izpisi(std::string str); int main(void){ std::cout << "Vnesi niz: "; std::string input = ""; std::getline(std::cin, input); obrni_in_izpisi(input); return 0; } void obrni_in_izpisi(std::string str) { for(int i = (str.length() - 1); i >= 0;i--){ if(str[i] >= '0' && str[i] <= '9') continue; else std::cout << str[i]; } }
sam verjetno ti s tem delam škodo
roccat ::
Ok najlepša hvala
zanima me če iamste kakšne vodiče in navodila za programiranje itd.
Kako začeti .Teorijo še nakako razum potem pa praktično je težje
V šoli nekaj delamo samo me zanima kako najenostavnejše pognati napisan program .V katerem programu programirate najlažje
zanima me če iamste kakšne vodiče in navodila za programiranje itd.
Kako začeti .Teorijo še nakako razum potem pa praktično je težje
V šoli nekaj delamo samo me zanima kako najenostavnejše pognati napisan program .V katerem programu programirate najlažje
Zgodovina sprememb…
- spremenil: roccat ()
roccat ::
Me pa zanima če je uporabljena funkcija in procedura v tem napisanu podprogramu
če mi lahhko kdo razloži napisan program ker ne razumem najbolj.
če mi lahhko kdo razloži napisan program ker ne razumem najbolj.
hexor ::
Najprej bi rad dopolnil darkk-ov program, glede preglednosti..V bodoče uporabljaj raje po #include notaciji še imenski prostor tj. using namespace std; da se izogneš pisanju predpone pred posameznimi I/O stavki.Zdaj pa glede programa; imaš definirano main() vseprisotno funkcijo tj. glavno funkcijo v programu v katerem izvajaš neke operacije (napolniš array, prebereš stavke in naprimer kličeš funkcijo kot v tvojem primeru) in sedaj prebereš stavek, ki ga hočeš obrniti (uporabiš getline funkcijo, ki ji kot prvi argument omeniš branje podatka (cin), kot drugi pa spremenljivko, ki jo hočeš napolniti(tj. referenco- sklic na to spremenljivko)tipa string.Naposled kličeš funkcijo "obrni_in_izpisi" kateri kot argument podaš napolnjen niz, katerega obračaš.V funkciji pa je stvar relativno preprosta....sprehodiš se po nizu znakov od konca (str.length()-1, beri zadnji znak v nizu) , do 0-tega začetnega znaka v nizu in hkrati preverjaš če vsebuje določen element v nizu na i-ti pozicijo števko na desetiškem intervalu od 0 do 9 in če preskočiš dotični indeks s to števko in nadaljuješ v naslednji iteraciji, ki (recimo??) ne vkjučuje števke in izpišeš znak na tisti poziciji.
RootMachine ;)
hexor ::
Zakaj nebi bila?Procedura je funkcija v C/C++ in v tvojem primeru je procedura/funkcija "obrni_in_izpisi".
RootMachine ;)
WarpedGone ::
Teorijo še nakako razum potem pa praktično je težje
Ne dečko, ti ne razumeš še ničesar, žal.
Naloga, katero si dobil, ustreza predelani snovi. Greš še Nx čez knjigo/zvezek in si magari naglas bereš napisano.
Pol pa še enkrat od konca proti začetku.
Zbogom in hvala za vse ribe
roccat ::
oK HVALA .Mam neke zapiske samo se ne znajdem .
a pozna kdo kakšne vodiče za to .mislim sem da razumem tisto kar smo napisali v zvzezek da s uporabljamo podprograme za preglednost,in da je manjša koda .itd. Čeprav mi fali en del snovi
Hvala vam za mnenja in predloge ter tako naprej
a pozna kdo kakšne vodiče za to .mislim sem da razumem tisto kar smo napisali v zvzezek da s uporabljamo podprograme za preglednost,in da je manjša koda .itd. Čeprav mi fali en del snovi
Hvala vam za mnenja in predloge ter tako naprej
Zgodovina sprememb…
- spremenil: roccat ()
Kockica ::
#include <iostream> using namespace std; int main() { char besedilo[200]; //Deklaracija tabele, v katero lahko vnesemo 200 znakov; cout << "Vnesi besedilo" << endl; gets(besedilo);//gets = get string; --> Ko poklices tole funkcijo bo program od tebe zahteval,da //vneses znake v tabelo imenovano besedilo. for(int i=strlen(besedilo); i>=0; i--) //for zanka, ker hocemo, da program prebere besedilo v obratnem vrstnemu redu, smo i { //postavili na stevilo znakov, ki smo jih vnesli. Se pravi ce smo prej vnesli 5 znakov, bo i=5. //Tu smo si pomagali z strlen funkcijo, strlen = string length, funkcija vrne stevilo znakov, ki smo jih prej vnesli. if(besedilo[i]<48 || besedilo[i]>57) // if stavek --> tale stavek, bo preveril, ce smo vnesli znak in ne cifre, ce je vnesena cifra, jo ne bo izpisal. // Zakaj 48 in 57? Ker so znaki v ascii tabeli z vrednostjo od 48 do 57 stevila. cout << besedilo[i]; } system("pause>null"); return 0; }
Enostaven ter amaterski programčič. Če ti ni kaj jasno, kar vprašaj.
Tukaj imas tudi link do ascii tabele --> http://www.cpptutor.com/ascii.htm
hexor ::
string niz=" "; while(true)...../tvoja koda..../ cin>>niz if(niz=="IZHOD") break;
RootMachine ;)
roccat ::
#include <iostream> #include <string> #using namespace std; void obrni_in_izpisi(std::string str); int main(void){ cout << "Vnesi niz: "; string input = ""; getline(std::cin, input); obrni_in_izpisi(input); system("pause"); return 0; } void obrni_in_izpisi(std::string str) { for(int i = (str.length() - 1); i >= 0;i--){ if(str[i] >= '0' && str[i] <= '9') continue; else std::cout << str[i]; } } void obrni_in_izpisi(std::string str); int main(void){ cout << "Vnesi niz: "; string input = ""; getline(std::cin, input); obrni_in_izpisi(input); system("pause"); return 0; } void obrni_in_izpisi(string str) { for(int i = (str.length() - 1); i >= 0;i--){ if(str[i] >= '0' && str[i] <= '9') continue; else cout << str[i]; } }
Probal sem tud takole .me pa zanima če lahko kdo to popravi ker mi ne dela in uporabi funkcijo in proceduro v istem programu ter funkcija mora biti pred podprogramom !ker bi nuno potreboval pravilno rešen in razložen ta program .Prosim Hvala
darkkk ::
I rest my case here.
Moj nasvet: dobi si neko literaturo pa si preberi osnove.
Moj nasvet: dobi si neko literaturo pa si preberi osnove.
Zgodovina sprememb…
- spremenil: darkkk ()
roccat ::
#include <iostream> #include <string> using namespace std; void obrni_in_izpisi(string str); int main(void){ cout << "Vnesi niz: "; string input = ""; getline(cin, input); cout << endl; obrni_in_izpisi(input); cout << endl<< endl; system("pause"); return 0; } void obrni_in_izpisi(string str) { for(int i = (str.length() - 1); i >= 0;i--){ if(str[i] >= '0' && str[i] <= '9') continue; else cout << str[i]; } }
Zgodovina sprememb…
- spremenil: roccat ()
darkkk ::
Tule si vključil header-je, pa napisal v iz katerega namespace-a jemlješ nekatere živali. (Meni slaba praksa, če že, pol raje using std::string, ampak na tem mestu nima veze, using namespace std je ok.)
Tule si napovedal funkcijo obrni_in_izpisi, nisi je pa se definiral. Prevajalnik v nadaljevanju ve, kaka funkcija je (kaj vrne, kaj dobi noter), kaj drugega ga niti ne briga.
Na tem mestu maš main, main vodi "flow" tvojega programa.
Tule maš definirano funkcijo obrni_in_izpisi, tule je specificirano kaj tale žival naredi.
V tvojem primeru (tj funkcija pred mainom, postaviš pač celotno definicijo funkcije pred main) (skopiraš zadnji blok) in izbrišeš napoved.
#include <iostream> #include <string> using namespace std;
Tule si napovedal funkcijo obrni_in_izpisi, nisi je pa se definiral. Prevajalnik v nadaljevanju ve, kaka funkcija je (kaj vrne, kaj dobi noter), kaj drugega ga niti ne briga.
void obrni_in_izpisi(string str);
Na tem mestu maš main, main vodi "flow" tvojega programa.
int main(void){ cout << "Vnesi niz: "; string input = ""; getline(cin, input); cout << endl; obrni_in_izpisi(input); cout << endl<< endl; system("pause"); return 0; }
Tule maš definirano funkcijo obrni_in_izpisi, tule je specificirano kaj tale žival naredi.
void obrni_in_izpisi(string str) { for(int i = (str.length() - 1); i >= 0;i--){ if(str[i] >= '0' && str[i] <= '9') continue; else cout << str[i]; } }
V tvojem primeru (tj funkcija pred mainom, postaviš pač celotno definicijo funkcije pred main) (skopiraš zadnji blok) in izbrišeš napoved.
roccat ::
A mi lahko tukaj naprej še pomagate ! prosim
Sam probravam pa nikakor ne uspeva !
Meni je profesor v šoli rekel da je nimam navedene v tem programo
a se ne začne pp z void ali kako
mogal bi meti nekako takole zadnji izpiši in obrni nazaj v glavni program
nvaedem string isto for znak mali niz
Z DU WHILE ZANKO BI NEKAKO MORAL TA PROGRAM ZAKLJUČITI. UPORABNIK REČE KOLIKOKRAT SE NAJ PONOVI
Rabim kodo v obliki funkcije in v obliki procedure.
pp MORAM klicati ,
Kodo funkcije moram zapisati za glavnim programom ,kodo precedure pa pred.
rešitev načrtuj in kodiraj ter dokumentiraj
- v glavnem programi izvedi klic obeh PP
-ZA IZHOD UPORABI PARAMETRE in ukaz return
-Program se naj konča ko uporabnik poda funkcijo izhod.
- če je več števil uporabi polje.
NUjno bi rabil nalogo pravilno rešeno ,ker bo profesor ocenjeval.
Sam probravam pa nikakor ne uspeva !
Meni je profesor v šoli rekel da je nimam navedene v tem programo
a se ne začne pp z void ali kako
mogal bi meti nekako takole zadnji izpiši in obrni nazaj v glavni program
nvaedem string isto for znak mali niz
Z DU WHILE ZANKO BI NEKAKO MORAL TA PROGRAM ZAKLJUČITI. UPORABNIK REČE KOLIKOKRAT SE NAJ PONOVI
Rabim kodo v obliki funkcije in v obliki procedure.
pp MORAM klicati ,
Kodo funkcije moram zapisati za glavnim programom ,kodo precedure pa pred.
rešitev načrtuj in kodiraj ter dokumentiraj
- v glavnem programi izvedi klic obeh PP
-ZA IZHOD UPORABI PARAMETRE in ukaz return
-Program se naj konča ko uporabnik poda funkcijo izhod.
- če je več števil uporabi polje.
NUjno bi rabil nalogo pravilno rešeno ,ker bo profesor ocenjeval.
Zgodovina sprememb…
- spremenil: roccat ()
darkkk ::
Kaj je pa tako hudo narobe s prototipom funkcije?
Čisto nič, razen da se enemu (domnevam superego srednješolskemu prfoksu) zdi odveč.
Kar se tiče pa samega programa, v while zanki izvajaš: prebereš niz (do znaka Enter), ga izpišeš obrnjeno... program zaključiš "nekako", recimo če je vnešen niz prazen. (Oz. to ni tvoj problem, to ti morajo specificirat, ker drgač ne bo nikol prav)
roccat ::
Drugače je pa mislil funkcijo kot PP
ki se deiijo na funkcije in procedure
Navodila
-Koda naj vebuje rešitev v obliki funkcije in procedure
-kodo funkcije zaiši za glavnim programom kodo funkcije pa pred
-v glavnem programu izvedi klic obeh podprogramov ter izpiši rezultate na zaslon
-preveri pravilnost delovanja obeh podprogramov
-za prenos podatkov uporabi
-glavni program se naj konča , ko uporabnik izbere funkcijo izhod,
-če je števil dva ali več uporabi polje
Moral bi uporabiti du while in me vrača nazaj v glavni program
klic pp izpišem v pp.
Drugače pa kao bi nardil da oporabnik sam ugasne program
ki se deiijo na funkcije in procedure
Navodila
-Koda naj vebuje rešitev v obliki funkcije in procedure
-kodo funkcije zaiši za glavnim programom kodo funkcije pa pred
-v glavnem programu izvedi klic obeh podprogramov ter izpiši rezultate na zaslon
-preveri pravilnost delovanja obeh podprogramov
-za prenos podatkov uporabi
-glavni program se naj konča , ko uporabnik izbere funkcijo izhod,
-če je števil dva ali več uporabi polje
Moral bi uporabiti du while in me vrača nazaj v glavni program
klic pp izpišem v pp.
Drugače pa kao bi nardil da oporabnik sam ugasne program
Zgodovina sprememb…
- spremenil: roccat ()
darkkk ::
#include <iostream> #include <string> #include <sstream> #include <cstdlib> using std::string; using std::cin; using std::cout; using std::endl; void vnesi_obrni_izpisi(); void loveletter(); int main() { string main ("Vnesi izbiro: \n"); main += "0 - exit\n"; main += "1 - vnesi, obrni, izpisi \n"; main += "2 - pocisti zaslon \n"; main += "3 - loveletter\n"; string choice; int izb; do{ cout << main << std::endl; std::getline(cin, choice); std::istringstream ss(choice, std::istringstream::in); if((ss >> izb).fail()){izb = -1;} switch(izb){ case 0: { return 0; break; } case 1: { vnesi_obrni_izpisi(); break; } case 2: { system("cls"); break; } case 3: { loveletter(); break; } default: { cout << "Neznan ukaz!\n"; break; } } }while(true); return 0; //sicer sem ne sme prit } void vnesi_obrni_izpisi() { cout << endl <<"Vpisi niz: "; string input; getline(cin, input); for(int i = input.length()-1; i >= 0; i--) { if(input[i]>= '0' && input[i]<= '9') continue; else cout << input[i]; } cout << endl; } void loveletter() { system("cls"); std::string love(" .-.\n | |\n | |\n | |\n _| |_\n"); love+=" | | | |-.\n /| ` |\n | | |\n | |\n"; love+=" \\ /\n | |\n | | "; std::cout << std::endl << love << std::endl << std::endl << love << std::endl << std::endl; }
roccat ::
hvala
dobro si naredil
a nimate nič bolj enostavnega
void loveletter to je procedura
void vnesi:obrni je pa funkcija ???
kar zapleten program uh
a v starem programu se neda popravit ma jaz probavam nekaj pa nikakor ne gre
dobro si naredil
a nimate nič bolj enostavnega
void loveletter to je procedura
void vnesi:obrni je pa funkcija ???
kar zapleten program uh
a v starem programu se neda popravit ma jaz probavam nekaj pa nikakor ne gre
Zgodovina sprememb…
- spremenil: roccat ()
darkkk ::
Da razjasnimo (Subroutine) @ Wikipedia
C/C++/C# : funkcija = procedura
Obstajajo jeziki, ki to ločijo (fortran, pascal), zanje je procedura "subroutine", ki nič ne vrne, v Cjeziku, void funkcija.
Torej: signatura funkcije, v kateri vpišeš niz in ga neki premeče in obrne bi se v pascalu imenovala procedura.
Main je pa funkcija, ker vrne int.
Dej povej, za katero šolo to rabiš, pa katero literaturo mate za predmet pa kdo je prfoks :P
C/C++/C# : funkcija = procedura
Obstajajo jeziki, ki to ločijo (fortran, pascal), zanje je procedura "subroutine", ki nič ne vrne, v Cjeziku, void funkcija.
Torej: signatura funkcije, v kateri vpišeš niz in ga neki premeče in obrne bi se v pascalu imenovala procedura.
Main je pa funkcija, ker vrne int.
Dej povej, za katero šolo to rabiš, pa katero literaturo mate za predmet pa kdo je prfoks :P
Zgodovina sprememb…
- spremenil: darkkk ()
roccat ::
elektro računalniška šola ptuj ,literature nimamo samo učitelj piše nekaj na tablo .Franc Vrbancic.
a ni main int glavni program
funkcia ma neke reko da ma ime bool,float
kot nekako takole
a ni main int glavni program
funkcia ma neke reko da ma ime bool,float
kot nekako takole
Zgodovina sprememb…
- spremenil: roccat ()
roccat ::
float FC(float c,float d)//začetek funkcije [ { system("cls");//počisti ekran, zaradi boljše preglednosti d=c-32;//1 del enačbe, po kateri se pretvarja iz fehrenheit v celzija d=d/1.8;//2 del enačbe return (d); }//konec funkcije
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C strukture, kazalci naloga pomocOddelek: Programiranje | 1454 (1349) | DavidJ |
» | [C++] Kopiranje char arraya v drug char arrayOddelek: Programiranje | 1264 (1135) | win64 |
» | C++ preštej število enkOddelek: Programiranje | 1291 (1074) | kihc |
» | int to string v c++Oddelek: Programiranje | 2322 (2050) | OwcA |
» | obratno izpiši besedi - c++Oddelek: Programiranje | 1740 (1571) | losnah |