Autor Beitrag
panic220
Hält's aus hier
Beiträge: 7

Win 7x64, OSX 10.6
Delphi 6
BeitragVerfasst: 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 user profile iconMartok: Topic aus Sonstiges (Delphi) verschoben am So 04.12.2011 um 05:56

Moderiert von user profile iconMartok: Beiträge zusammengefasst

Intenger geht nicht....


Zuletzt bearbeitet von panic220 am So 04.12.11 05:52, insgesamt 1-mal bearbeitet
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8553
Erhaltene Danke: 479

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: So 04.12.11 09:44 
user profile iconpanic220 hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19338
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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:
user profile iconpanic220 hat folgendes geschrieben Zum zitierten Posting springen:
oder ne andere möglichkeit werte auf & ab zu runden?
Round / Ceil?
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: So 04.12.11 09:58 

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
panic220 Threadstarter
Hält's aus hier
Beiträge: 7

Win 7x64, OSX 10.6
Delphi 6
BeitragVerfasst: 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 ?

ausblenden volle Höhe 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 := 4/3*PI*(wert1*wert1*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

ausblenden volle Höhe 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 := 4/3*PI*(wert1*wert1*wert1) nicht relevant...!;
                ergebnis := ((2*wert1)*(2*wert1)*(2*wert1)/6);

                writeln ('Das Volumen der Kugel betraegt: ',ergebnis);
                end;

        end;



end;
readln;
end.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19338
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 7

Win 7x64, OSX 10.6
Delphi 6
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19338
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 04.12.11 18:32 
user profile iconpanic220 hat folgendes geschrieben Zum zitierten Posting springen:
Wie mach ich das mit Doble und Single?
Wie du Variablen deklarierst findest du hier:
www.delphi-treff.de/...blen-und-konstanten/

user profile iconpanic220 hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
Hält's aus hier
Beiträge: 7

Win 7x64, OSX 10.6
Delphi 6
BeitragVerfasst: 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



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 7

Win 7x64, OSX 10.6
Delphi 6
BeitragVerfasst: 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