Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 29-08-2007, 19:46
ecobest
ecobest is offline
a

Laatst gewijzigd op 30-08-2007 om 06:18.
Met citaat reageren
Advertentie
Oud 30-08-2007, 03:36
ILUsion
Avatar van ILUsion
ILUsion is offline
Wat begrijp je er niet aan? Want dit is echt vrij simpele code.

Als je nog maar pas begonnen bent met programmeren, kan je misschien best gewoon de code al eens uitvoeren. Als je ziet wat er gebeurt, dan zie je de overeenkomstige stukken wel in de code.

Bij de praktische implementatie kan ik je dus niet helpen (ben zelf geen java-programmeur), maar met ervaring uit andere talen, zou ik het als volgt aanpakken:
  • string laten inlezen
  • die string verwerken, niet al te propere maar wel vrij robuuste manier:
    • eerst trimmen (eerste en laatste spaties verwijderen),
    • string omzetten naar uppercase,
    • string doorzoeken naar 'C', 'CELSIUS', 'F', 'FAHRENHEIT' en dat desgewenst opslaan (bv. bool isCelsius = TRUE ), als dat niet lukt ofwel een standaardwaarde gebruiken ofwel een foutmelding teruggeven
    • de gevonden string (bv 'CELSIUS') verwijderen uit de totale string, dit komt neer op alles daarvoor te kopiëren
    • voor de veiligheid nog een rtrim (rechts spaties verwijderen, als men bv. '15.3 celsius' ingegeven zou hebben)
    • de string laten omzetten naar een float, als dat niet lukt een foutmelding teruggeven en om nieuwe input vragen
  • gewoon de conversie uitvoeren afhankelijk van de waarde van isCelsius. En daarna het resultaat teruggeven.

Die string verwerken zal nog wel robuuster kunnen, maar lijkt me hier al moeilijk genoeg voor een beginner.

En nog een tip: code kan je op dit forum in [code]...[/code]-tags gooien ofwel (voor C, Java, PHP, vermits die syntaxis gelijkaardig is) ook in [php]...[/php]-tags plaatsen. Dat laatste zorgt voor een beetje opmaak (die voor Java en C niet perfect is) en dat maakt het al makkelijker lezen:
PHP-code:
// Ask the user which conversion to perform
System.out.print("\nPlease enter\tF for Fahrenheit to Celsius"
" conversion or\n\t\tC for Celsius to "
"Fahrenheit conversion: ");
conversion = (char)Console.in.readChar();
Console.in.readChar(); 
De enige echte andere tip die ik kan geven: pak een boek over Java vast of een degelijke tutorial, want dit vind ik toch echt basis-code, zonder al te veel trucjes, genoeg commentaar en gaande over een heel simpele bewerking. De basis van het programmeren in een taal, is al vertrouwd zijn met de syntaxis, en volgens mij heb je dat nog niet. Dat is geen probleem, al doende leert men, maar misschien begin je beter vanaf 0 via een tutorial/handleiding/boek om dan stapje per stapje op te bouwen in plaats van direct op een praktisch probleem te springen (dat is leuker, maar op de lange termijn ga je meer aan het eerste hebben).

En misschien nog een kleine tip om het af te leren: als je enkel Java leert om een eerste programmeertaal te leren (dus te leren programmeren in feite, want eenmaal je de denkwijze kent, is het vooral een kwestie van bij een nieuw taal de syntaxis te leren en dan kan je daar ook in werken), dan kies je misschien beter een andere taal die iets explicieter is dan Java. Mijn persoonlijke aanraders dan: Pascal (Borland Delphi, Lazarus) of Python (of Ruby, al heb ik daar minder ervaring mee). Die talen zijn makkelijker om als eerste taal aan te leren, eenmaal je daarin kan programmeren is de overstap naar een taal als Java/C/C++ veel minder groot.

Hieronder een stukje Modula-2 (variant van Pascal, die een beetje moeilijker/uitgebreider is) dat hetzelfde doet als het programma dat jij geeft. Modula-2 is trouwens een taal die amper gebruikt wordt, nog vooral in academische middens; hier op de VUB wordt het gegeven omdat C/C++/Java moeilijk zijn als eerste taal en je niet laten concentreren op probleemoplossend denken maar je in de weg zitten met syntaxis (wat geen probleem is voor ervaren programmeurs, maar voor beginners wel).

Code:
MODULE Temp;

FROM IO IMPORT WrStr, WrLn, WrFixFloat, RdFloat, RdChar, RdLn;

TYPE
  TScale = ( celsius, fahrenheit );

VAR
  input : FLOAT;
  inputscale : TScale;
  outputscale : TScale;
  output : FLOAT;
  ch : CHAR

BEGIN
  WrStr('Gelieve "C" of "c" in te drukken om een temperatuur van Celsius naar Fahrenheit om te zetten');  WrLn;
  WrStr('Gelieve "F" of "f" in te drukken om een temperatuur van Fahrenheit naar Celsius om te zetten');  WrLn;
  ch := RdChar();

  IF ch = 'f' OR ch = 'F'
    THEN
      inputscale := fahrenheit;
      outputscale := celsius;
    ELSE
      inputscale := celsius;
      outputscale := fahrenheit;
    END;
  RdLn; WrLn; WrLn;
  
  WrStr('Gelieve de temperatuur in te geven: '); WrLn;
  input := RdFloat();
  
  IF inputscale = fahrenheit
    THEN -- F naar C omzetten
      output := ((9.0/5.0) * input) + 32.0 ;
    ELSE -- C naar F omzetten
      output := (5.0/9.0) * (input - 32);
    END;

  WrLn;
  WrFloat(input,0)
  IF inputscale = fahrenheit
    THEN
      WrStr(' graden Fahrenheit');
    ELSE
      WrStr(' graden Celsius');
    END;
  WrStr(' komt overeen met ');
  WrFloat(output,0);
  IF outputscale = fahrenheit
    THEN
      WrStr(' graden Fahrenheit.');
    ELSE
      WrStr(' graden Celsius.');
    END;
  WrLn;  
END Temp.
Disclaimer: bovenstaande programma bevat wat punten die verbeterd kunnen worden, hoor, het is maar in de rapte geschreven (en ik heb de moeite niet genomen of het wel door een compiler geraakt). Maar het dient dan ook enkel als voorbeeld. Ook is het in een stijl tussen die van gewone Pascal en Modula-2 geschreven (wat stylistisch niet zou mogen, maar ik doe het toch).

Eventueel kan het ook helpen beide programma's naast elkaar te leggen, zo zie je misschien wel gelijkenissen die je helpen bij het begrijpen van die Java-code
__________________
vaknar staden långsamt och jag är full igen (Kent - Columbus)
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar


Alle tijden zijn GMT +1. Het is nu 23:48.