drbaron Skrevet 7. mars 2002 Del Skrevet 7. mars 2002 Har satt i gang med litt C++ programmering. Bruker en engelsk C++ bok som funka helt greit helt til jeg plutselig sto fast. Kan noen forklare hvordan int float og char funksjonen funker. Så vidt jeg skjønte så hadde det noe med at man legger noe i minnet til PC-en så man kan henvise til den og.no greier. Noen som kan forklare meg litt grunnleggende hvordan C++ (programmeringsprogrammer generelt) jobber med tanke pa minne samt en liten innføring i bits og byte. Legg gjerne med et koda eksempel på hvordan du ville brukt en int float og char funksjon........ Bra NORSK side på internet for newbies i c++ eller bra NORSKE kanaler pa irc for å få hjelp til grunnleggende C++ programmering? Eller har jeg sån halveis fått med meg hva er komplikator er, men setter gjerne pris på en ny forklaring på det og hva det her bibliotek greiene er for.no <iostream.h> f.eks.....jaujau THATS ALL.....hust at jeg er newbie på dette området så hvis du skulle finne på å poste noe så ta utgangspunkt i at jeg ikke veit noe... Lenke til kommentar
DrDoogie Skrevet 7. mars 2002 Del Skrevet 7. mars 2002 Jeg vet ikke hvor man skal begynne aa svare paa dette. Spoersmaalene du stiller er igrunnen saa elementaere at det er veldig lite som kan svares paa dem som du ikke kommer til aa finne i en hvilken som helst programmeringsbok. Kan ikke du lese litt og undersoeke selv, og saa heller poste noen konkrete spoersmaal av typen hvor det gaar fram at du har forstaatt nok grunnleggende programmering til aa ha forutsettnig for aa forstaa et evnt. svar? mvh DrDoogie Lenke til kommentar
The Jackal Skrevet 20. mars 2002 Del Skrevet 20. mars 2002 iostream.h er et såkalt bibliotek, på lik linje som f.eks math.h. Disse må du ha med i programmet ditt for å få tilgang til funksjoner, f.eks sqrt() (square root) ligger i math.h. Skriver du f.eks cout<<sqrt(4); vil du skrive 2 ut på skjermen. int,float og char definerer variabler. Det vil si at du setter av plass til en variabel i minnet. I tillegg har du også long og double. int og long er for heltall, og long kan deklarere et høyere heltall enn int. Float og double er for desimaltall, der double er det største. Char er for en bokstav, mens char[10] definerer en streng på 9 tegn, siste plassen blir satt til /0 (terminering av stringen). #include <iostream.h> #include <math.h> int main(){ int I=0; I=sqrt(4); cout<<I; return 0; } Dette programmet bør skrive ut 2 skjermen (lenge siden jeg drev med C++). Håper det var noe til hjelp....lykke til videre. Lenke til kommentar
The Jackal Skrevet 20. mars 2002 Del Skrevet 20. mars 2002 ....og forresten....en kompilator er et program som oversetter koden din til maskinkode, siden CPU'en din ikke forstår en dritt av cout, cin osv. Så spørsmålet blir egentlig, hvem kompilerte kompilatoren, og hvilket program skrev han kompilatoren i?? Lenke til kommentar
DrDoogie Skrevet 20. mars 2002 Del Skrevet 20. mars 2002 Quote: On 2002-03-20 01:07, The Jackal skrev:Så spørsmålet blir egentlig, hvem kompilerte kompilatoren, og hvilket program skrev han kompilatoren i?? En kompilator kan godt kompileres av er nedgradert versjon av seg selv, for saa aa kompilere seg selv. Get it? Lenke til kommentar
The Jackal Skrevet 20. mars 2002 Del Skrevet 20. mars 2002 Joa...men hvor fikk du den nedgraderte kompilatoren fra, den må jo også være skrevet i et program. Og åssen får du da kompilert programmet som denne kompilatoren er skrevet i?? Med andre ord, hvem kom først, høna eller egget?? :-D Lenke til kommentar
A_N_K Skrevet 20. mars 2002 Del Skrevet 20. mars 2002 Det totalt grunnleggende er vel maskinkode? Knapt forståelig for mennesker, men man skulle tro at den første assembleren ble skrevet direkte på denne formen. Lenke til kommentar
The Jackal Skrevet 20. mars 2002 Del Skrevet 20. mars 2002 Rent teoretisk, sånn jeg ser det, er at det aller første programmet måtte skrives i bits. Jeg vil vel si at han/hun som gjorde det, må ha hatt STORE fritidsproblemer. Lenke til kommentar
Gyro Skrevet 26. mars 2002 Del Skrevet 26. mars 2002 Kan dessverre ikke skjønne helt hva du mener med int, char og float funksjonene, men hvis du spesifiserer litt mere nøyaktig, så kan jeg sikkert gi deg svar. Når det gjelder minne så kan dette deles i to hovedgrener. Heap og stack. Skal ikke gå inn på hver av disse, men dersom du i en funksjon skriver int i = 0; Så vil datamaskinen dytte verdien 0 inne i minne et eller annet sted( i dette tilfelle, på toppen av stacken, som egentlig er i bunnen :smile: ). Siden en int kan holde ca 4.2 forskjellige verdier(VC++) så må den har 4 byte, så datamaskinen finner en ledig plass i minnet( 4 bytes øverst på stacken) og legger 0 inn i alle disse. variabelen i vil så få addresen til den første av disse bytene og kompilatoren selv vil holde orden på at disse fire hører sammen. for å se dette i praksis så skriv dene lille koden: #include <iostream> int main(int argc, char** argv) { int i = 0; std::cout << "Adressen til i: "<< &i <<std::endl; std::cout << "verdien til i: "<< i << std::endl; return 0; } Dersom du er interesert i å forstå hva som skjer i bakgrunnen av C++, så vil jeg anbefale deg å la det vente i noen måneder, lese masse og programmere masse, for så å plukke opp en bok om assembly language. Da vil du lettere forstå hva som skjer når du skriver int i;i = 0; eller int i(0); Lenke til kommentar
atomle Skrevet 11. april 2002 Del Skrevet 11. april 2002 Det er da virkelig ikke sååå lenge siden hullkortsystemer fantes da? Programmererne satt og lagde systemer ved å lage hull i kort som de så matet maskinen med. Norge var jo ganske langt fremme i utviklingen blant annet med maskinen "Nisse" (det er en eller annen forkortelse, men husker ikke for hva) Dessuten bør det nevnes at en kompilator bare oversetter til objektkode (må ikke forveksles med objekter i C''), mens en linker oversetter til maskinkode. Den første kompilatoren kompilatoren i C ble skrevet for PDP-7 (hvis jeg ikke husker helt feil) først i assembly og med en gang den var skrevet, skrev de en i C, som de brukte fra da av. C++ komplitatorer er stort sett skrevet i C. Lenke til kommentar
A_N_K Skrevet 17. april 2002 Del Skrevet 17. april 2002 Quote: On 2002-04-11 16:15, atomle skrev:Dessuten bør det nevnes at en kompilator bare oversetter til objektkode (må ikke forveksles med objekter i C''), mens en linker oversetter til maskinkode. Er det noen forskjell på objektkode og maskinkode utover at objektkode benytter logiske adresser? Lenke til kommentar
brsseb Skrevet 17. april 2002 Del Skrevet 17. april 2002 Heisan Søk på nettet og skaff deg noen linker til bra nybegynner-tutorials. Det er mange der ute som har skrevet gode artikler om både C & C++. Prøv bl.a: http://www.cpp-home.com http://www.programmersheaven.com Lenke til kommentar
rune420 Skrevet 29. april 2002 Del Skrevet 29. april 2002 Quote: On 2002-03-20 15:50, The Jackal skrev:Joa...men hvor fikk du den nedgraderte kompilatoren fra, den må jo også være skrevet i et program. Og åssen får du da kompilert programmet som denne kompilatoren er skrevet i??Med andre ord, hvem kom først, høna eller egget?? :-D Uansett må jo alle linkere bli skrevet slik at de lager maskinkode, så han/hun som lager linkeren må jo skrive en del maskinkode uansett. Lenke til kommentar
A_N_K Skrevet 29. april 2002 Del Skrevet 29. april 2002 Quote: On 2002-04-29 10:26, rune420 skrev: Quote: On 2002-03-20 15:50, The Jackal skrev: Joa...men hvor fikk du den nedgraderte kompilatoren fra, den må jo også være skrevet i et program. Og åssen får du da kompilert programmet som denne kompilatoren er skrevet i?? Med andre ord, hvem kom først, høna eller egget?? :-D Uansett må jo alle linkere bli skrevet slik at de lager maskinkode, så han/hun som lager linkeren må jo skrive en del maskinkode uansett. Sånn jeg har forstått tar linkeren hånd om adresser, mens kompilatoren gjør om til maskinkode. En objektfil inneholder fiks ferdig binærkode, men referanser til andre objektfiler er ikke tatt hånd om. Dette er opp til linkeren. Rett på meg hvis dette er helt feil... Lenke til kommentar
CaSh Skrevet 24. mai 2002 Del Skrevet 24. mai 2002 Quote: Den 2002-03-20 01:07, The Jackal skrev:....og forresten....en kompilator er et program som oversetter koden din til maskinkode, siden CPU'en din ikke forstår en dritt av cout, cin osv.Så spørsmålet blir egentlig, hvem kompilerte kompilatoren, og hvilket program skrev han kompilatoren i?? Det er jo lett, den ble programmert i assembler. Lenke til kommentar
CaSh Skrevet 24. mai 2002 Del Skrevet 24. mai 2002 For det første er det litt feil å si int, float, double, long funksjon. For dette er faktisk variabler og ikke funksjoner. (med unntak). Hvis du vil vite hvor på minnet en variabel er kan du skrive dette: #include <iostream> void main() { int *i = 46; cout << &i; //kun dette er egentlig nødvendig :razz: cout << *i; cout << &*i << *&i; cin.get(); } Lenke til kommentar
sjanten Skrevet 24. mai 2002 Del Skrevet 24. mai 2002 Quote: Den 2002-04-11 16:15, atomle skrev:Det er da virkelig ikke sååå lenge siden hullkortsystemer fantes da?Programmererne satt og lagde systemer ved å lage hull i kort som de så matet maskinen med. Norge var jo ganske langt fremme i utviklingen blant annet med maskinen "Nisse" (det er en eller annen forkortelse, men husker ikke for hva)Dessuten bør det nevnes at en kompilator bare oversetter til objektkode (må ikke forveksles med objekter i C''), mens en linker oversetter til maskinkode.Den første kompilatoren kompilatoren i C ble skrevet for PDP-7 (hvis jeg ikke husker helt feil) først i assembly og med en gang den var skrevet, skrev de en i C, som de brukte fra da av. C++ komplitatorer er stort sett skrevet i C. het ikke den maskinen "Nusse"? eller var det en arvtager eller noe i den stilen? hva gjør "std" igjen? :?: (som i ......std::endl; ) Lenke til kommentar
DrDoogie Skrevet 24. mai 2002 Del Skrevet 24. mai 2002 Refererer til pakken std. En pakke garanterer at navnet er unikt inni pakka. Saann i tilfelle du hadde lyst til aa lage din egen endl-sak. Lenke til kommentar
A_N_K Skrevet 24. mai 2002 Del Skrevet 24. mai 2002 Quote: Den 2002-05-24 12:10, CaSh skrev: Quote: Den 2002-03-20 01:07, The Jackal skrev: ....og forresten....en kompilator er et program som oversetter koden din til maskinkode, siden CPU'en din ikke forstår en dritt av cout, cin osv. Så spørsmålet blir egentlig, hvem kompilerte kompilatoren, og hvilket program skrev han kompilatoren i?? Det er jo lett, den ble programmert i assembler. Assembly blir også kompilert (og deretter linket...). 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å