Multidesk.be » Forums » C en C++ » help me aub - getallenrijen lezen en berekenen*

  • Pagina
  • 1 van 1
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door sabrinasabrina op woensdag 21 november 2007 om 02:05:49.
sabrinasabrina heeft nog geen avatar toegevoegd
Multiviteit: 4
hallo ik ben sabrina en ik heb een probleem
ik zit met een programma...

Lees de volgende getallenrij in:
n x an an-1 ..... a1 a0
en berekent hieruit
y = anxn + an-1 xn-1 + .......+ a1x+ a0
maak gebruik van de methode van Horner. Deze methode houd in dat u bij
bijvoorbeeld n=3 gebruikt maakt van de volgende identiteiten
a3x3+a2x2+a1x+a0≡((a3x+a2)x+a1)x+a0
voor andere waarden van n gaat u op analoge wijze te werk.

ik kan niet eens beginnen laatstaan wat werkends uit halen...
ik denk dat er met rijen moet worden gewerkt...
wie kan mij helpen....plsss

Opmerking van de crew

Even je titel aangepast, alleen "help me aub" lijkt gelijk u verzuipt....
Mocht iedereen zo\\\'n titel plaatsen, raakt het eind zoek.

Wheeldigger
^ Reactie #1 geschreven door pietkeun op woensdag 21 november 2007 om 06:39:09.
pietkeun's avatar
Multiviteit: 1088

Randinformatie

lieve Sabrina, misschien wil iemand van de leden je huiswerk wel maken.
Ik ben zeker dat een vroege vogel je kan helpen.(h)

Opmerking van de crew

Helemaal offtopic
SMG
"Opvoeden is een nieuwe generatie proberen te vullen met de eigen vooroordelen."
^ Reactie #2 geschreven door SMG op woensdag 21 november 2007 om 08:35:09.
SMG's avatar
Multiviteit: 12000
Moderator
Wiskunde lijkt mij de opdracht al onduidelijk. Je moet als invoer volgende variabelen hebben:
n, x, an, an-1, ... , a1, a0
Waar stopt die an?

Wil je veel response hebben, stel ik voor dat je eens eentje zelf maakt (in Excel ofzo), Want ik denk niet dat het programmeren ervan moeilijk is, maar het verstaan van de opdracht iets anders is.
Moest dit een werk voor school zijn zal je ongetwijfeld wel een soort van bron of tekst meegekregen hebben die je verder moet helpen.
Als dat dan toch niet is, stel ik voor om te beginnen met Hello world in C of C# te programmeren ipv zulke formules :D
^ Reactie #3 geschreven door sabrinasabrina op woensdag 21 november 2007 om 11:27:48.
sabrinasabrina heeft nog geen avatar toegevoegd
Multiviteit: 4
hi ja sorry,
ik weet dat er weinig info is, maar dat is alles wat ik van het programma weet.
je moet twee variabelen inlezen, de x en de n. daarmee bereken je de a's. en vervolgens y door de a's op te tellen....
Sabrina
^ Reactie #4 geschreven door thekid op woensdag 21 november 2007 om 16:30:35.
thekid's avatar
Multiviteit: 5273
Moderator
Het is dus wel degelijk met volgend schema te werken, hť? Met deze uitleg kan ik je wel helpen :)

http://nl.wikipedia.org/wiki/Hornerschema
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #5 geschreven door NightCreature op woensdag 21 november 2007 om 19:56:33.
NightCreature's avatar
Multiviteit: 1196
MSc.
Dit is een erg makkelijk probleem het is slechts drie of vier functies. En ja ik vergeet hier ff heel makkelijk dat ik goed kan programmeren.
Een om de getallen in te lezen wat kan met
CODE
  1. int x; cin >> x;

Een om de horner methode te doen. Dit is gewoon een recursief algoritme, een functie die zich zelf aanroept.
Een om uitvoer te geven.

Dit is de opsplitsing in deelproblemen die je moet oplossen. Maar ik denk niet dat daar het probleem zit. Kun je een beetje programmeren of niet? Als je dat niet kan wordt het probleem een stuk ingewikkelder en ben je de verkeerde vraag aan het stellen.

Hier is een begin voor een C++ programma.
CODE
  1.  
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. void main()
  7. {
  8.  
  9.     char c;
  10.     cout << "druk op een alphanumerieke toest."
  11.     cin >> c;
  12. }
  13.  
Deze tekst werd het laatst bewerkt voor 15.9 % door NightCreature op woensdag 21 november 2007 om 20:03:24.
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
^ Reactie #6 geschreven door sabrinasabrina op vrijdag 23 november 2007 om 01:20:52.
sabrinasabrina heeft nog geen avatar toegevoegd
Multiviteit: 4
hi,
ik krijg al drie weken, een uur per week les. en nu deze opdracht.. ik kan wel wat programeren, maar dit niet...help mij aub....
Sabrina

Opmerking van de crew

Gast = sabrinasabrina
SMG
^ Reactie #7 geschreven door NightCreature op vrijdag 23 november 2007 om 01:38:35.
NightCreature's avatar
Multiviteit: 1196
MSc.
Ik ga niet je huiswerk maken, ook al kost me dat waarschijnlijk maar een half uur.
Het probleem dat je moet oplossen is niet zo heel erg moeilijk. Wat je moet kunnen is echter de regel van Horner toepassen, als je dat kan kun je deze regel ook uitschrijven in programma code. In mijn begin programma kun je zien hoe je naar de console schrijft en hoe je er van kan inlezen. http://www.cplusplus.com heeft erg goeie tutorials en reference materiaal.
In mijn vorige post kun je als je goed leest ook de structuur van je programma lezen. Ik zal je de prototypes geven van de drie procedures die je nodig hebt.
CODE
  1.  
  2. void input (int& n, int& x); //& zorgt ervoor dat de variabele die je in deze functie steedt een waarde krijgt nadat de functie klaar is
  3. int calcHorner(int n, int x);
  4. void output(int solution);
  5.  


Geef eens de code die je zelf al hebt, zodat we je kunnen helpen waar dit nodig is. Je moet toch zelf al een beetje hebben geprobeerd. Geef ons concreet aan waar het probleem zit dat je niet kan oplossen. Programmeren leer je alleen maar door het te doen.
Deze tekst werd het laatst bewerkt voor 5.86 % door NightCreature op vrijdag 23 november 2007 om 01:40:47.
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
^ Reactie #8 geschreven door thekid op vrijdag 23 november 2007 om 03:25:32.
thekid's avatar
Multiviteit: 5273
Moderator
Ik heb weer even zitten prutsen in C++, en NightCreature zal dan al dan niet wel mijn fouten uitwijzen tegen de semantiek van de taal (zo leer je ook bij).

Als je enige vragen hebt, stel ze gerust
en ik wist totaal niet meer wat Horner was, maar 'k heb verschillende online dingen bekeken en geprobeerd (oa deze van op wikipedia) en de uitkomst klopte toch :)

hornerKlasse: (hornerCalc.h)
CODE
  1.  
  2. //
  3. // File:   hornerCalc.h
  4. // Author: brecht
  5. //
  6. // Created on November 23, 2007, 1:04 AM
  7. //
  8. #include <stdlib.h>
  9. #include <iostream>
  10.  
  11. #ifndef _HORNERCALC_H
  12. #define _HORNERCALC_H
  13.  
  14. using namespace std;
  15.  
  16. class hornerCalculation
  17. {
  18.     protected:
  19.         int aantal;
  20.         int punt;
  21.         int *coefficients;
  22.  
  23.         int Power(int a, int b)
  24.         {
  25.             int ret = 1;
  26.             for (int x = 1; x <= b; x++)
  27.                 ret *= a;
  28.             return ret;
  29.         }
  30.  
  31.     public:
  32.  
  33.     hornerCalculation()
  34.     {
  35.         cout << "Horner berekenen:" << endl;
  36.         cout << "-----------------" << endl;
  37.         cout << "Aantal coŽfficienten: ";
  38.         cin >> aantal;
  39.         cout << "Punt berekenen: ";
  40.         cin >> punt;
  41.         coefficients = new int[aantal];
  42.         for (int x = 0; x < aantal; x++)
  43.         {
  44.             int coef = 0;
  45.             printf("CoefficiŽnt %d: ", (aantal - (x + 1) ));
  46.             cin >> coef;
  47.             coefficients[x] = coef;
  48.         }
  49.         printf("\n\nHet resultaat bedraagt: f(%d) = %d\n\n", punt, calculate());
  50.     }
  51.  
  52.     int calculate()
  53.     {
  54.         int sum = 0;
  55.         for (int x = 0; x < aantal; x++)
  56.         {
  57.             int res = coefficients[x] * Power(punt, aantal - (x + 1));
  58.             printf("\tA%d = (%dx%d^%d) = %d\n", aantal - (x + 1), coefficients[x], punt, aantal - (x + 1), res);
  59.             sum += res;
  60.         }
  61.         return sum;
  62.     }
  63. };
  64.  
  65.  
  66.  
  67. #endif  /* _HORNERCALC_H */
  68.  
  69.  


output
CODE
  1.  
  2. Horner berekenen:
  3. -----------------
  4. Aantal coŽfficienten: 5
  5. Punt berekenen: 5
  6. CoefficiŽnt 4: 5
  7. CoefficiŽnt 3: -4
  8. CoefficiŽnt 2: 3
  9. CoefficiŽnt 1: -2
  10. CoefficiŽnt 0: 1
  11.         A4 = (5x5^4) = 3125
  12.         A3 = (-4x5^3) = -500
  13.         A2 = (3x5^2) = 75
  14.         A1 = (-2x5^1) = -10
  15.         A0 = (1x5^0) = 1
  16.  
  17.  
  18. Het resultaat bedraagt: f(5) = 2691
  19.  
  20. [Press Enter to close window]
  21.  


en stel aub vragen als je iets niet snapt, dan heb je op zijn minst bijgeleert ;)
ohja, misschien van belang, werkt perfect onder ubuntu 7.10, en is in netbeans 6beta2 geschreven

*edit*
ohja, wil je de volgende keer uw opdracht iets beter formuleren, ik verstond er geen sikkepit van eerst, heeft me toch wel even geduurd alvorens ik verstond wat er eigenlijk moest gebeuren (en Horner zit heel ver weg hoor, duurde ook weeral eventjes tegen dat ik dat doorhad :))
Deze tekst werd het laatst bewerkt voor 5.15 % door thekid op vrijdag 23 november 2007 om 03:31:29.
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #9 geschreven door NightCreature op vrijdag 23 november 2007 om 11:55:31.
NightCreature's avatar
Multiviteit: 1196
MSc.
The kid als eerste de ifndef en define guard moeten boven de includes staan, geen uitzondering dit is altijd zo, is niet echt een fout maar maakt wel uit voor de snelheid waarmee een project compiled.
Geen protected variabelen gebruiken altijd gewoon private maken tenzij je aan overerving doet en ze nodig hebt in de derived class.
coefficients = new int[aantal]; dit memory leaked als de tering, alles wat je newed moet je ook weer deleten, in dit geval moet dat in de destructor.
Ow nog iets als java coder weet ik dat het makkelijk is voor je om methods meteen te implementeren, in C++ is het echter de conventie om ze enkel in de header te declareren en ze dan in de cpp file te implementeren. Compilers vinden het namelijk niet leuk als je alles in de header doet. Je implementeerd een functie enkel in de header als deze inline moet zijn en dan zijn deze functies niet langer als 3 to 5 regels.
Ow en never ever use printf deze functie is type unsafe, gebruik stream operators zoals je cout gebuikt. cout >> 0.0; zal 0.0 op de console printen.
Deze tekst werd het laatst bewerkt voor 8 % door NightCreature op vrijdag 23 november 2007 om 12:08:12.
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
^ Reactie #10 geschreven door thekid op vrijdag 23 november 2007 om 12:52:29.
thekid's avatar
Multiviteit: 5273
Moderator
cool :)
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
  • Pagina
  • 1 van 1

Snel-antwoordformulier
Toon uitgebreid antwoordformulier Bericht nalezen Bericht plaatsen