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



BeitragVerfasst: So 28.12.08 12:42 
Hallo, ich habe über die Ferien eine schwierige Aufgabe aufbekommen, bzw. schwierig für mich.
In dieser Aufgabe soll man ein Korrekturschlüssel Programm programieren, ich habe auch damit schon angefangen, doch ich weiß einfach nicht mehr weiter.


Die Aufgabe ist: Es gibt zur Berechnung des Korrekturschlüssels eine Exel-Tabelle (siehe unten). Sie soll durch ein neu entwickelndes Pascal-Programm abgelöst werden.
Der Nutzer soll die maximal zu erreichenden Punktezhal eingeben und auf dem Bildschirm erscheinen die Punkte- Bereiche für die Noten 1 bis 6.
Das Programm soll wiederholt ausgeführt werden können.

Tabelle:

Maximale Bewertungspunkte eingeben: 100

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Note          Anteil in %             Punkte
           von unter     bis      von        bis
1              100       92       100        92
2              92        81        92        81
3              81        67        81        67
4              67        50        67        50
5              50        30        50        30
6              30         0        30         0




Das ist mein Ansatz:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
program Korrekturschluessel;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var max    :integer;

begin
    writeln('Korrekturschlüssel');
    writeln('******************');

    write('Maximale Bewertungspunkte eingeben:'); readln(max);

    writeln('     Note               Anteil in %              Punkte');
    writeln('                     von unter     bis         von      bis');



readln;
end.


Moderiert von user profile iconAXMD: Code- und Delphi-Tags hinzugefügt
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 28.12.08 12:51 
Wenn ich das richtig verstehe, handelt es sich um einfache Prozentrechnung. Du kannst Dir nun ein konstantes Array mit den Grenzen der Noten in Prozent erstellen und damit dann einfach umrechnen (Note 1 = 92 bis 100 %, d.h. bei maximal 50 Punkten sind das also 46 bis 50 Punkte). Der Rest ist formatierte Ausgabe.

[edit] Ich habe mir mal den Spaß gemacht und das Programm geschrieben. Soll das so sein wie im Anhang? [/edit]
Einloggen, um Attachments anzusehen!
Liesel Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: So 28.12.08 18:01 
wow...ja so soll das sein

wie hasten das gemacht? habe das dann noch mal versucht, doch irgendwie verstehe ich das nicht ganz da mir das ja sowieso sehr schwer fällt
freak4fun
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 604
Erhaltene Danke: 4

Win 7 Pro
VS 2013 Express, Delphi, C#, PHP, Java
BeitragVerfasst: So 28.12.08 18:11 
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Note          Anteil in %             Punkte
           von unter     bis      von        bis
1              100       92       100        92
2              92        81        92        81
3              81        67        81        67
4              67        50        67        50
5              50        30        50        30
6              30         0        30         0

Wobei ich sagen würde:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Note          Anteil in %             Punkte
           von unter     bis      von        bis
1              100       92       100        92
2              91        81        91        81
3              80        67        80        67
4              66        50        66        50
5              49        30        49        30
6              29         0        29         0

Denn was bekommt man sonst bei zB 92 Punkten, 1 oder 2? ;)

_________________
"Ich werde auf GAR KEINEN Fall…!" - "Keks?" - "Okay, ich tu's."
i++; // zaehler i um 1 erhoehen
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 28.12.08 18:15 
Ich habe mich nur an die Vorgabe gehalten ;)

[edit] Hier mal der Code mit Ausnahme des Hauptprogramms, das darfst Du selbst schreiben *g*:
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:
program Korrekturschluessel;

{$APPTYPE CONSOLE}

uses
  SysUtils, Windows;

//die vorgegebenen Prozentwerte inkl. der 0
const Grenzen: array[0..6of byte = (100,92,81,67,50,30,0);

var i, MaxPunkte, iErr: integer;
    Eingabe: string;
    valid, weiter: Boolean;

//die eigentliche Prozentrechnung
function Prozent(Index: byte): double;
begin
  Result := MaxPunkte / 100 * Grenzen[Index];
end;

//wandelt einen Ansi- in einen ASCII-String (Umlaute etc.)
function DOSString(const s: AnsiString): AnsiString;
begin
  SetLength(Result,Length(s));
  if not CharToOEM(PAnsiChar(s),PAnsiChar(Result)) then
    Result := s;
end;

//rundet die Variable d und füllt links bis zu iLen mit Leerzeichen auf
function FilledString(d: double; iLen: integer): AnsiString;
begin
  Result := Format('%.0f',[d]);
  while Length(Result) < iLen do
    Result := #32 + Result;
end;

begin
  //Hauptprogramm
end.
[/edit]
Liesel Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Sa 03.01.09 12:06 
Kann man das umwandeln von Ansi und Ascii auch weg lassen??
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 03.01.09 12:17 
Natürlich, aber dann sehen Umlaute etwas komisch aus, Du müsstest also z.B. "Korrekturschluessel" schreiben.
Liesel Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Sa 03.01.09 12:32 
Achso okay...weil einiges was du das geschrieben hast kann ich nicht verwenden das, das sagt mir nix und hatten das auch noch garnicht^^
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 03.01.09 14:54 
Dann schreib doch einfach mal, wo Du Verständnissschwierigkeiten hast.