/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
pointerfyldt c program til java
Fra : sc


Dato : 26-07-02 14:41

Hej!
Jeg sidder med et c program der benytter en del forskellige funktioner og
overfører variable som pointere mellem hinanden, da de variable der
overføres alle ændres.
Jeg er ved at skrive koden om til Java, og har kigget lidt på hvordan jeg
bedst løser problemet med at jeg ikke kan overføre simple typer som
pointere.
1) De kan type wrappes med Float (det er float parametre det drejer sig om)
2) De kan gøres globale.
Jeg er ikke vild med nogen af metoderne; 1) er meget omstændig, da
overførsel foregår med Float der så skal konverteres til float, og når der
så er regnet færdig skal de konverteres tilbage til Float.
2) Er vel ikke god stil?

er der nogen der har en god løsning, hjeg kan forestille ig at andre har
siddet med samme problem.
På forhånd tak!
Søren



 
 
Ruben Hesselbæk (26-07-2002)
Kommentar
Fra : Ruben Hesselbæk


Dato : 26-07-02 15:15

Hejsa.
"sc" <none@nada.no> wrote in message news:ahrjat$oeg$1@news.net.uni-c.dk...
> Hej!
> Jeg sidder med et c program der benytter en del forskellige funktioner og
> overfører variable som pointere mellem hinanden, da de variable der
> overføres alle ændres.
> Jeg er ved at skrive koden om til Java, og har kigget lidt på hvordan jeg
> bedst løser problemet med at jeg ikke kan overføre simple typer som
> pointere.
> 1) De kan type wrappes med Float (det er float parametre det drejer sig
om)
> 2) De kan gøres globale.
> Jeg er ikke vild med nogen af metoderne; 1) er meget omstændig, da
> overførsel foregår med Float der så skal konverteres til float, og når der
> så er regnet færdig skal de konverteres tilbage til Float.
> 2) Er vel ikke god stil?
>
> er der nogen der har en god løsning, hjeg kan forestille ig at andre har
> siddet med samme problem.
> På forhånd tak!
> Søren
Her er et par forslag, om de kan bruges kan diskuteres

Hvis det kun er en float det drejer sig om kan du evt. sætte funktionen til
at returnere den nye float værdi, så koden bliver noget ala.
gammelfloat = funktion(gammelfloat);

Hvis det er det samme antal floats du giver med til de forskellige
funktioner kan du evt. lave et objekt som indeholder x antal floats, så
giver du bare objektet med i metoderne.
Floatsamligsobject floatobject= new Floatsamligsobject(float1, float2,
float3,,,,,);
function(floatobject);

En lille modifikation til at wrappe i funktionskaldet, er generelt slet ikke
at køre med float, men kun med wrapperobjekter i hele koden(ved ikke hvor
meget kode der er), så skal alle funktioner selvfølgelig laves om til at
modtage Floats istedet for float, men det er som sagt også kun et forslag.

Håber du har helt med dig

Ruben Hesselbæk




sc (26-07-2002)
Kommentar
Fra : sc


Dato : 26-07-02 18:19

Tak for ideerne Ruben!
Det er endt med at jeg wrapper alle floats i en hjemmelavet typewrapper.
Float class'en kan man nemlig ikke ændre float værdien i. Således indledes
funktionskald med at un-wrappe og de afsluttes med at wrappe igen, jeg tror
det er den letteste måde.
Mvh
søren



"Ruben Hesselbæk" <Mr.Chaos@area99.dk> wrote in message
news:3d415a17$0$10677$4d4eb98e@read.news.dk.uu.net...
> Hejsa.
> "sc" <none@nada.no> wrote in message
news:ahrjat$oeg$1@news.net.uni-c.dk...
> > Hej!
> > Jeg sidder med et c program der benytter en del forskellige funktioner
og
> > overfører variable som pointere mellem hinanden, da de variable der
> > overføres alle ændres.
> > Jeg er ved at skrive koden om til Java, og har kigget lidt på hvordan
jeg
> > bedst løser problemet med at jeg ikke kan overføre simple typer som
> > pointere.
> > 1) De kan type wrappes med Float (det er float parametre det drejer sig
> om)
> > 2) De kan gøres globale.
> > Jeg er ikke vild med nogen af metoderne; 1) er meget omstændig, da
> > overførsel foregår med Float der så skal konverteres til float, og når
der
> > så er regnet færdig skal de konverteres tilbage til Float.
> > 2) Er vel ikke god stil?
> >
> > er der nogen der har en god løsning, hjeg kan forestille ig at andre har
> > siddet med samme problem.
> > På forhånd tak!
> > Søren
> Her er et par forslag, om de kan bruges kan diskuteres
>
> Hvis det kun er en float det drejer sig om kan du evt. sætte funktionen
til
> at returnere den nye float værdi, så koden bliver noget ala.
> gammelfloat = funktion(gammelfloat);
>
> Hvis det er det samme antal floats du giver med til de forskellige
> funktioner kan du evt. lave et objekt som indeholder x antal floats, så
> giver du bare objektet med i metoderne.
> Floatsamligsobject floatobject= new Floatsamligsobject(float1, float2,
> float3,,,,,);
> function(floatobject);
>
> En lille modifikation til at wrappe i funktionskaldet, er generelt slet
ikke
> at køre med float, men kun med wrapperobjekter i hele koden(ved ikke hvor
> meget kode der er), så skal alle funktioner selvfølgelig laves om til at
> modtage Floats istedet for float, men det er som sagt også kun et forslag.
>
> Håber du har helt med dig
>
> Ruben Hesselbæk
>
>
>



Michael Berg (01-08-2002)
Kommentar
Fra : Michael Berg


Dato : 01-08-02 20:35


"sc" <none@nada.no> wrote in message news:ahs03v$8qm$1@news.net.uni-c.dk...
> Tak for ideerne Ruben!
> Det er endt med at jeg wrapper alle floats i en hjemmelavet typewrapper.
> Float class'en kan man nemlig ikke ændre float værdien i. Således indledes
> funktionskald med at un-wrappe og de afsluttes med at wrappe igen, jeg
tror
> det er den letteste måde.

Nu ved jeg ikke præcist hvad din float bruges til, men hvis det er mere end
blot at udføre en simpel beregningså lyder det næsten som om du kunne
begynde at bygge en mere gennemført klasse i stedet for en wrapper, og så
bygge den funktion du kalder ind i selve klassen.

Før:

public class Konverteret_C_Program {
public static void main(....) {
float saldo;
saldo = 4711.50;
beregnSaldo(saldo); // <- Ok her har du dit C pointer problem

Nu:

public class Konto {
private float saldo;
public void setSaldo(float nysaldo) .... osv
public float getSaldo() .... osv
public float beregnSaldo() {......}
}
public class Konverteret_C_Program {
public static void main(....) {
Konto k = new Konto();
k.beregnSaldo(); // Ingen brug for pointere

Ved ikke om det er noget i den stil du skal bruge men det er værd at
overveje.

Mvh
Michael



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408521
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste