bjartesi Skrevet 26. mai 2007 Del Skrevet 26. mai 2007 Noen som kan forklare meg hva den førtse for-løkken egentlig gjør? Jeg skjønner jo at den førtse sørger for at innholdet i tabellen blir presentert på rett sted. På forhånd takk...eksamen venter! // utgift.cpp // // Et program som regner ut hvor store utgifter du har i // de ulike kategoriene // #include <iostream> using namespace std; const int antallKategorier = 10; void main() { double sum[antallKategorier]; double utgift; int kategori; int teller; for (teller = 0; teller < antallKategorier; teller++) { sum[teller] = 0.0; } cout << "Kategorinummer maa vere mellom 0 og "; cout << antallKategorier - 1 << endl; cout << "Negativt kategorinummer avslutter. " << endl; cout << "Angi kategorinummer og utgift: "; cin >> kategori; while (kategori > -1) { cin >> utgift; sum[kategori] += utgift; cout << "Neste kategori og utgift: "; cin >> kategori; } cout << endl << "Kategori Utgift" << endl; for (teller = 0; teller < antallKategorier; teller++) { cout << " " << teller << " " << sum[teller] << endl; } system("pause"); } // main Lenke til kommentar
Jaffe Skrevet 26. mai 2007 Del Skrevet 26. mai 2007 Den første for-løkka initialiserer elementene i sum-tabellen. Når tabellen opprettes har elementene en uviss verdi; de er uinitialiserte. for-løkka looper gjennom tabellen og setter alle elementene til 0.0. (Er ikke dette innlysende, egentlig?) Lenke til kommentar
bjartesi Skrevet 26. mai 2007 Forfatter Del Skrevet 26. mai 2007 Takker og bukker! Jo innlysende er det sikkert, men ikke nødvendigvis for en som ikke er så veldig stødig i C++ og som har fåt firkantede øyne etter å ha sittet ved PCen i hele dag. Ser jo nå at det er rimelig logisk det du sier. Lenke til kommentar
GeirGrusom Skrevet 26. mai 2007 Del Skrevet 26. mai 2007 for(int teller=0; teller < antallKategorier;sum[teller++] = 0); memset(sum, 0, antallKategorier << 3); Lenke til kommentar
bjartesi Skrevet 26. mai 2007 Forfatter Del Skrevet 26. mai 2007 for(int teller=0; teller < antallKategorier;sum[teller++] = 0); memset(sum, 0, antallKategorier << 3); 8707179[/snapback] Den var fin....hvorfor står det << 3 ? Lenke til kommentar
☀ ❄ Skrevet 26. mai 2007 Del Skrevet 26. mai 2007 << ("left shift") gjør at du flytter hver enkelt bit ett hak mot venstre. Dvs. at hvis du har tallet 2, som i binær er 10, og skifter det ett hakk mot venstre, får du 100 (010 -> 100, tallet flyttes mot venstre), som tilsvarer 4 i titallssystemet. Kort sagt betyr dette at for hvert venstre-skift dobles tallet. Tre venstre-skift vil dermed si å multiplisere tallet med 2^3. Fire venstre-skift tilsvarer å multiplisere med 2^4, osv. Capice? Lenke til kommentar
ZephyroX Skrevet 26. mai 2007 Del Skrevet 26. mai 2007 (endret) bare sånn ut av nysgjerrighet,.. er det ikke mulig å bruke bzero funksjonen til å nulle ut i stedet for løkken ? hvis du inkluderer string.h. bzero(sum, antallKategorier) Endret 26. mai 2007 av ZephyroX Lenke til kommentar
Jotun Skrevet 29. mai 2007 Del Skrevet 29. mai 2007 Eller slik: int antallElementer = 20 int tabell[antallElementer] {0} Lenke til kommentar
einaros Skrevet 29. mai 2007 Del Skrevet 29. mai 2007 bare sånn ut av nysgjerrighet,.. er det ikke mulig å bruke bzero funksjonen til å nulle ut i stedet for løkken ? hvis du inkluderer string.h. bzero(sum, antallKategorier) 8707757[/snapback] Enda kortere: double sum[antallKategorier] = {0}; Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå