Jaffe Skrevet 1. mai 2013 Del Skrevet 1. mai 2013 Ok, skal ikke snakke mot bedre vitende. Å kalle det hovedideen er kanskje bare ignoranse fra min side; jeg har ikke hatt noe spesielt forhold til OO og brukte det mest da jeg dreiv med C++, så min idé av OO har vært nettopp dette (data + metoder). Når det er sagt så vil jeg jo fortsatt påstå at klasser med metoder kan være et godt verktøy, om det så ikke er hovedideen i OO. Lenke til kommentar
Lycantrophe Skrevet 1. mai 2013 Del Skrevet 1. mai 2013 (endret) Don't feel bad, det er ofte sånn det undervises (og forstås). Men da misser man det virkelige konseptet bak, og det er synd. Metoder er en måte å implementere message passing på. Strukturerer du deg deretter er det et fabelaktig nyttig verktøy. Endret 1. mai 2013 av Lycantrophe Lenke til kommentar
Jaffe Skrevet 1. mai 2013 Del Skrevet 1. mai 2013 Jeg har forsåvidt vært innom message passing før, men da en veldig teoretisk implementasjon vha. closures i SICP (objektene var da funksjoner som tar inn en melding og returnerer en funksjon (en closure som har objektets variabler bundet til seg) som tilhører den meldingen). Har ikke tenkt på at det var så knyttet til metoder i andre spåk. F.eks. polymorfi er da egentlig 'bare' å sende samme melding til flere objekttyper (og virtuelle metoder er da en implementasjonsdetalj i C++ for å få det til å funke)? Lenke til kommentar
Lycantrophe Skrevet 1. mai 2013 Del Skrevet 1. mai 2013 Polymorfi er ikke bare det, men det er et eksempel på det. Og virtuelle metoder er, som du sier, bare en implementasjon. Du kan fint implementere message passing (som er mer arkitektur enn noe annet) uten. Lenke til kommentar
Svigermors drøm Skrevet 2. mai 2013 Del Skrevet 2. mai 2013 Finnes det er reset funksjon slik at når kalkulatoren er ferdig å regne, så får du mulighet om å avslutte eller starte på nytt? Lenke til kommentar
Gjest Gjest slettet-ld9eg7s96q Skrevet 2. mai 2013 Del Skrevet 2. mai 2013 Finnes det er reset funksjon slik at når kalkulatoren er ferdig å regne, så får du mulighet om å avslutte eller starte på nytt? Du må selv programmere inn logikken for dette. Bruk en løkke. bool kjoerprogram = true; while (kjoerprogram) { // Mens kjoerprogram = true // program } Innenfor denne while løkken plasserer du programmet ditt, så lenge kjoerprogram er true kjøres programmet, når du vil avslutte programmet setter du kjoerprogram til false. Lenke til kommentar
Lycantrophe Skrevet 2. mai 2013 Del Skrevet 2. mai 2013 (endret) Jeg synes faktisk det er bedre å bruke loop-and-a-half: while( true ) { /* calc */ if( cond ) break; /* more calc */ if( cond2 ) break; /* wrap up */ } Endret 2. mai 2013 av Lycantrophe Lenke til kommentar
GeirGrusom Skrevet 2. mai 2013 Del Skrevet 2. mai 2013 Jeg synes faktisk det er bedre å bruke loop-and-a-half: while( true ) { /* calc */ if( cond ) break; /* more calc */ if( cond2 ) break; /* wrap up */ } Da slipper du også en state-mutering, som nødvendigvis er en god ting. Vanskelig å skrive en god test for en while-løkke som avslutter når vilkårlig kode på innsiden føler for det. Lenke til kommentar
Lycantrophe Skrevet 2. mai 2013 Del Skrevet 2. mai 2013 Det er også betydelig lettere å følge flyten. Om man setter flagg og har kode under man i noen tilfeller ikke vil kjøre må man uansett bruke cond. jumps, enten gjennom ifs eller continue. Som er mer sølete. Early return! \o/ Lenke til kommentar
MagnusW Skrevet 14. mai 2013 Del Skrevet 14. mai 2013 (endret) Hei, Har nettopp begynt å lære meg C++, og leser boken "C++ Primer Plus" av Stephen Prata. Har lest litt forskjellig (negative) annmeldelser av den i etterkant av at jeg startet, men jeg synes for så vidt at det går ganske greit å følge med på de forskjellige temaene. I kveld (australsk tid) har jeg holdt på med en av oppgavene etter 3. kapittel. Det gis ingen løsning på oppgavene, så jeg tenkte jeg kunne få litt tilbakemeldinger her. Oppgaven er som følger: Write a short program that asks for your height in feet and inches and your weight in pounds. (Use three variables to store the information.) Have the program report your body mass index (BMI).To calculate the BMI, first convert your height in feet and inches to your height in inches (1 foot = 12 inches).Then convert your height in inches to your height in meters by multiplying by 0.0254.Then convert your weight in pounds into your mass in kilograms by dividing by 2.2. Finally, compute your BMI by dividing your mass in kilograms by the square of your height in meters. #include <iostream> using namespace std; int feet_to_inches (int); float inches_to_meters (float); float pounds_to_kilograms (float); float body_mi (float, float); int main () { cout << "Enter your height in feet: _\b"; int feet = 0; cin >> feet; cout << "and inches: __\b\b"; int init_inches = 0; cin >> init_inches; int inches = feet_to_inches(feet) + init_inches; float meters = inches_to_meters(inches); cout << "Enter your weight in pounds (lbs): ___\b\b\b"; int pounds = 0; cin >> pounds; double kilograms = pounds_to_kilograms(pounds); float bmi = body_mi(kilograms, meters); cout << "Your BMI is: " << bmi << endl; return 0; } int feet_to_inches (int x) { return x * 12; } float inches_to_meters (float y) { return y * 0.0254; } float pounds_to_kilograms (float z) { return z / 2.2; } float body_mi (float a, float b) { return a / (b * b); } Noen som har noen kommentarer? Programmet fungerer, men er det noen ting jeg har gjort som er fy-fy i C++ språket? Noen ting som kanskje kan eller bør gjøres på en annen måte? Endret 14. mai 2013 av MagnusW Lenke til kommentar
Nickless Skrevet 14. mai 2013 Del Skrevet 14. mai 2013 (endret) Bare noen raske tilbakemeldinger som jeg legger merke til (ikke noe galt i det du har gjort): 1. Deklarasjoner av variabelene du har opprettet ville jeg hatt øverst i main, syns det er mer ryddig og oversiktelig int main () { int feet = 0; int init_inches = 0; int inches = 0 float meters = 0.0f; cout << "Enter your height in feet: _\b"; cin >> feet; osv 2. Vet ikke om du bruker indentering i den oppringelige koden din? int feet_to_inches (int x) { return x * 12; } burde kanskje være int feet_to_inches (int x) { return (x * 12); } Det samme gjelder for det som står i main Endret 14. mai 2013 av Nickless 1 Lenke til kommentar
MagnusW Skrevet 14. mai 2013 Del Skrevet 14. mai 2013 Takk, Nickless. Ja, deklarasjoner øverst i main er kanskje mer ryddig. Skal ta det til etteretning. Indentering bruker jeg i Sublime Text, ja. Lenke til kommentar
Jaffe Skrevet 14. mai 2013 Del Skrevet 14. mai 2013 Det er generelt god praksis å deklarere variabler som bare brukes innenfor én funksjon i den funksjonen (da vil variabelen kun eksistere innenfor den funksjonen). 1 Lenke til kommentar
Lycantrophe Skrevet 14. mai 2013 Del Skrevet 14. mai 2013 Urk, oppgaver som sier "use x to implement". Lenke til kommentar
Svigermors drøm Skrevet 9. juni 2013 Del Skrevet 9. juni 2013 Har vert stopp for meg på en lang stund nå. Tenkte å starte litt igjen når eksamener og slik er ferdig. Vet dere om noe som kan være greit å starte med? Litt lei kalkulator nå. Hva lagde dere i begynnelsen? Hvor lærte dere å programmere? Lenke til kommentar
Jaffe Skrevet 10. juni 2013 Del Skrevet 10. juni 2013 Hva med et eller annet tekstbasert spill, tre på rad f.eks.? Lenke til kommentar
Svigermors drøm Skrevet 10. juni 2013 Del Skrevet 10. juni 2013 Tror ikke jeg har kommet langt nok til å lage et tekstbasert spill. Følger videoene til thenewboston, er det bra? Eller bør jeg skaffe meg en bok? Lenke til kommentar
Glutar Skrevet 10. juni 2013 Del Skrevet 10. juni 2013 (endret) Tror ikke jeg har kommet langt nok til å lage et tekstbasert spill. Følger videoene til thenewboston, er det bra? Eller bør jeg skaffe meg en bok? En god bok er aldri dumt. C++ Primer og Accelerated C++ skal være gode nybegynner bøker. Nyeste versjon av C++ Primer skal være oppdatert med C++11 standaren som jeg mener er obligatorisk hvis du skal lære C++ i dag. http://www.amazon.co...tackoverfl08-20 Endret 10. juni 2013 av Glutar Lenke til kommentar
Svigermors drøm Skrevet 30. juni 2013 Del Skrevet 30. juni 2013 (endret) Okai, da har jeg funnet ut hva jeg vil programmere Før jeg går videre i læringen, når og hvorfor bruker man int, VoID, Bool, Double osv ? Endret 30. juni 2013 av Svigermors drøm Lenke til kommentar
Dundas Skrevet 30. juni 2013 Del Skrevet 30. juni 2013 Okai, da har jeg funnet ut hva jeg vil programmere Før jeg går videre i læringen, når og hvorfor bruker man int, VoID, Bool, Double osv ? Når jeg leser spørsmålet ditt, så får jeg lyst til å slå meg i hodet med en hammer. Seriøst, få tak i en bok, bestill på nett, lån på biblioteket, whatever, og les om datatyper. Du kan ikke "gå videre i læringen" før du har en grunnleggende forståelse av dette. 3 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å