Eerste java programma met fucties

Status
Niet open voor verdere reacties.

leonard13

Nieuwe gebruiker
Lid geworden
28 okt 2013
Berichten
2
Beste

Ik heb net mijn eerste lessen van functies en subroutines gehad. Nu kreeg ik volgende opgave:

"Schrijf een programma om een tekst waarvan het aantal letters deelbaar is door 3 om te zetten naar hoofdletters,
als het aantal letters niet deelbaar is door 3 moet de tekst omgezet worden naar kleine letters."

Ik ben echt een leek en heb geen flauw idee hoe ik hieraan moet beginnen. Wrs is het eenvoudig om te doen daarom vraag ik
nu aan jullie de hulp om mij te helpen met dit programmatje

Met vriendelijke groeten

Leonard13
 
Het is natuurlijk niet de bedoeling dat wij code voor jou schrijven. Je zult er zelf een beetje tijd in moeten steken. Programmeren leer je alleen maar door te oefenen.

"Schrijf een programma om een tekst waarvan het aantal letters deelbaar is door 3 om te zetten naar hoofdletters,
als het aantal letters niet deelbaar is door 3 moet de tekst omgezet worden naar kleine letters."

Als je naar deze opgave kijkt valt je een paar dingen op:
- je moet de letters tellen
- is het aantal letters deelbaar door 3 dan moet je de letters omzetten naar hoofdletters
- anders naar kleine letters.

Je kan met deze informatie pseudo-code schrijven. Dit is in gewone instructies het verloop van een programma / algoritme uitschrijven.

//Tel alle letters in een string.
//Als aantal letters is deelbaar door 3
// zet letters om naar hoofdletters
//anders
zet letters om naar kleine letters.

Neem eens een kijkje naar de java api (String klasse): http://docs.oracle.com/javase/6/docs/api/java/lang/String.html. Deze klasse biedt de methodes die jij nodig hebt.

Code:
function String capitalsIfDividedByThree(String mijnText) {
    String mijnOmgezetteText = "";
    ....
    return mijnOmgezetteText; 
}
 
Bedankt voor je hulp!

Ik heb dit in elkaar weten te knutselen en het werkt. Alleen ben ik niet zeker of ik de functie juist heb toegepast?

Hieronder mijn code:
Code:
public class Oeffuncties1 {
	
	public static void main(String [] args){
		String tekst =  Invoer.leesString("Geef een tekstje in");
		String ntest = "";
		
		int lengte = tekst.length();
		
			if (lengte%3 == 0)
					ntest = tekst.toUpperCase();
				else
					ntest = tekst.toLowerCase();
				
					
					System.out.println(ntest);
	}	
}
 
Laatst bewerkt door een moderator:
Het idee van Object georienteerd programmeren is dat elke klasse en elke methode zijn eigen functie heeft (functie als in functioneel :)).

Daarom kan ik je aanraden om jouw functionaliteit in een methode te binden.

Code:
public class Oeffuncties1 {

   public static void main(String [] args){
       String tekst = Invoer.leesString("Geef een tekstje in");
       veranderTekstHoofdLettersModulusDrie(tekst); //ik wist even geen naam te bedenken.
   }

   public String veranderTekstHoofdLettersModulusDrie(String invoer) {
      if(invoer % 3 == 0) {
          return invoer.toUpperCase();
      } else {
          return invoer.toLowerCase();
      }
       //je kan dit ook schrijven als return (invoer % 3 ==0) ? invoer.toUpperCase() : invoer.toLowerCase();   //zoek op google naar ternary operator (kort if / else statement).
   }
}
 
Het verschil tussen een kleine letter en een hoofdletter is 1 bit:
a = 01100001 -> A = 01000001
b = 01100010 -> B = 01000010

Dus een oplossing zonder gebruik van een externe functie:

[cpp]
final char m = 0x20;

String result = "";
boolean toUpper = input.length() % 3 != 0;
for (char c : input.toCharArray()) {
result += (char)(toUpper ? (c | m) : (c & ~(c & m)));
}
[/cpp]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan