Salt la conținut

SUBIECTE NOI
« 1 / 5 »
RSS
LakeSide 11 Straulesti

arii

Sapa peste pardoseala

Smart phone pentru auz deficitar
 Manager transport marfa. Pareri. ...

BIOS F.24 pentru HP Pavilion g7-2...

Meta Quest 3 512 gb

Father's Day
 Clipboard files copy/paste, filen...

Boardgame-uri despre cuvinte

Care-i treaba cu Reddit-ul? (nu m...

Diferente diferentiale
 Finala Eurovision 2024

De ce nu mai sunt proteste?

Etanșare intre cada perete b...

Back-up box Fronius ?
 

expresie indice

- - - - -
  • Vă rugăm să vă autentificați pentru a răspunde
4 răspunsuri în acest subiect

#1
CodexVinci

CodexVinci

    New Member

  • Grup: Junior Members
  • Mesaje: 15
  • Înscris: 27.05.2015
int f[10],n;

cin>>n;

while(n)
{

f[n%10]++;
n=n/10;
}

In partea asta de cod ma intereseaza in special instructiunea "f[n%10]++".

3 intrebari :
  • Practic,ce face aceasta instructiune?
  • De ce se foloseste o expresie ca indice si cum se incrementeaza?
  • Care este echivalentul instructiunii?
Daca se introduce n=324 ,atunci : f[4] = f[4]+1  ?

Tin sa precizez ca am mai gasit ceva asemanator ,un vector care are indice o expresie ,am cautat si tot nu am gasit ce inseamna sau face .


Multumesc anticipat .

#2
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Mesaje: 31.487
  • Înscris: 10.08.2005
Practic creste o valoare

De design

array[indice] += 1

#3
EnachescuAlin

EnachescuAlin

    Active Member

  • Grup: Members
  • Mesaje: 1.008
  • Înscris: 08.07.2013
La prima intrebare ti-ai raspuns singur. Si de ce sa nu folosesti o expresie ca indice? Daca vreau pot sa folosesc si rezultatul unei functii ca indice.
Si uite care ar putea fi echivalentul:
while (n)
{
	int indice = n % 10;
	f[indice]++;
	n = n / 10;
}



#4
VladBtz

VladBtz

    Active Member

  • Grup: Members
  • Mesaje: 1.702
  • Înscris: 24.09.2014
Instructiunea creste cu o unitate elementele vectorului ce au indicele egal cu cifrele numarului n .



Ce e asa de nemaivazut la acel indice?Poti sa intelenesti si vector[n++]  sau vector[min(a,b) ] unde min este o functie din algorithm. Sunt curios cum o sa reactionezi cand o sa vezi  while(f>>a[i]) , f fiind din contextul ifstream f( "fisier.txt")

Editat de VladBtz, 02 iulie 2015 - 23:12.


#5
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Mesaje: 27.268
  • Înscris: 10.08.2006
Se folosește o expresie deoarece nu știi la ce adresă de memorie relativă la f vrei să incrementezi valoarea, adresa aia o afli abia când rulează programul și primește input dinamic.

Se incrementează așa cum se incrementează orice: se încarcă o valoare din RAM într-un registru al CPU-ului, se execută o instrucțiune de incrementare asupra registrului, operație care e implementată în electronica din CPU, apoi se salvează valoarea din registru înapoi în RAM la adresa f + n % 10.

Adresa lui f a generat-o compilatorul la compilare, ea e codată în fișierul .exe și a fost virtualizată de sistemul de operare atunci când ai dat dublu click pe fișierul exe.

Întreabă ce nu înțelegi, ca să nu-ți explic ca prostul lucruri pe care poate le știi deja.

Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

Utilizatori activi: 1

0 membri, 1 vizitatori, 0 utilizatori anonimi

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate