Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - KonsolenApp: Wahlstimmen in % ausgeben


chillli66 - Do 03.09.09 18:21
Titel: KonsolenApp: Wahlstimmen in % ausgeben
halli hallo hab ein problem komme net weiter-.-"
sind noch zimelich am anfang
hab keine idee wie ich das umsetzen soll bei der verarbeitung

2.Bei der Wahl des Klassensprechers stehen drei Kandidaten zur Wahl. Nach der Eingabe ihrer Namen (Deklariere dazu Variablen vom Datentyp String) und der erzielten Stimmenzahlen soll der Computer die Stimmanteile (in Prozent) ermitteln. Schreibe ein PASCAL-Programm zur Lösung dieser Aufgabe !

zurzeit siehts so aus-.-" ziemlich kacke:D
bitte helft mir:Ddanke:-*


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:
program klassensprecherwahl;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var a,b,c,sges :string;

begin

//Eingabe
write('================================================');
writeln('Anzahl der Stimmen für Angi:');
readln(a);
writeln('Anzahl der Stimmen für Schrödi:');
readln(b);
writeln('Anzahl der Stimmen für Chris:');
readln(c);

//Verarbeitung
sges:=a+b+c;
a:=100*
b:=100/sges/);
c:=100/sges/c;

//Ausgabe
writeln('Stimmen für Angi in %:',a,);

end.


Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
Moderiert von user profile iconNarses: Titel geändert, war: "Pascal - Wahlstimmen in % ausgeben".


Marc. - Do 03.09.09 18:35

Hey und :welcome: im Forum!
user profile iconchillli66 hat folgendes geschrieben Zum zitierten Posting springen:
Schreibe ein PASCAL-Programm zur Lösung dieser Aufgabe !

Grundsätzlich machen wir hier im Forum keine Hausaufgaben, helfen aber gerne, wenn der Fragesteller auch mitdenkt. ;)

Zu Deinem Problem: Die Anzahl der Stimmen sind als Zahlen (in diesem Fall Integer) und nicht als Zeichenketten (Strings) anzusehen.
Die Prozentzahl der Kandidaten erhälst Du aus dem Verhältnis von StimmanzahlX / Gesamtstimmanzahl. Da es sich hier um Prozent (Pro 100) handelt, musst Du selbstverständlich mit 100 multiplizieren.

Grüße,
Marc.


chillli66 - Do 03.09.09 18:38

joa nur das problem ist das in der aufgabe steht das ich es mit string machen soll...:(

joa aba würdest du mir pls sagen wie ich das in delphi schreibe also geteilt mit doppelpunkt oda slash?!


elundril - Do 03.09.09 18:41

also kommt drauf an. / ist allgemein eine division, div ist eine integerdivision.

Mit strings kann man aber nun mal nicht rechnen, da stings keine zahlen sind sondern zeichenketten. ;)

lg elundril


Marc. - Do 03.09.09 18:43

user profile iconchillli66 hat folgendes geschrieben Zum zitierten Posting springen:
joa nur das problem ist das in der aufgabe steht das ich es mit string machen soll...:(

Schau dir dies bezüglich mal die Funktion StrToInt respektive IntToStr an. ;)
user profile iconchillli66 hat folgendes geschrieben Zum zitierten Posting springen:
joa aba würdest du mir pls sagen wie ich das in delphi schreibe also geteilt mit doppelpunkt oda slash?!

Probieren geht über Studieren. :D Slash. ;)
Ich empfehle dir übrigens einen Blick in den Delphi-Crashkurs [http://www.christian-stelzmann.de/artikel/CrashkursReloaded/] von user profile iconChristian S. zu werfen, um das Defizit an Grundlagen auszugleichen. :P


chillli66 - Do 03.09.09 18:44

joa und nun krieg die fehlermeldung
[Error] klassensprecherwahl.dpr(28): Unterminated string
[Error] klassensprecherwahl.dpr(31): ',' or ')' expected but 'END' found

bei dem quelltext:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
var a,b,c,sges :integer;

begin

//Eingabe
writeln('================================================');
write('Anzahl der Stimmen fuer Angi:');
readln(a);
write('Anzahl der Stimmen fuer Schroedi:');
readln(b);
write('Anzahl der Stimmen fuer Chris:');
readln(c);

//Verarbeitung
sges:=a+b+c;

//Ausgabe
writeln('Stimmen insgesamt:',sges,');


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


Webo - Do 03.09.09 18:50

klar, in der letzten Zeile ist irgendwie was nicht ganz richtig ...

Delphi-Quelltext
1:
writeln('Stimmen insgesamt: ' + IntToStr( sges ) );                    

So könnte das aussehen, wenn du die Gesamtstimmenanzahl ausgeben möchtest.


Lannes - Do 03.09.09 18:51

Hallo,

user profile iconchillli66 hat folgendes geschrieben Zum zitierten Posting springen:
joa nur das problem ist das in der aufgabe steht das ich es mit string machen soll...
In Deiner Aufgabe steht das Du die Namen in Variablem vom Typ String anlegen sollst, zum Typ für die Zahlen ist dort keine Vorgabe gemacht worden. :wink:
Denke mal das es zur Aufgabe gehört sich über einen passenden Typ für die Eingabewerte und die Ergebnisse Gedanken zu machen.


chillli66 - Do 03.09.09 18:52

jo das kommt innen ausgabe teil oda verarbeitungs teil?!

ach ich hab kb dadruff der lehrer kann mich ma


Webo - Do 03.09.09 18:55

user profile iconchillli66 hat folgendes geschrieben Zum zitierten Posting springen:
jo das kommt innen ausgabe teil oda verarbeitungs teil?!

Was denn genau ?

user profile iconchillli66 hat folgendes geschrieben Zum zitierten Posting springen:
ach ich hab kb dadruff der lehrer kann mich ma

... keine gute Einstellung ! Und wenn du schon sagst, dass du keinen Bock drauf hast, dann sinkt doch die Motivation bei uns, dir noch irgendwie zu helfen, also, denke nach und streng dich an und du bekommst Hilfe !


turboPASCAL - Do 03.09.09 18:56


Delphi-Quelltext
1:
2:
//Ausgabe
writeln('Stimmen insgesamt:', sges' %');

Würde passen. ;)


@chillli66, plz schreib deutsch, un wenn du kb druff hast hab ich och ken. Bitte schreib deutsch.


chillli66 - Do 03.09.09 19:01

user profile iconturboPASCAL hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
2:
//Ausgabe
writeln('Stimmen insgesamt:', sges' %');

Würde passen. ;)


[Error] klassensprecherwahl.dpr(28 ): Missing operator or semicolon

das kommt da raus...:D

boah ne ich hasse es nur wennsch an etwas sitze und es net funzt scheis ungeduldigkeit ey:D

sieht ma nun so aus..


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:
var a,b,c:string;
    a1,b1,c1,sges:integer;

begin

//Eingabe
writeln('================================================');
write('Name des Kandidats 1:');
readln(a);
write('Name des Kandidats 2:');
readln(b);
write('Name des Kandidats 3:');
readln(c);
write ('Bitte geben sie die Stimmen für (a)ein'); // <- wieso schreibt der da net den namen von a1 sondern a1:D:D?!
readln(a1);
//Verarbeitung


//Ausgabe
writeln('Stimmen insgesamt:', sges, ' %');


end.


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Zitat-Tag verschoben.
Moderiert von user profile iconNarses: In den Code reineditierte Frage als Kommentar gekennzeichnet.


Marc. - Do 03.09.09 19:14

user profile iconchillli66 hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
write ('Bitte geben sie die Stimmen für (a)ein'); // <- wieso schreibt der da net den namen von a1 sondern a1:D:D?!                    

Warum sollte "er" auch dort den Inhalt der Variable "a" einfügen? Du kannst mehere Strings mit dem + - Operator verketten: StringA := StringB + 'Abcdf';
Sollte auch die letzte Error-Meldung entfernen. ;)


chillli66 - Do 03.09.09 19:23

lol kein plan wovon du labert
wir haben erst vor 3 stunden damit angefangen:D:D:D


Webo - Do 03.09.09 19:27

user profile iconchillli66 hat folgendes geschrieben Zum zitierten Posting springen:
lol kein plan wovon du labert

Irgendwie ist das nicht die höfliche Art ...


user profile iconchillli66 hat folgendes geschrieben Zum zitierten Posting springen:
wir haben erst vor 3 stunden damit angefangen:D:D:D

user profile iconMarc. hat folgendes geschrieben Zum zitierten Posting springen:
Ich empfehle dir übrigens einen Blick in den Delphi-Crashkurs [http://www.christian-stelzmann.de/artikel/CrashkursReloaded/] von user profile iconChristian S. zu werfen, um das Defizit an Grundlagen auszugleichen. :P

Das empfehle ich dir jetzt auch dringenst !


chillli66 - Do 03.09.09 19:56

hehe okay danke für eure hilfe

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

so klappts...

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:
program klassensprecherwahl;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var a,b,c:string;
    a1,b1,c1,sges:real;

begin

//Eingabe
writeln('================================================');
write('Name des Kandidats 1:');
readln(a);
write('Name des Kandidats 2:');
readln(b);
write('Name des Kandidats 3:');
readln(c);
write ('Gebe die Anzahl der Stimmen fuer ',(a),' ein:');
readln(a1);
write ('Gebe die Anzahl der Stimmen fuer ',(b),' ein:');
readln(b1);
write ('Gebe die Anzahl der Stimmen fuer ',(c),' ein:');
readln(c1);
//Verarbeitung
sges:=a1+b1+c1;
a1:=a1/sges*100;
b1:=b1/sges*100;
c1:=c1/sges*100;
//Ausgabe
writeln('Gesamtanzahl der Stimmen: ',sges:10:2,' Stimmen');
writeln('Prozenzwert der Stimme:',a1:10:2,'%');
writeln('Prozenzwert der Stimme:',b1:10:2,'%');
writeln('Prozenzwert der Stimme:',c1:10:2,'%');
readln;

end.


Delete - Do 03.09.09 19:59

Dann gib mal für alle 3 Stimmenanzahlen 0 ein ;)


chillli66 - Do 03.09.09 20:02

dann beendet er das prog:D:DXD

aba ansonsten klappts^^