Re: Funktionen Rückgabe Kategorie: Programmierung (von ChristianS - 5.04.2011 22:28) | ||
Als Antwort auf Re: Funktionen Rückgabe von Peter W. - 5.04.2011 22:24 | ||
| ||
Hi, nee, das ist ein int-Wert. Das muss auch anders gehen: Hier mal die Sasu-Funktion aus dem geo-Modul (ist der Parameter sasu[]) function SaSu(int Ja, int Mo, int Ta, float GBN, float GLO, int MEZ_MESZ, int sasu[]) // MEZ_MESZ: 0= nach aktueller Zeit (MEZ/MESZ), 1= Zeit nach MEZ, 2= Zeit nach MESZ // Rückgabe in sasu[]: Wert0: Sonnenaufgang, Wert1: Sonnenuntergang, in Minuten { if Ja<2000 return; // Berechnung erst ab 2000 float JD2000, JD, T, B, h, ZG, DeltaT, SAOZ, SUOZ, SAWZ, SUWZ; JD2000 = 2451545; JD = JulianDatum(Ja,Mo,Ta); T = (JD - JD2000)/36525; B = GBN*RAD; h = -50.0/60.0*RAD; // -50 Bogenminuten Horizonthöhe // wegen Lichtkrümmung der Sonne in Horizontnähe. ZG = BerechneZeitgleichung(T); DeltaT = 12*math.acos((math.sin(h) - math.sin(B)*math.sin(DK)) / (math.cos(B)*math.cos(DK)))/Pi; SAOZ = 12-DeltaT-ZG; // So-Aufgang Ortszeit SUOZ = 12+DeltaT-ZG; // So-Untergang Ortszeit SAWZ = SAOZ-GLO/15; // So-Aufgang Weltzeit SUWZ=SUOZ-GLO/15; // So-Untergang Weltzeit if (system.dst() and MEZ_MESZ==0)or MEZ_MESZ==2 // bei Sommerzeit +60 min. { sasu[0]=round(SAWZ*60)+120; // MESZ in Minuten sasu[1]=round(SUWZ*60)+120; // MESZ in Minuten } else { sasu[0]=round(SAWZ*60)+60; // MEZ in Minuten sasu[1]=round(SUWZ*60)+60; // MEZ in Minuten } return; } > Ist "zeit" ein String? das klappt, nur mit Werten geht das glaub ich nicht. > > In der function am Ende > return ontime einsetzen > und das "returns int" in "returns long" ändern. > > und dann beim Aufruf > NewTime=check.Status(1,1,30,2100,2200, time) > > > > > Hallo, > > ich habe eine Funktion und möchte einen berechneten Wert zurückgeben. Ich habe mir das an > > der geo.Sasu-Funktion abgucken wollen, klappt bei mir aber nicht. Hier die SaSu Funktion: > > > > int zeit[2] > > ... > > geo.SaSu(system.year(),system.month(),system.day(), > > breitengrad,laengengrad,0,zeit); > > ... > > > > In zeit werden dann die beiden berechneten Werte zurückgegeben. > > > > Nun meine Funktion: > > > > > > function Status(int Number,int Mode,long offset, > > long on,long off,long onTime) returns int > > { > > ..... > > ontime=5; > > } > > > > > > nun der Aufruf der Funktion aus dem Programm: > > > > > > long time; > > .... > > check.Status(1,1,30,2100,2200, time) > > > > hwcom.num(time); > > ... > > > > > > wo ist mein Gedankenfehler? > > > > Danke und Gru�, > > ChristianS | ||
Antwort schreiben Antworten: Re: Funktionen Rückgabe (von Peter W. - 5.04.2011 22:49) |