Forum » Programiranje » [C++] Zamenjava el. polja
[C++] Zamenjava el. polja
roba87 ::
Imam polje[5] z naključnimi števili. Sedaj pa me zanima, kako bi lahko temmu polju spremenil vrednosti, največkrat dvakrat. Naredil sem menu (switch case) in sedaj imam :
1.generiraj stevila
2.zamenjaj poljuben elemente (1,2,3,4,5) stevila, najvec 2 krat.
Torej zanima me kako bi lahko na poljubnem indexu (v moje primeru od 1 do 5) zamenjal oziroma zgeneriral novo vrednost največkrat 2 krat zaporedoma.
probal sem tako:
polje[0] = rand()% 5+1;
...
imam recimo : 2 1 3 5 2 , ker mi 3 ni všeč bi rad zamenjal in na novo zgeneriral element v [2]...
Samo potem pride to težave če se uporabni odloči zamenjati števila na 1 in 4 indexu recimo...Pol bi potreboval za vse kombinacije if stavke, kar pa vrjetno prevec zamudno.
1.generiraj stevila
2.zamenjaj poljuben elemente (1,2,3,4,5) stevila, najvec 2 krat.
Torej zanima me kako bi lahko na poljubnem indexu (v moje primeru od 1 do 5) zamenjal oziroma zgeneriral novo vrednost največkrat 2 krat zaporedoma.
probal sem tako:
polje[0] = rand()% 5+1;
...
imam recimo : 2 1 3 5 2 , ker mi 3 ni všeč bi rad zamenjal in na novo zgeneriral element v [2]...
Samo potem pride to težave če se uporabni odloči zamenjati števila na 1 in 4 indexu recimo...Pol bi potreboval za vse kombinacije if stavke, kar pa vrjetno prevec zamudno.
- spremenil: roba87 ()
Wrop ::
Narediš še eno polje s petimi elementi. Vsi elementi naj bodo na začetku nič. Če je v polju element enak ali manjši od nič, ga lahko ponovno zgeneriraš.
npr:
inicializacija polja2;
npr:
inicializacija polja2;
if (polje2[i]++ <= 1) { polje[i] = rand()% 5+1; }
xyd1 ::
na novo zgeneriraš števila na tem indexu....
cout<<"stevilo na katerem indexu hočeš menjat?"; cin>>st_menjava; polje[st_menjava-1]=rand()%5+1; // st_menjava-1 ker imaš polje //deklarirano od 0-4 (torej 5 št) in ne 1-5 ->predvidevam!
//za zamenjavo 2 stevil hkrati je enako s tem da //vpišeš npr "5 3" potem pa prebereš 2 števili cin>>menjava_prva; cin>>menjava_druga; polje[menjava_druga-1]=rand()%5+1; //za -1 beri zgoraj polje[menjava_prva-1]=rand()%5+1;
Zgodovina sprememb…
- spremenilo: xyd1 ()
roba87 ::
Ok to mi je jasno. Ne kapiram pa kako bi lahko naredil, da bi si sam izbral koliko stevil hocem menjat. Pri tvoj primeru xyd1 že morem v samem programu predvidet koliko števil hočem zamenjat, ker morem toliko krat uporabit cin.
Mogoče sem malo nejasno napisal:
Program uporabnika vpraša katera števila hoče zamenjati. Nato uporabnik izbere indexe števil (od 0 do 5). Se pravi da cin ne pride v poštev ker nevem koliko števil si bo uporabnik izbral za zamenjat. Nekdo bo zbral 3 števila nekdo 2 spet tretji bo zamenjal vseh 5...
Wrop to s poljem mi ni povsem jasno. Postavim elemente na 0. Kako pa bi potem shranil izbirane indexe iz menija?
Zgledlo naj bi nekako takole :
1. Zamenjaj 1 stevilo
2. ZAmenjaj 2 stevilo
3. ...
4. ...
5. ...
0. ne zamenjaj stevila
6. Končaj izbiro
Mogoče sem malo nejasno napisal:
Program uporabnika vpraša katera števila hoče zamenjati. Nato uporabnik izbere indexe števil (od 0 do 5). Se pravi da cin ne pride v poštev ker nevem koliko števil si bo uporabnik izbral za zamenjat. Nekdo bo zbral 3 števila nekdo 2 spet tretji bo zamenjal vseh 5...
Wrop to s poljem mi ni povsem jasno. Postavim elemente na 0. Kako pa bi potem shranil izbirane indexe iz menija?
Zgledlo naj bi nekako takole :
1. Zamenjaj 1 stevilo
2. ZAmenjaj 2 stevilo
3. ...
4. ...
5. ...
0. ne zamenjaj stevila
6. Končaj izbiro
Zgodovina sprememb…
- spremenil: roba87 ()
Wrop ::
Če sem te prav razumel:
Zdaj če hočes, da lahko posamezno polje zamenjaš največ 2x, potem moraš imeti še polje števcov, ki ti štejejo, kolikokrat si zamenjal pozamezen element v polju. kjer so generirana števila.
npr. tako:
polje[5]; generiraj elemente in jih shrani v polje[] končaj = false; while(končaj==false) { cout<<"Katero polje hočeš zamenjati, za izhod pritisni >=5" cin>>izbira; if((izbira < 5) && (izbira >= 0)) polje[izbira] = rand()% 5+1; else koncaj=true; }
Zdaj če hočes, da lahko posamezno polje zamenjaš največ 2x, potem moraš imeti še polje števcov, ki ti štejejo, kolikokrat si zamenjal pozamezen element v polju. kjer so generirana števila.
npr. tako:
polje[5]; poljest[5]; generiraj elemente in jih shrani v polje[] končaj = false; while(končaj==false) { cout<<"Katero polje hočeš zamenjati, za izhod pritisni >=5" cin>>izbira; if((izbira < 5) && (izbira >= 0) && poljest[izbira] < 2) { polje[izbira] = rand()% 5+1; poljest[izbira]++; } else cout<<"izbira je napačna oz. že 2x zamenjana" if (izbira > 5) koncaj=true; }
roba87 ::
Ja. Samo mi je malo zaštekalo na tej točki. Mi je Wrop pomagal in zdaj končujem. Tnx Wrop.
xyd1 ::
ahhh feri,... :) če bi rekel da delaš poker bi ti postal celotni program, čeprav bi nato špukali po meni da podpiram lenobo (ahh crap that's me).
roba87 ::
Zelo prijazno :), samo rad naredim sam kolko se da pa kolko razumem. Itak pa bom začel delat naslednjo nalogo "calculator", pa bom imel spet polno vprašanj :P.
Isotropic ::
kako pa dela tak kalkulator, kot vam dajejo naloge na fri?
v stilu izracunaj.exe 2*3+2
potem pa par if stavkov verjetno pa smo?
v stilu izracunaj.exe 2*3+2
potem pa par if stavkov verjetno pa smo?
krneki0001 ::
FERI, ne fri.
Naloga je taka, ja. Pač poleg osnovnih štirih funkcij še potenco in oklepaje. Narest to na 2 različna načina, ter napisat kompletno poročilo, primer uporabe, zahtevek,...
recimo prigram pa naj bi take zadeve računal: 15*(3+4/7)^2 - 6*(3-1)^4
Več dela je s papirologijo, kot pa s programiranjem (enako kot na šihtu).
Naloga je taka, ja. Pač poleg osnovnih štirih funkcij še potenco in oklepaje. Narest to na 2 različna načina, ter napisat kompletno poročilo, primer uporabe, zahtevek,...
recimo prigram pa naj bi take zadeve računal: 15*(3+4/7)^2 - 6*(3-1)^4
Več dela je s papirologijo, kot pa s programiranjem (enako kot na šihtu).
Zgodovina sprememb…
- spremenilo: krneki0001 ()
roba87 ::
Napiši funkcijo ali podatkovno strukturo, ki opravlja nalogo kalkulatorja. Vhod za kalkulator naj bo navaden aritmetični izraz osnovnošolske matematike (+, -, *, /, ^, ()) nad realnimi števili v tekstovni obliki, izhod pa rezultat tega računa.
Primer: "3.14+1.23" = 4.37, "1-2-3" = -4 ali "2*(1+2)" = 6, ... Funkcija/struktura naj na nek način tudi opiše in locira morebitno prvo napako v izrazu. Primer: "2 3", "2+*3", "2*(3+2)4", "2*(2+1", "1/0" ...
Evo to je besedilo, če koga zanima lahko reši. Jaz pa poročam, če mi kaj zašteka :)
Primer: "3.14+1.23" = 4.37, "1-2-3" = -4 ali "2*(1+2)" = 6, ... Funkcija/struktura naj na nek način tudi opiše in locira morebitno prvo napako v izrazu. Primer: "2 3", "2+*3", "2*(3+2)4", "2*(2+1", "1/0" ...
Evo to je besedilo, če koga zanima lahko reši. Jaz pa poročam, če mi kaj zašteka :)
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C++][Naloga] istoležni elementiOddelek: Programiranje | 1165 (920) | mallard |
» | programiranje krožek(pomoč)Oddelek: Pomoč in nasveti | 2767 (1755) | Marat |
» | [C++] vprašanja (strani: 1 2 3 4 5 6 7 8 9 )Oddelek: Programiranje | 27410 (11956) | aljazko1995 |
» | C# metodaOddelek: Programiranje | 1985 (1856) | davaman |
» | C++ pomočOddelek: Programiranje | 880 (810) | Tutankhamun |