Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » java, c++ Programm läuft nicht (negative Potenzen) » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen java, c++ Programm läuft nicht (negative Potenzen)
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Grisu
unregistriert
java, c++ Programm läuft nicht (negative Potenzen) Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hi @all,

ich hab nen kleines Problem, das ich mir nicht erklären kann, es läuft wder in Java noch in C++.

Ich möchte die negativen Potenzen berechnen ohne Verwendung mathematischer Funktionen wie z.B. Math.pow in Java.

Ich schreibe einmal, wie ich es lösen wollte:

Java:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
public class Potenzen{
          public static float funktion(int b, int x){
                float p=1;
                float temp=1/b;
                x=x*(-1);
                for(i=1;i<=x;i++){
                        p=p*temp;
                }
            return p;
           }
         public static void main(String args[]){
                 system.out.println(funktion(2,-2));
         }
}



C++:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
#include<iostream>
using namespace std;

    float potenz(int,int);
   
    float potenz(int b,int x){
        float p=1;
        float t=1/b;
        x=x*(-1);
        for(int i=1;i<=x;i++){
                p=p*t;
                }
        return p;
        }
   int main(){  
       cout<<potenz(2,-2);
       return 0;
       }


Ich hab erwartet, dass mir 0,25 ausgegeben wird, ist aber nicht so, es wird ganz stumpf 0 ausgegeben, egal, welche Basis und welchen Exponenten ich wähle.

Warum?
21.11.2013 16:52
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

float temp = 1.0 / b;
sonst wird die Division mit int durchgeführt, da kommt 0 raus.

__________________
Syntax Highlighting fürs Board (Link)
21.11.2013 17:39 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Grisu
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Super, danke schön, ich werde gleich mal schauen, obs dann klappt.

Vielen Dank.
21.11.2013 17:58
Grisu
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Also in c++ klappt es, in Java sagt mir der compiler, dass er eine definition als double haben möchte und dass ihm float nicht ausreicht.

Meldung ist: possible loss of precision
found: double
required: float

Wo ist da das Problem?

Danke noch einmal.
21.11.2013 18:04
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe es jetzt nicht getestet, aber versuche mal:
temp = (float)1 / b;
edit: temp = 1.0f / b; sollte es auch tun

__________________
Syntax Highlighting fürs Board (Link)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 21.11.2013 18:06.

21.11.2013 18:05 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Grisu
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Super, hat geklapptz, Danke schön
21.11.2013 18:10
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » java, c++ Programm läuft nicht (negative Potenzen)