» »

[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.
  • 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;
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

Zgodovina sprememb…

  • spremenil: roba87 ()

Wrop ::

Če sem te prav razumel:

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;
}

krneki0001 ::

A delaš poker?

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.

krneki0001 ::

glede kalkulatorja brez problema vprašaš. Imam izdelanega in deluje tako kot mora.

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?

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).

Zgodovina sprememb…

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 :)

Isotropic ::

to je pa kar nekaj dela ane? bi lahko kdo prilimal kodo potem?


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C++][Naloga] istoležni elementi

Oddelek: Programiranje
141069 (824) mallard
»

programiranje krožek(pomoč)

Oddelek: Pomoč in nasveti
442596 (1584) Marat
»

[C++] vprašanja (strani: 1 2 3 4 5 6 7 8 9 )

Oddelek: Programiranje
44726448 (10994) aljazko1995
»

C# metoda

Oddelek: Programiranje
61775 (1646) davaman
»

C++ pomoč

Oddelek: Programiranje
5824 (754) Tutankhamun

Več podobnih tem