Gå til innhold

Skjønner ikke koden


Anbefalte innlegg

Hei

 

Jeg har nå hatt en liten pause fra C++ en stund, men det er ganske gøy når man får noe til. Så jeg tenkte av hvis noen finner det for godt kan de kanskje "oversette" litt kode til meg...

 

Ett karakterprogram av ett rart slag, tatt rett fra boka, Accelerated C++

#include <algorithm> // Hva brukes denne til?
#include <iomanip> // og denne?
#ifndef __GNUC__ // Denne da?
#include <ios> // denne?
#endif             // ?!?!
#include <iostream> // ah, denne kan jeg, input output stream
#include <string>  // lagring av text eller noe :p
#include <vector> // usikker?

using std::cin;             using std::sort;
using std::cout;            using std::streamsize;
using std::endl;            using std::string;
using std::setprecision;    using std::vector;

int main()
{
// ask for and read the student's name
cout << "Please enter your first name: "; // dette kan jeg forsåvidt
string name;
cin >> name;
cout << "Hello, " << name << "!" << endl;

// ask for and read the midterm and final grades
cout << "Please enter your midterm and final exam grades: ";
double midterm, final; // her lagres ting, som du skriver til programmet
cin >> midterm >> final; // her også?

// ask for and read the homework grades
cout << "Enter all your homework grades, "
        "followed by end-of-file: ";

vector<double> homework;
double x;
// invariant: `homework' contains all the homework grades read so far
while (cin >> x)
 homework.push_back(x); // push.back?

// check that the student entered some homework grades
#ifdef _MSC_VER            // ?
typedef std::vector<double>::size_type vec_sz; 
#else //hvorfor # foran, hvorfor ikke }else{ ?
typedef vector<double>::size_type vec_sz;
#endif
vec_sz size = homework.size(); // size er antall noe?
if (size == 0) {
 cout << endl << "You must enter your grades.  "
                 "Please try again." << endl;	
 return 1; // hvis 0 avsluttes programmet?
}

// sort the grades
sort(homework.begin(), homework.end()); //.end?

// compute the median homework grade
vec_sz mid = size/2; //????
double median; // resten skjønner jeg ikke mye av gitt
median = size % 2 == 0 ? (homework[mid] + homework[mid-1]) / 2
                       : homework[mid];

// compute and write the final grade
streamsize prec = cout.precision();
cout << "Your final grade is " << setprecision(3)
     << 0.2 * midterm + 0.4 * final + 0.4 * median
     << setprecision(prec) << endl;

return 0;
}

 

Setter stor pris på om noen kjeder seg en dag og tar for seg dette...

Kanskje de som ikke kan dette kan lære seg det? :p

Lenke til kommentar
Videoannonse
Annonse
Vel jeg ville nok ambefalle at du prøver deg på noe som er litt enklere. ;)

Men programmet sorter karakterene du har tastet inn for så å finne gjennomsnittet, men hvorfor skal du vite hvordan programmet funker??

skole opg ???

Jeg skal egentlig kunne det men boka forklarer litt dårlig :p Men jeg spurte ut Myubi så fikk jeg svar. Takk foresten ;)

Lenke til kommentar

mmmm

 

kan ikke du begynne ifra begynnelsen av boka, lese litt, gjøre litt enklere eksempler og oppgaver.

 

Så når du nærmer deg det litt mer avanserte så blir det enklere å forklare ting.

Endel av koden her kommer ifra Standard Template Library som er en samling funksjoner som er til meget god nytte. vector er f.eks en god arvtager for arrays for mange operasjoner. Men for å forstå slike ting så må du kunne klasser, pekere, linka lister sov og litt til .... daer det enklere å forstå de tingene.

 

c++ er gørr i starten, men når du har fyllt hodet med masse c++ teknikker, så åpnes plutselig en stor verden .... men du må først igjennom gørra

Lenke til kommentar
  • 3 uker senere...
når du til og med sliter med hva en 'cin' gjør, så tror jeg at jeg ville anbefalt deg å starte på side 1 igjen, gitt.

Jeg forstår da cin >>

Som sagt, hadde jeg tatt en liten pause fra C++-programmering...

Nå vet jeg stort sett alt av den koden. Hvor har du fått det fra at jeg ikke kan cin foresten?

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...