pascal programmieren / prozeduren bzw. funktionen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • pascal programmieren / prozeduren bzw. funktionen

    hi ich hab ein riesen probelem :? ich muss für meinen informaltikkurs die prozeduren bzw. functionen
    a)initialisieren
    b)einlesen
    c)ausgeben
    d)dez2bin
    e)kleiner als
    f)gleich
    g)plus
    ... schreiben nur leider hab ich davon nicht den hauch einer ahnung und am 9.11 muss ich den quellcode schon abgeben =(( bis jetz hab ich das allerdings fuktioniert das noch nicht so :


    Quellcode

    1. program zahlen;
    2. uses crt;
    3. const
    4. max = 31 ;
    5. type
    6. bitmuster =array[0..max] of boolean;
    7. var
    8. z:bitmuster;
    9. procedure initalisieren (var a : bitmuster);
    10. {
    11. }
    12. var
    13. i : integer;
    14. begin
    15. for i:= 0 to max do a[i] :=false;
    16. end;{ initialisieren }
    17. procedure ausgeben (a: bitmuster);
    18. var
    19. i,j:integer;
    20. begin
    21. j:=max;
    22. while a[j]=false do j :=j-1;
    23. for i:=j downto 0 do
    24. if a[i]=false then writeln ('o')
    25. else writeln('l');
    26. writeln
    27. end;
    28. function einlesen : bitmuster;
    29. {
    30. }
    31. var
    32. c : char;
    33. i : integer;
    34. a : bitmuster;
    35. begin
    36. initalisieren (a);
    37. i:=0;
    38. repeat
    39. c:=readkey;
    40. case c of
    41. 'l','L' :a[i] :=true;
    42. 'o','O' :a[i] :=false;
    43. else dec (i);
    44. end {case};
    45. write (c);
    46. inc(i);
    47. if i>max then break ;
    48. until c = #13;
    49. writeln;
    50. einlesen :=a;
    51. end; {einlesen}
    52. Function dez2bin (a:Integer) : bitmuster;
    53. VAR
    54. b:bitmuster;
    55. i:Integer;
    56. Begin
    57. initialisieren (b);
    58. i := 0;
    59. While a> 0 Do
    60. Begin
    61. If (a mod 2)=0
    62. Then b [i]:=False
    63. Else b [i]:= True;
    64. a:= a div 2;
    65. i:= i+1;
    66. End;
    67. dez2bin := b;
    68. End; { dez2bin }
    69. FUNCTION gleich (a,b : Bitmuster):Boolean;
    70. VAR
    71. i:INTEGER;
    72. w:Boolean;
    73. BEGIN
    74. i:=max;
    75. WHILE a[i] = b[i] DO DEC (i);
    76. IF i<0 THEN w:=TRUE
    77. ELSE w:=FALSE;
    78. gleich:=w;
    79. END;
    80. begin initialisieren (z);
    81. write('Bitte geben Sie Ihre Zahl ein:');
    82. read (d)
    83. z:=einlesen;
    84. ausgeben(z);
    85. end.
    Alles anzeigen


    kann mir jemand da weiter helfen ?

    mfg. doreen

    p.s. ist wirklich wichtig sonst weiß ich nicht wie es zensuren mäßig weiter gehen soll =(( und ich hoffe es ist nicht zu viel verlangt
  • Der folgende Code compiliert wenigstens in Borland Pascal 7:

    Quellcode

    1. program zahlen;
    2. uses crt;
    3. const max = 31 ;
    4. type bitmuster = array[0..max] of boolean;
    5. var z:bitmuster;
    6. procedure initialisieren (var a : bitmuster);
    7. var i : integer;
    8. begin
    9. for i:= 0 to max do a[i] :=false;
    10. end;{ initialisieren }
    11. procedure ausgeben (a: bitmuster);
    12. var i,j:integer;
    13. begin
    14. j:=max;
    15. while a[j]=false do
    16. j := j-1;
    17. for i:=j downto 0 do
    18. if a[i]=false then
    19. writeln ('o')
    20. else
    21. writeln('l');
    22. writeln
    23. end;
    24. procedure einlesen (var a : bitmuster);
    25. {
    26. }
    27. var c : char;
    28. i : integer;
    29. begin
    30. initialisieren (a);
    31. i:=0;
    32. repeat
    33. c:=readkey;
    34. case c of
    35. 'l','L' :a[i] :=true;
    36. 'o','O' :a[i] :=false;
    37. else dec (i);
    38. end {case};
    39. write (c);
    40. inc(i);
    41. if i>max then
    42. break;
    43. until c = #13;
    44. writeln;
    45. end; {einlesen}
    46. procedure dez2bin (a:Integer; var ret:bitmuster);
    47. VAR i:Integer;
    48. Begin
    49. initialisieren (ret);
    50. i := 0;
    51. While a> 0 Do
    52. Begin
    53. If (a mod 2)=0 Then
    54. ret [i]:= False
    55. Else
    56. ret [i]:= True;
    57. a:= a div 2;
    58. i:= i+1;
    59. End;
    60. End; { dez2bin }
    61. FUNCTION gleich (a,b : Bitmuster):Boolean;
    62. VAR i:INTEGER;
    63. w:Boolean;
    64. BEGIN
    65. i:=max;
    66. WHILE a[i] = b[i] DO
    67. DEC (i);
    68. IF i<0 THEN
    69. w:=TRUE
    70. ELSE
    71. w:=FALSE;
    72. gleich:=w;
    73. END;
    74. begin
    75. write('Bitte geben Sie Ihre Zahl ein:');
    76. einlesen (z);
    77. ausgeben (z);
    78. end.
    Alles anzeigen