code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
| //---------------------------------------------------------------------------
#include <vcl.h>
#include <math.h> //Wiskunde bestand inladen
#pragma hdrstop
#include "opdrach12_U.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BerekenClick(TObject *Sender)
//Pre:
//Post:
//Maker(s): Bas van Dijk & Egbert Polak Datum: 15-01-2004
{
//Declaraties:
float som, aantalgeg, geg; //Tel & rekenwaardes
int regel; //Aantal regels
int uit; //Uiteindelijke uitkomst
int g; //g controleerd of ingevoerde gelijk is aan -1 of niet
bool goed; //Foutcontrole
vali (invoer->Lines->Strings[0],g,goed);
if ((g > 0) && (goed))
{
som=0; //Register wordt op 0 gezet
uit=0; //Register wordt op 0 gezet
regel=0; //Register wordt op 0 gezet
geg=0; //Register wordt op 0 gezet
}
do
{
regel=regel+1;
vali(invoer->Lines->Strings[regel],g,goed);
if ((g < -1) || (!goed)) // controle of -1 is ingevoerd
{
ShowMessage(" U heeft op regel " + IntToStr(regel+1) + " geen geldige geheel getal ingevuld of -1");
goed=false;
}
}
while ((g != -1) && (goed));
if (goed)
{
for (regel=0; regel <invoer->Lines->Count ;
regel=regel+1) //Regelteller
{
aantalgeg = (invoer->Lines->Strings[regel]).ToDouble();
geg = sqrt(abs(aantalgeg)); //Wortel van de gegevens
som = som + geg; //Som van de wortel van de gegevens
}
uit = cos(som); //cos sinus van de som van de wortels
uitvoer->Text=FloatToStrF(uit,ffFixed,10,2); // uitkomst weergeven
}
}
//--------------------------------------------------------------------------- |
Dit is onze opdracht: Ontwerp en implementeer een applicatie waarmee in een object Memo een rij met positieve gehele getallen g1 t/m gn wordt ingevoerd. Het aantal gegevens n, n>=1, is onbekend, de rij gegevens wordt afgesloten met –1. Op basis van de gegevens g1 t/m gn, moet cosinus van de som van de wortels van deze gegevens bepaald en afgedrukt worden.
Nu ben ik al heel ver alleen ik krijg steeds deze foutmelding als ik op bereken knal: "sqrt: DOMAIN error" nu snap ik niet wat ik fout doe, ik kom er helemaal uit behalve dus op het einde om dat te berekenen, zit nu al 2 uur alles om te gooien maar beter wordt het niet, hebben misschien een idee waar het aan ligt?
Ik snap dus niet hoe ik de som van de wortels van de ingevoerde gegevens krijg, als ik dat heb is de cosinus nemen natuurlijk niet zo moeilijk maar dat eerste stuk lukt niet
Alvast bedankt!
[ Voor 6% gewijzigd door Drazzic op 16-01-2004 02:15 ]