Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Integer , case of und Komma?
panic220 - So 04.12.11 05:49
Titel: Integer , case of und Komma?
Ich muss in einer case of abfrage eine komma Zahl eingen pi umgenauer zu sein 3.1415 bla bla wie soll ich das machen ? er meldet mir immer wieder 2 verschiedene unkompatible datei typen an? gibt es ein Programmformat der Komma if und case of kann? oder ne andere möglichkeit werte auf & ab zu runden?
Moderiert von
Martok: Topic aus Sonstiges (Delphi) verschoben am So 04.12.2011 um 05:56Moderiert von
Martok: Beiträge zusammengefasstIntenger geht nicht....
Gausi - So 04.12.11 09:44
panic220 hat folgendes geschrieben : |
| Intenger geht nicht.... |
Probiers mal mit
Integer.
Den Rest habe ich nicht verstanden, bzw. habe keine Lust, darauf weiter zu antworten.
jaenicke - So 04.12.11 09:45
Geht es auch auf nochmal auf deutsch? Was du mit dem case of nun wirklich erreichen willst, kann ich aus deinem Post nicht herauslesen. Nur diese Frage, auch wenn ich da nicht verstehe was die mit case zu tun hat:
panic220 hat folgendes geschrieben : |
| oder ne andere möglichkeit werte auf & ab zu runden? |
Round / Ceil?
panic220 - So 04.12.11 16:49
Entschuldige mein gutes Deutsch um 5 Uhr Morgens ich saß an Delphi schon seit Gestern 22 Uhr, egal. Vieleicht habe ich micht nicht ganz verständlich ausgedrückt.
Das Problem liegt an Datei Typen, ich muss in einer case of-Abfrage mit Komma-Zahlen und Brüchen arbeiten in berechnungen.
[Fehler] Volumina.dpr(170): Inkompatible Typen: 'Integer' und 'Extended'
Kann ich mit verschiedenen Datei Typen arbeiten ?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182:
| program Volumina;
{$APPTYPE CONSOLE}
var auswahl1, auswahl2, ergebnis, wert1, wert2, wert3 :integer; CONST PI=3.1415;
begin writeln ('Das Programm berechnet das Volumen oder die Obeflaeche der nachfolgenden Koerper' ); writeln ('1> Zylinder '); writeln ('2> Wuerfel '); writeln ('3> Quader '); writeln ('4> Kugel '); write ('Zur Auswahl der Koerpers geben sie die jeweilige Ziffer ein! '); readln (auswahl1);
case (auswahl1) of
1: begin Writeln ('Sie haben sich fuer dem Zylinder entschieden'); writeln ('1> Oberflaeche '); writeln ('2> Volumen '); writeln ('Was moechten sie nun Ausrechnen? Geben Sie die jeweilige Ziffer ein!'); readln (auswahl2);
if auswahl2 = 1 then begin; writeln ('Sie haben sich fuer die Oberflaeche entschieden '); writeln ('Bitte geben sie die folgenden geometrichen lol Variablen an '); write ('Radius (r): '); readln (wert1); write ('Koerperhoehe (h): '); readln (wert2);
ergebnis := (wert1*wert1*PI)*(2*wert1*PI)*wert2; writeln ('Die Oberflaeche des Zylinders betraegt: ',ergebnis); end;
if auswahl2 = 2 then begin; writeln ('Sie haben sich fuer das Volumen entschieden '); writeln ('Bitte geben sie die folgenden geometrichen nicht so lol Variablen an '); write ('Radius (r): '); readln (wert1); write ('Koerperhoehe (h): '); readln (wert2);
ergebnis := (wert1*wert1*PI)*wert2; writeln ('Das Volumen des Zylinders betraegt: ',ergebnis); end;
end;
2: begin Writeln ('Sie haben sich fuer dem Wuerfel entschieden'); writeln ('1> Oberflaeche '); writeln ('2> Volumen '); writeln ('Was moechten sie nun Ausrechnen? Geben Sie die jeweilige Ziffer ein!'); readln (auswahl2);
if auswahl2 = 1 then begin; writeln ('Sie haben sich fuer die Oberflaeche entschieden '); writeln ('Bitte geben sie die folgenden geometrichen Variablen an '); write ('Geben sie die Seite (a) an : '); readln (wert1);
ergebnis := 6*(wert1*wert1); writeln ('Die Oberflaeche des Wuerfels betraegt: ',ergebnis); end;
if auswahl2 = 2 then begin; writeln ('Sie haben sich fuer das Volumen entschieden '); writeln ('Bitte geben sie die folgenden geometrichen Variablen an '); write ('Geben sie die Seite (a) an : '); readln (wert1);
ergebnis := wert1*wert1*wert1; writeln ('Das Volumen des Wuerfels betraegt: ',ergebnis); end;
end; 3: begin Writeln ('Sie haben sich fuer dem Quader entschieden'); writeln ('1> Oberflaeche '); writeln ('2> Volumen '); writeln ('Was moechten sie nun Ausrechnen? Geben Sie die jeweilige Ziffer ein!'); readln (auswahl2);
if auswahl2 = 1 then begin; writeln ('Sie haben sich fuer die Oberflaeche entschieden '); writeln ('Bitte geben sie die folgenden geometrichen Variablen an '); write ('Geben sie die Seite (a) an : '); readln (wert1); write ('Geben sie die Seite (b) an : '); readln (wert2); write ('Geben sie die Seite (c) an : '); readln (wert3);
ergebnis := (2*wert1*wert2)+(2*wert1*wert3)+(2*wert2*wert3); writeln ('Die Oberflaeche des Quaders betraegt: ',ergebnis); end;
if auswahl2 = 2 then begin; writeln ('Sie haben sich fuer das Volumen entschieden '); writeln ('Bitte geben sie die folgenden geometrichen Variablen an '); write ('Geben sie die Seite (a) an : '); readln (wert1); write ('Geben sie die Seite (b) an : '); readln (wert2); write ('Geben sie die Seite (c) an : '); readln (wert3);
ergebnis := wert1*wert2*wert3; writeln ('Das Volumen des Quaders betraegt: ',ergebnis); end;
end; 4: begin Writeln ('Sie haben sich fuer die Kugel entschieden'); writeln ('1> Oberflaeche '); writeln ('2> Volumen '); writeln ('Was moechten sie nun Ausrechnen? Geben Sie die jeweilige Ziffer ein!'); readln (auswahl2);
if auswahl2 = 1 then begin; writeln ('Sie haben sich fuer die Oberflaeche entschieden '); writeln ('Bitte geben sie die folgenden geometrichen Variablen an '); write ('Radius (r): '); readln (wert1);
ergebnis := 4*PI*(wert1*wert1); writeln ('Die Oberflaeche der Kugel betraegt: ',ergebnis); end;
if auswahl2 = 2 then begin; writeln ('Sie haben sich fuer das Volumen entschieden '); writeln ('Bitte geben sie die folgenden geometrichen Variablen an '); write ('Radius (r): '); readln (wert1);
ergebnis := ((2*wert1)*(2*wert1)*(2*wert1))/6;
writeln ('Das Volumen der Kugel betraegt: ',ergebnis); end;
end;
end;
readln; end. |
Hier etwas abgekurtzt nur auf Case 4 beschränkt
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59:
| program Vol;
{$APPTYPE CONSOLE}
var auswahl1, auswahl2, ergebnis, wert1, wert2, wert3, wert4 :integer; CONST PI=3.1415;
begin writeln ('Das Programm berechnet das Volumen oder die Obeflaeche der nachfolgenden Koerper' ); writeln ('1> Zylinder '); writeln ('2> Wuerfel '); writeln ('3> Quader '); writeln ('4> Kugel '); write ('Zur Auswahl der Koerpers geben sie die jeweilige Ziffer ein! '); readln (auswahl1); case (auswahl1) of 1: begin Writeln ('Sie haben sich fuer die Kugel entschieden'); writeln ('1> Oberflaeche '); writeln ('2> Volumen '); writeln ('Was moechten sie nun Ausrechnen? Geben Sie die jeweilige Ziffer ein!'); readln (auswahl2);
if auswahl2 = 1 then begin; writeln ('Sie haben sich fuer die Oberflaeche entschieden '); writeln ('Bitte geben sie die folgenden geometrichen Variablen an '); write ('Radius (r): '); readln (wert1);
ergebnis := 4*PI*(wert1*wert1); writeln ('Die Oberflaeche der Kugel betraegt: ',ergebnis); end;
if auswahl2 = 2 then begin; writeln ('Sie haben sich fuer das Volumen entschieden '); writeln ('Bitte geben sie die folgenden geometrichen Variablen an '); write ('Radius (r): '); readln (wert1);
ergebnis := ((2*wert1)*(2*wert1)*(2*wert1)/6);
writeln ('Das Volumen der Kugel betraegt: ',ergebnis); end;
end;
end; readln; end. |
jaenicke - So 04.12.11 16:52
Entweder nimmst du für das Ergebnis Single oder Double als Typ oder du rundest mit Round zuerst auf Integer. Denn wie du gemerkt hast, kannst du in einen Integerwert keine Kommazahl packen.
panic220 - So 04.12.11 18:16
Wie mach ich das mit Doble und Single? gibt es noch andere Formate die Kommastellen berechnen und Case of (Ordinaltypen oder so heißt das)?
jaenicke - So 04.12.11 18:32
panic220 hat folgendes geschrieben : |
| Wie mach ich das mit Doble und Single? |
Wie du Variablen deklarierst findest du hier:
http://www.delphi-treff.de/object-pascal/variablen-und-konstanten/
panic220 hat folgendes geschrieben : |
| gibt es noch andere Formate die Kommastellen berechnen und Case of (Ordinaltypen oder so heißt das)? |
Das case of hat doch mit dem Problem gar nichts zu tun.
panic220 - So 04.12.11 20:52
ICh kann formate wie Real garnicht Wehlen Formate die Kommas berechnen
newi10 - So 04.12.11 20:57
Hallo panic,
dein problem liegt darin, das deine variable ergebnis vom typ integer ist- das wird immer
zu einer fehlermeldung führen und zu einem abbruch
nimm deine ergebnis variable aus der obigen deklarations-zeile heraus und schreibe neu unter dieser Zeile
ergebnis:real;
wenn du jetzt im programm multiplizierst z.b mit pi , welches ja eine kommazahl ist -kann die variable jetzt das komma-ergebnis aufnehmen und verarbeiten-- wahrscheinlich bist du javascript oder vbscript gewöhnt hier passen sich
die variablen automatisch an - in pascal muss man leider vorher alles genau vordefinieren - ich hoffe ich konnte
dir etwas weiterhelfen
gruss newi10
panic220 - So 04.12.11 21:19
Danke an euch beide das Problem ist gelöst sowohl der letzte Beitrag auch als die Beitrege zu vor mit dem guten Links warhren sehr hilfreich :P
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!