java-forum.org - Java programmieren aus Leidenschaft
Java 6 Einstieg und professioneller Einsatz
Alter Preis: 34,90 EUR
Jetzt: 0,00 EUR

zzgl. Versandkosten

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Java - Programmierung > Java Basics - Anfänger-Themen

Java Basics - Anfänger-Themen Fragen ausschließlich zu Java-Grundlagen von Ein- und Umsteigern

Antwort     Ist dieses Thema erledigt?
Themen-Optionen Thema durchsuchen Ansicht
Alt 10.04.2012, 16:30   #1 (permalink)
Benutzer
int
 
Registriert seit: 09.04.2012
Fachbeiträge: 43
Abgegebene Danke: 18
Erhielt 0 Danke für 0 Beiträge
Standard Produkt berechnen

Speichere in den Variablen x und y eine untere und obere positive Zahl als grenze und in einer weiteren Variablen s die positive Schrittweite (jeweils double). Teste, dass 0<x<y und s>0 ist. Alle Zahlen sollen vom Typ double sein. Berechne das Produkt von allen Zahlen von x bis y mit der SChittweite s, also diser Formel
Produkt von r_i mit Produktindex i mit
r_i = x + i*s
solange r_i<=y,i\in{0,1,2..}

1Teil:
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    double x=2;
     double y=1;
     double s=6;
if(x>0) {
    if(x<y) {
        if (s>0) {
            System.out.print("True");
        }else {
            System.out.print("False");
         }
    }else {
        System.out.print("False");
     }
}else {
    System.out.print("False");
 }

2Teil ??
Dachte an eine do-while schleife
Aber versage da maßlos
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
int i = 1;
double r = x+i*s;
do{
r*r;
i++;
}while(r<=y)
Romolus ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 10.04.2012, 16:36   #2 (permalink)
Stammbenutzer
Megabyte
 
Benutzerbild von njans
 
Registriert seit: 01.06.2011
Fachbeiträge: 1.113
Abgegebene Danke: 5
Erhielt 218 Danke für 217 Beiträge
Java Code: Quelltext in neuem Fenster öffnen
1
r*r;

Willst du das nicht irgendwie speichern? Also r verändert sich da nicht ^^

Also du müsstest doch in der Schleife
Java Code: Quelltext in neuem Fenster öffnen
1
r = x+i*s;
wieder neu errechnen.
__________________
Vorwiegend hier um Anfängern Hilfestellung zu geben.
DANKE Button nutzen, wenn Beiträge geholfen haben.
JAVA-TAGs nutzen, damit Java Code auch richtig dargestellt wird.
Sourcecode bei BitBucket: njans
njans ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 10.04.2012, 16:40   #3 (permalink)
Benutzer
int
Themenstarter
 
Registriert seit: 09.04.2012
Fachbeiträge: 43
Abgegebene Danke: 18
Erhielt 0 Danke für 0 Beiträge
wenn ich r in der schleife definieren will, sagt der PC, dass hier keine Deklaration erfolgen darf
Romolus ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 10.04.2012, 16:43   #4 (permalink)
Stammbenutzer
Megabyte
 
Benutzerbild von njans
 
Registriert seit: 01.06.2011
Fachbeiträge: 1.113
Abgegebene Danke: 5
Erhielt 218 Danke für 217 Beiträge
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
int i = 1;
double r = x+i*s;
do
{
  r = x+i*s;
  i++;
}
while(r <= y)

Das sollte gehen
__________________
Vorwiegend hier um Anfängern Hilfestellung zu geben.
DANKE Button nutzen, wenn Beiträge geholfen haben.
JAVA-TAGs nutzen, damit Java Code auch richtig dargestellt wird.
Sourcecode bei BitBucket: njans
njans ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 10.04.2012, 16:54   #5 (permalink)
Benutzer
int
Themenstarter
 
Registriert seit: 09.04.2012
Fachbeiträge: 43
Abgegebene Danke: 18
Erhielt 0 Danke für 0 Beiträge
aber hier werden doch die r`s nicht miteinandermultipliziert?
Romolus ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 10.04.2012, 17:07   #6 (permalink)
Stammbenutzer
Megabyte
 
Benutzerbild von njans
 
Registriert seit: 01.06.2011
Fachbeiträge: 1.113
Abgegebene Danke: 5
Erhielt 218 Danke für 217 Beiträge
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
int i = 1;
double r = x+i*s;
do
{
  r = r * (x+i*s);
  i++;
}
while(r <= y)

So besser?^^
__________________
Vorwiegend hier um Anfängern Hilfestellung zu geben.
DANKE Button nutzen, wenn Beiträge geholfen haben.
JAVA-TAGs nutzen, damit Java Code auch richtig dargestellt wird.
Sourcecode bei BitBucket: njans
njans ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 10.04.2012, 17:18   #7 (permalink)
Benutzer
int
Themenstarter
 
Registriert seit: 09.04.2012
Fachbeiträge: 43
Abgegebene Danke: 18
Erhielt 0 Danke für 0 Beiträge
Wenn das richtige Ergebnis rauskommen würde.

Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
int i = 0;
double r = x+i*s;
do
{
System.out.print(r = r * (x+i*s));
  i++;
}
while(r <= y);

wenn
double x=2;
double y=9;
double s=3;

müsste es rechnen (2+0*2)*(2+1*3)*(2+2*3)
da 2+3*3 =10 ergiebt und 10>9
also 80 ausgeben
Romolus ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 10.04.2012, 17:25   #8 (permalink)
Stammbenutzer
Megabyte
 
Benutzerbild von njans
 
Registriert seit: 01.06.2011
Fachbeiträge: 1.113
Abgegebene Danke: 5
Erhielt 218 Danke für 217 Beiträge
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
int i = 0;
double r = 1;
do
{
  r = r * (x+i*s)
  i++;
  System.out.print(r);
}
while(r <= y);

So?
__________________
Vorwiegend hier um Anfängern Hilfestellung zu geben.
DANKE Button nutzen, wenn Beiträge geholfen haben.
JAVA-TAGs nutzen, damit Java Code auch richtig dargestellt wird.
Sourcecode bei BitBucket: njans
njans ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 10.04.2012, 17:29   #9 (permalink)
Benutzer
int
Themenstarter
 
Registriert seit: 09.04.2012
Fachbeiträge: 43
Abgegebene Danke: 18
Erhielt 0 Danke für 0 Beiträge
Mhm, mir spuck er da nur blödsinn aus.

Mhm
Romolus ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 10.04.2012, 17:35   #10 (permalink)
Stammbenutzer
Megabyte
 
Benutzerbild von njans
 
Registriert seit: 01.06.2011
Fachbeiträge: 1.113
Abgegebene Danke: 5
Erhielt 218 Danke für 217 Beiträge
nein tut er nicht. Nur du ließt da was falsch/gibst es falsch aus

Java Code: Quelltext in neuem Fenster öffnen
1
 System.out.println(r);
verwende mal das println (das hat einen Zeilenumbruch am Ende). Dann kommst du auch auf 2 und 10 als Ergebnis. Ist wohl leserlicher als 2.010.0
__________________
Vorwiegend hier um Anfängern Hilfestellung zu geben.
DANKE Button nutzen, wenn Beiträge geholfen haben.
JAVA-TAGs nutzen, damit Java Code auch richtig dargestellt wird.
Sourcecode bei BitBucket: njans
njans ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 10.04.2012, 17:45   #11 (permalink)
Benutzer
int
Themenstarter
 
Registriert seit: 09.04.2012
Fachbeiträge: 43
Abgegebene Danke: 18
Erhielt 0 Danke für 0 Beiträge
Aber wieso sollte er 2 und 10 ausgeben? Dass ist ja nicht die Lösung?
und wieso zwei werte?
Romolus ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 10.04.2012, 18:29   #12 (permalink)
Stammbenutzer
Megabyte
 
Benutzerbild von njans
 
Registriert seit: 01.06.2011
Fachbeiträge: 1.113
Abgegebene Danke: 5
Erhielt 218 Danke für 217 Beiträge
er gibt 2 und 10 aus, weil:
(2+0*2) = 2
(2+0*2)*(2+1*3) = 10

Und du musst doch wissen, was du als Lösung berechnen willst^^

Du willst also nur das jeweilige r_i abprüfen, dann probier es doch mal so.

Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
int i = 0;
double r = 1;
double product = 1;
do
{
  r = x+i*s;
  product= product* r;
  i++;
  System.out.print(r);
}
while(r <= y);
__________________
Vorwiegend hier um Anfängern Hilfestellung zu geben.
DANKE Button nutzen, wenn Beiträge geholfen haben.
JAVA-TAGs nutzen, damit Java Code auch richtig dargestellt wird.
Sourcecode bei BitBucket: njans

Geändert von njans (10.04.2012 um 18:35 Uhr)
njans ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 11.04.2012, 11:51   #13 (permalink)
Benutzer
int
Themenstarter
 
Registriert seit: 09.04.2012
Fachbeiträge: 43
Abgegebene Danke: 18
Erhielt 0 Danke für 0 Beiträge
Hallo
Ich habe gedacht(korrigiere mich wenn es nicht so ist) das das Programm das Produkt der Zahlen berechnen soll.
Weil jetzt gibt er aus:
2.0
5.0
8.0
11.0

Aber in der angabe steht, dass man das Produkt der Zahlen ausgegeben will (oder nicht?)
Romolus ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 11.04.2012, 11:58   #14 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von SlaterB
 
Registriert seit: 13.11.2005
Fachbeiträge: 31.675
Abgegebene Danke: 0
Erhielt 2.570 Danke für 2.531 Beiträge
dann gib doch die Variablen product aus,

es muss doch nicht jeder genau die Aufgabenstellung lesen und dann noch solche Details anpassen
__________________
Hansa wird Meister.
SlaterB ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 11.04.2012, 12:00   #15 (permalink)
Benutzer
int
Themenstarter
 
Registriert seit: 09.04.2012
Fachbeiträge: 43
Abgegebene Danke: 18
Erhielt 0 Danke für 0 Beiträge
Hallo
dann kommen aber alle produkte raus. Ich will aber nur das letzte Produkt
Romolus ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 11.04.2012, 12:05   #16 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von SlaterB
 
Registriert seit: 13.11.2005
Fachbeiträge: 31.675
Abgegebene Danke: 0
Erhielt 2.570 Danke für 2.531 Beiträge
tja, auch das erfordert noch eine Änderung, zu der du keinen einzigen eigenen Gedanken hast?

reicht Codeaufteilung wie vor der Schleife, in der Schleife, nach der Schleife usw. als Hinweis?
bitte bisschen konzentrieren und ein Mindestmaß an Programmierung doch auch selber versuchen
__________________
Hansa wird Meister.
SlaterB ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 11.04.2012, 13:38   #17 (permalink)
Benutzer
int
Themenstarter
 
Registriert seit: 09.04.2012
Fachbeiträge: 43
Abgegebene Danke: 18
Erhielt 0 Danke für 0 Beiträge
Hallo
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
   double x=2;
     double y=1;
     double s=6;
if(x>0) {
    if(x<y) {
        if (s>0) {
            System.out.print("True");
        }else {
            System.out.print("False");
         }
    }else {
        System.out.print("False");
     }
}else {
    System.out.print("False");
 }
  double r = x;
  double produkt = 1;
  for (int i = 0; r < y; i++) {
  r = x + i*s;
  produkt = produkt * r;
  System.out.println(produkt);
        }
2
10
80
880
Hier gibt er mir am schluss 880 raus, was eine zahl zu viel ist!
Romolus ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 11.04.2012, 13:48   #18 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von SlaterB
 
Registriert seit: 13.11.2005
Fachbeiträge: 31.675
Abgegebene Danke: 0
Erhielt 2.570 Danke für 2.531 Beiträge
mit den geposteten Werten, x=2 und y=1 wohl kaum

ansonsten ist deine Schleife eben nicht so gut wie andere,
du erhöhst r und verwendest r, bevor es durch den Schleifenkopf im nächsten Durchlauf geprüft wird,

du könntest das Erhöhen ans Ende der Schleife verschieben und mit einem besseren Startwert anfangen,
oder dich nach den anderen Schleifen richten,
da gehört schon etwas knobeln dazu
__________________
Hansa wird Meister.
SlaterB ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 11.04.2012, 13:50   #19 (permalink)
Stammbenutzer
Megabyte
 
Benutzerbild von njans
 
Registriert seit: 01.06.2011
Fachbeiträge: 1.113
Abgegebene Danke: 5
Erhielt 218 Danke für 217 Beiträge
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
double x = 2;
        double y = 1;
        double s = 6;
        
        // etwas gekürzt
        boolean matches = (x>0 && x<y && s>0);
        System.out.println(matches);
        
        double r = x; // Das müsste doch 0 sein, nich?!
        double produkt = 1;
        
        for (int i = 0; r < y; i++) // War das nicht <= ?
        {
            r = x + i * s;
            produkt = produkt * r;
            System.out.println(produkt);
        }
__________________
Vorwiegend hier um Anfängern Hilfestellung zu geben.
DANKE Button nutzen, wenn Beiträge geholfen haben.
JAVA-TAGs nutzen, damit Java Code auch richtig dargestellt wird.
Sourcecode bei BitBucket: njans
njans ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 11.04.2012, 13:53   #20 (permalink)
Benutzer
int
Themenstarter
 
Registriert seit: 09.04.2012
Fachbeiträge: 43
Abgegebene Danke: 18
Erhielt 0 Danke für 0 Beiträge
Muss in einer For schleife nicht Die erhöhung von i an dritter stelle stehen?
Weil die do-while schleife war auch nicht der richtige weg, da der Abbruch so zu spät erfolgt.

Es beginnt doch mit (x+0*s) und da wäre der r-wert x
880 wäre übrigens trotzdem dabei bei x=2, y=9,s=3

Geändert von Romolus (11.04.2012 um 13:56 Uhr)
Romolus ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort     Ist dieses Thema erledigt?

Stichworte
aufmultiplizieren , schleife

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Falsche Ausgabe ProSonixs Allgemeine Java-Themen 5 04.01.2012 13:47
Schnittpunkt von kanten berechnen F.S.WhiTeY Java Basics - Anfänger-Themen 3 08.06.2010 09:49
Matrix Matrix Produkt Neondream Java Basics - Anfänger-Themen 7 11.04.2010 12:26
interface Probleme nata Java Basics - Anfänger-Themen 10 07.02.2010 18:24
Geht so was? public void verkaufe (<X implements Produkt& TSH Java Basics - Anfänger-Themen 8 27.10.2008 21:08


Lesezeichen

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:56 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de