Avatar billede geek Nybegynder
01. juni 2000 - 14:00 Der er 8 kommentarer og
3 løsninger

HASTER --- Hjælp med C++ til dos --- HASTER

Jeg skal til eksamen i morgen (1/7-2000) i programering (og det er jeg pisse glad for, men desværge forgår det i C++ til dos og jeg bruger normalt kun delphi)
nå man jeg har fået et ark hvor der står at jeg skal kunne forklarer nogen om :
Funktioner : overførsel af værdier/adresser
Pointere : Pegeadresse, Indhold
Assembler : Porte (Input, output),forbindelse mellem assembler og C-kode
PC-opbygning : Processor, RAM

Dette er de ting jeg ikke rigtigt kan hitte rede i jeg håber nogen af jer kan.
Med hensyn til processor og RAM er det selvfølgelig med henblik på programmering altså hvor mange registrer en processor indeholder OSV.
Avatar billede dadane Novice
01. juni 2000 - 14:32 #1
Jeg kan desværre ikke rigtigt hjælpe dig, men måske du (efter veloverstået eksamen) eller en anden kan fortælle mig hvordan man laver sp. som ikke giver de sædvanlige 15, 30 eller 60 point.

/DaDane
Avatar billede tigerdyr Nybegynder
01. juni 2000 - 16:53 #2
Jeg lærte selv at lege med pointere ud fra den hjælp jeg fik i dette spørgsmål:

http://www.eksperten.dk/spm.asp?id=8262
Avatar billede tigerdyr Nybegynder
01. juni 2000 - 16:56 #3
Men assembler kode har jeg aldrig leget med i C++.
Og jeg er ikke helt med på hvad du mangler i forbindelse med funktioner ?? (hvordan du kalder en funktion med en værdi som du kan arbejde med internt i funktionen ??)

og PC opbygningen, kan jeg helt sikkert heller ikke hjælpe med i forbindelse med C++

Desværre er ret middelmådigt svar :o((
Avatar billede erikjacobsen Ekspert
01. juni 2000 - 16:59 #4
Det lyder spændende geek. Har du nogle *konkrete* spørgsmål, kan vi sikkert hjælpe
dig. Ellers bliver det nok lidt svært....

Forskellige processorer indeholder forskellige antal registre, men næsten altid en
to-potens, f.eks. 0, 1, 2, 4, 8, 16, 32, 64. Moderne processorer indeholder typisk
mange. Et register er en stump meget hurtig hukommelse, meget hurtigere end
en lagercelle i RAM, bl.a. fordi registret sidder meget tættere på CPU-en. Størrelsen
af et register er også typisk en 2-potens, 16, 32, 64 bit.
Avatar billede erikjacobsen Ekspert
01. juni 2000 - 17:00 #5
Nå, ja, kender du forskel på overførsel af parametre til en funktion som værdi- og
som variabel-parameter?
Avatar billede dmk Nybegynder
02. juni 2000 - 09:33 #6
Hej Geek

Nu er det jo i dag du skal til eksamen, så jeg ved ikke om det allerede er for sent at hjælpe dig. Desværre har jeg først lige fået dit spørgsmål, for jeg tog mig den frihed at tage mit arbejde med hjem i går så jeg kunne se fodbold (hvilken fejl...), så jeg var ikke på min pind hele dagen.

Nå men jeg vil da også gerne henlede på det spørgsmål som tigerdyr henleder til: http://www.eksperten.dk/spm.asp?id=8262
eller:
http://www.eksperten.dk/spm.asp?id=9744

Der har jeg da vist forklaret en del omkring pointere.

Lige som erikjacobsen ville jeg også gerne have nogle mere konkrete spørgsmål at svare på. Hvad er det fx. omkring funktioner du gerne vil vide noget mere om? Men jeg prøver da:

Overførsel af værdier til en funktion kan foregå på to måder: By-value og by-reference. Når en værdi overføres by-value vil man få en kopi af værdien, og denne kopi kan man rode med, uden at originalen bliver berørt. By-reference betyder så selvfølgelig, at man får en reference til værdien, så den værdi man roder med i funktionen, er den samme som originalen derfra hvor man kaldte funktionen, så hvis man ændrer på indholdet af variablen i funktionen, vil ændringen også have fundet sed når man vender tilbage dertil hvor man kaldte funktionen fra. Se her:

void AddShiftedIntegers(int Value1, int Value2, int& Result)
{
  Value1<<=1;
  Value2<<=1;
  Result=Value1+Value2;
}

Her shifter jer de to værdier 1 bit til venstre (det samme som at gange med 2), og ligger derefter de to værdier sammen i Result. Alle tre variabler er blevet ændret på, men kun Result vil være ændret fra den kaldende funktion, da det kun er Result der er overført by-reference. De to andre værdier er kopier.

int main()
{
  int Val1=2;
  int Val2=3;
  int Result=0;
  AddShiftedIntegers(Val1, Val2, Result);
  // Val1 vil stadig være =2, Val2 vil stadig være =3, og Result vil være ændret til 10
}

Pointerne ved jeg ikke helt hvad jeg skal sige til, udover at du skal kigge på nummer 2 af de føromtalte spørgsmål. Hvis jeg skulle forklare det igen, vil det nok blive nogenlunde det samme en-gang-til :-)

Med hensyn til Assembler, så forstår jeg ikke hvad du mener. Forbindelse mellem assembler og C kode? I de fleste C++ compilere kan man lave assembler direkte:

int Add(int Val1, int Val2)
{
int Result;
asm
  {
    mov ax, val1
    add ax, val2
    mov Result, ax
  } // END asm block
  return Result;
}

Det var hvad jeg kunne gøre for dig. Hvis du har nogle flere, mere konkrete spørgsmål, så stil dem endelig.

Venligst,
DMK

Avatar billede geek Nybegynder
04. juni 2000 - 15:46 #7
Tusind tak for svarende, og undskyld at ?'ene ikke var så konkrete.
og dmk jeg nåede lige at få dit svar.

og dadane under de sædvanlige 15, 30 eller 60 point er der hos nogen en box hvor man selv kan skrive hvor mange point man vil give dog hvis ikke ved alle, en af mine venner kan også kun give 15, 30 eller 60 point.

hvis erikjacobsen laver et svar vil jeg dele pointene ud, og hvis han ikke gør går de til tigerdyr og DMK
Avatar billede erikjacobsen Ekspert
04. juni 2000 - 21:35 #8
pyha - jeg nåede det... ;-)
Avatar billede erikjacobsen Ekspert
04. juni 2000 - 21:36 #9
Det der med points: Du skal vist trykke på noget, der hedder avanceret. Beklager, jeg har ingen
spørgsmål ude, så jeg kan ikke lige prøve.

HVORDan gik det????
Avatar billede geek Nybegynder
07. juni 2000 - 22:33 #10
Ja jeg ved godt man skal trykke på en knap, men har læst til engelsk eksamen så har ikke været på nettet et godt stykke tid.
det kig ikke så godt som jeg havde håbet, jeg fik 9 men det er jeg skam også  tilfreds med.
Læren mente jeg skulle have forklaret mere om hvad et spil er og hvordan computeren er opbygget i stedet for at starte med at fortælle om programmering, (hvilke jeg mente var meget logisk, da faget hedder programmering)
Avatar billede erikjacobsen Ekspert
07. juni 2000 - 23:16 #11
Og "læren" ville nok være gladere for at blive kaldt "læreren" - nåh, du er ikke til eksamen mere...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester