myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Hilfe bei zwei Java-Aufgäbchen (Schleifen, Arrays)

Antwort
Themen-Optionen Ansicht
Ungelesen 04.01.13, 20:05   #1
mona_lisa
Eskapistin
 
Benutzerbild von mona_lisa
 
Registriert seit: Apr 2009
Beiträge: 2.756
Bedankt: 3.560
mona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punkte
Standard Hilfe bei zwei Java-Aufgäbchen (Schleifen, Arrays)

Hallo liebe Programmierer,

ich habe nun in der Weihnachtszeit einen ganzen Haufen Übungsaufgaben aus meinem Programmierkurs abgearbeitet. Alles mehr oder weniger simple Aufgaben rund um bedingte Anweisungen, Schleifen und Arrays.
Bei zweien fällt mir leider GAR NICHTS ein, wie die zu lösen sein könnten.
Daher frage ich euch mal kurzerhand um Rat.

Das erste Übel:
Zitat:
Schreiben Sie in der Klasse blubbs eine Methode blablabla(), welche in einer Schleife die Zahlen von 1 bis 10 durchläuft und danach wieder bis 1 rückwärts läuft.
Die Zahlen sollen, nebeneinander durch Komma getrennt ausgegeben werden.
Vermeiden Sie dabei den eventuell auftretenden Schönheitsfehler, dass hinter der letzten oder vor der ersten Zahl noch ein Komma steht.
Die Ausgabe sähe etwa so aus: 1, 2, 3, . . . , 10, 9, 8, . . . 2, 1
Bedingung: Es darf nur eine Schleife benutzt werden.
Meine Lösung, die jedoch zwei Schleifen enthält und die den "Schönheitsfehler" vielleicht auch nicht auf besonders elegante Weise vermeidet:
Code:
public void zahlenAusgabeV1()
    {
        for(int i = 1; i<=10; i++)
        {
            System.out.print(i + ", ");
            if(i==10)
            {
                for(int j = 9; j>1; j--)
                {
                    System.out.print(j + ", ");
                }
            }
        }
        System.out.print(1);
    }
Was schlagt ihr vor?


Und das andere Übel:
Zitat:
Erstellen Sie eine Methode blablabla(), welche alle im Array gespeicherten Zahlen mit einem Faktor multipliziert, der so gewählt wird, dass danach die Summe der Elemente den Wert 1 ergibt.
Da fällt mir rein gar nichts ein. Ich hab z.B. ein Array
double[] zahlen = {5, 9, 42, 666, 0};
Ich weiß vom mathematisch her gar nicht, wie das gehen soll
mona_lisa ist offline   Mit Zitat antworten
Ungelesen 04.01.13, 21:43   #2
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 308
Bedankt: 300
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

@uebel_1

PHP-Code:
    int x 1;
    
int iIncr = +1;
    
    while(
x>0)
    {            
        
System.out.print(x);            
        
        
+= iIncr;
        
        if (
x>0)            
            
System.out.print(", ");
        
        if (
x>9)
        {
//            x = 10;
              
iIncr = -1;
        }    
    } 
germgerm ist offline   Mit Zitat antworten
Ungelesen 04.01.13, 21:45   #3
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 308
Bedankt: 300
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

@uebel_2

Die erste Zahl x ungleich Null multipiziere mit 1/x. Alle anderen Zahlen multipliziere mit 0.
germgerm ist offline   Mit Zitat antworten
Ungelesen 04.01.13, 21:56   #4
spartan-b292
Echter Freak
 
Benutzerbild von spartan-b292
 
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.866
Bedankt: 1.700
spartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punkte
Standard

Vorher sollte man noch prüfen ob die 1. Zahl nicht 0 ist.
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
spartan-b292 ist offline   Mit Zitat antworten
Ungelesen 04.01.13, 22:02   #5
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 308
Bedankt: 300
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von spartan-b292 Beitrag anzeigen
Vorher sollte man noch prüfen ob die 1. Zahl nicht 0 ist.
Deswegen steht auch "die erste Zahl x ungleich Null" (Null=0).
germgerm ist offline   Mit Zitat antworten
Ungelesen 04.01.13, 22:05   #6
spartan-b292
Echter Freak
 
Benutzerbild von spartan-b292
 
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.866
Bedankt: 1.700
spartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punkte
Standard

Sorry. Das hab ich übersehn.
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
spartan-b292 ist offline   Mit Zitat antworten
Ungelesen 04.01.13, 22:08   #7
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 308
Bedankt: 300
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

@uebel_2.2

Du könntest auch jede Zahl xn ungleich Null mit

k = 1/(xn * zahlen.length)

multiplizieren.


EDIT: Funktioniert nur ohne Nullen bzw eigenes length ohne Nullen berechnen.
germgerm ist offline   Mit Zitat antworten
Ungelesen 04.01.13, 22:12   #8
mona_lisa
Eskapistin
 
Benutzerbild von mona_lisa
 
Registriert seit: Apr 2009
Beiträge: 2.756
Bedankt: 3.560
mona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punkte
Standard

Vielen Dank schonmal

@uebel_1
Warum schreibst du ein '+' bei 'int iIncr = +1'
Hat das eine Bedeutung? Also z.B. 'x+=1' heißt 'x=x+1' ...das ist mir klar. Aber x=+1 ???
Ich hab den Code jetzt nicht gestestet, bin ihn nur mal mit meinem Super-Hirn durchgegangen und was ich nicht verstehe:
die zweite if-Anweisung wird doch auf jeden Fall true beim ersten Durchlauf. Und da sagst du x ist 10.
Dann prüft er wieder die Bedingung in der Schleife, x=10 ist >0 = true und dann macht er doch System.out.print(10);
Das führt doch nicht zum erwünschten Ausgabe auf der Konsole

Was die zweite Aufgabe betrifft schaue ich morgen nochmal hier rein. Kann mich nicht mehr konzentrieren. Freitag abends programmieren macht niemandem Spaß^^
mona_lisa ist offline   Mit Zitat antworten
Ungelesen 04.01.13, 22:23   #9
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 308
Bedankt: 300
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von mona_lisa Beitrag anzeigen
Warum schreibst du ein '+' bei 'int iIncr = +1'
Hat das eine Bedeutung?
Das hat keine Bedeutung, soll nur den Gegensatz zu iIncr=-1 verdeutlichen.

Zitat:
die zweite if-Anweisung wird doch auf jeden Fall true. Und da sagst du x ist 10.
Dann prüft er wieder die Bedingung in der Schleife, 10 ist >0 = true und dann macht er doch System.out.print(10);
????
Das x=10 kannst du weglassen

Zitat:
Freitag abends programmieren macht niemandem Spaß^^
Wo du recht hast, hast du recht ...
germgerm ist offline   Mit Zitat antworten
Ungelesen 04.01.13, 23:10   #10
mona_lisa
Eskapistin
 
Benutzerbild von mona_lisa
 
Registriert seit: Apr 2009
Beiträge: 2.756
Bedankt: 3.560
mona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punkte
Standard

Das kann aber irgendwie immer noch nicht ganz korrekt funktionieren^^ (.... ODER?)
Ich gehe mal gedanklich durch:

x ist 1 und iIncr ist 1
Schleifenbedingung 1>0 ist erfüllt
Er druckt 1 aus
x=1 wird zu x=2
Er druckt ein Komma
iIncr=1 wird zu iIncr=-1
ENDE 1. Durchlauf

x ist 2 und iIncr ist -1
Schleifenbedingung 2>0 ist erfüllt
Er druckt 2
x=2 wird wieder zu x=1
Drucke Komma
iIncr=-1 bleibt iIncr=-1

Irgendwie geht das nicht ganz auf, oder?

Ist mir jedenfalls immer noch ein Rätsel, wie man das mit einer einzigen Schleife lösen soll
So, nun endgültig Schluss für heute >.<
mona_lisa ist offline   Mit Zitat antworten
Ungelesen 05.01.13, 09:50   #11
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 308
Bedankt: 300
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von mona_lisa Beitrag anzeigen
Das kann aber irgendwie immer noch nicht ganz korrekt funktionieren^^ (.... ODER?)
Aber sicher doch, wieso probierst du es nicht einfach aus?

Zitat:
Ist mir jedenfalls immer noch ein Rätsel, wie man das mit einer einzigen Schleife lösen soll
Debugger!
germgerm ist offline   Mit Zitat antworten
Ungelesen 05.01.13, 14:55   #12
ProgMaster
Banned
 
Registriert seit: Mar 2012
Beiträge: 337
Bedankt: 93
ProgMaster ist noch neu hier! | 0 Respekt Punkte
Standard

Probieren geht über studieren!
ProgMaster ist offline   Mit Zitat antworten
Ungelesen 06.01.13, 16:23   #13
mona_lisa
Eskapistin
 
Benutzerbild von mona_lisa
 
Registriert seit: Apr 2009
Beiträge: 2.756
Bedankt: 3.560
mona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punktemona_lisa leckt gerne myGully Deckel in der Kanalisation! | 16340117 Respekt Punkte
Standard

Ja, da habt ihr schon recht... bloß ich will es gerne üben, möglichst ohne Debugger sowas zu entwerfen und zu verstehen weil ich in der Klausur auch nur Stift und Papier zur Verfügung hab^^
Sollte einem bei solchen simplen Aufgaben ja eigentlich auch nicht gerade überfordern, vorausgesetzt man schaut GENAU hin... was ich nicht gemacht hab^^
Zitat:
if (x>9)
{
iIncr = -1;
Zitat:
Zitat von mona_lisa Beitrag anzeigen
x=1 wird zu x=2
iIncr=1 wird zu iIncr=-1 //...NEIN!
Danke nochmal germgerm

Das zweite Übel ist ja auch ganz einfach, hab da wohl zu kompliziert gedacht^^
Habs jetzt so gelöst:

...falls jemandem langweilig ist, kann er ja nochmal drüberschauen... lässt sich wahrscheinlich auch noch verschönern... bin aber zufrieden, es funktioniert jedenfalls
mona_lisa ist offline   Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 Uhr.


Sitemap

().