| Autor |
Beitrag |
panic220
Hält's aus hier
Beiträge: 7
Win 7x64, OSX 10.6
Delphi 6
|
Verfasst: So 04.12.11 05:49
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....
Zuletzt bearbeitet von panic220 am So 04.12.11 05:52, insgesamt 1-mal bearbeitet
|
|
Gausi
      
Beiträge: 8553
Erhaltene Danke: 479
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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.
_________________ We are, we were and will not be.
|
|
jaenicke
      
Beiträge: 19338
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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?
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: So 04.12.11 09:58
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
panic220 
Hält's aus hier
Beiträge: 7
Win 7x64, OSX 10.6
Delphi 6
|
Verfasst: 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 ?
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
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
      
Beiträge: 19338
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
Hält's aus hier
Beiträge: 7
Win 7x64, OSX 10.6
Delphi 6
|
Verfasst: 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
      
Beiträge: 19338
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 04.12.11 18:32
|
|
panic220 
Hält's aus hier
Beiträge: 7
Win 7x64, OSX 10.6
Delphi 6
|
Verfasst: So 04.12.11 20:52
ICh kann formate wie Real garnicht Wehlen Formate die Kommas berechnen
|
|
newi10
Hält's aus hier
Beiträge: 12
Erhaltene Danke: 1
|
Verfasst: 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 
Hält's aus hier
Beiträge: 7
Win 7x64, OSX 10.6
Delphi 6
|
Verfasst: 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 
|
|