Wertzuweisung bei Arrays in Pascal

Von: , 12.03.2010 18:01 Uhr

Hi,
ich versuche in der Programmiersprache Pascal einem längernen Array verschieden Werte zu zuweisen.
Ein Beispiel was mir helfen würde, wenn mir jemand erklärt, wie ich bei einem
x=array[1..100]
für x= 1 bis 2 den Wert y(x)= x/2 (wobei x die Array Zahl des Arrays ist, in dem Fall 1 bzw 2)
und für x=3 bis 50 jewals y(x)=x/3
für x=51 bis 100 y(x)=y(x-20)/5


ich bitte um Lösung oder weitere Fragen, falls ich es unklar formuliert habe... verstehe nämlich die Verknüpfung von Werten in Abhängigkeit der Zahl des Arrays nicht ganz...

vielen dank schonmal

11 Antworten zu dieser Frage

  1. Antwort von nach 6 Stunden 0 hilfreich
    Re: Wertzuweisung bei Arrays in Pascal

    PROGRAM Demo;
    VAR
    Y : ARRAY[ 1 .. 100 ] OF REAL;
    X : INTEGER;
    BEGIN
    FOR X := 1 TO 2 DO Y[ X ] := X / 2;
    FOR X := 3 TO 50 DO Y[ X ] := X / 3;
    FOR X := 51 TO 100 DO Y[ X ] := Y[ X - 20 ] / 5;
    END.

  2. Antwort von nach 15 Stunden 0 hilfreich
    Re: Wertzuweisung bei Arrays in Pascal

    das hier sollte funktionieren

    case x of
    1..2: y[x] := x / 2;
    3..50: y[x] := x / 3;
    51..100: y[x] := x / 5;
    end

  3. Antwort von nach 17 Stunden 0 hilfreich
    Re: Wertzuweisung bei Arrays in Pascal

    Ist schon ein bißchen her bei mir... Aber ich würde das au jeden Fall mit einer For-Schleife lösen, also in etwa:

    for i:= 1 to 100 do
    begin
    if i<= 2 then
    begin
    x[i]:=i/2;
    end
    if i>2 and i<=50 then
    begin
    x[i]:=i/3;
    end
    if i>50 then
    begin
    x[i]:=???; hier fehlt mir das mathematische verständnis...
    end
    end.

  4. Antwort von nach 2 Tagen 0 hilfreich
    Re: Wertzuweisung bei Arrays in Pascal

    Hallo Tobi,

    ich hoffe mal, ich habe deine Frage richtig verstanden.

    Am Einfachsten ist es, das über drei Schleifen zu erledigen:

    program Wertzuweisung;
    uses crt;
    var x:array[1..100] of real; {das Array}
    zaehler:byte; {Hilfsvariable für die
    Schleife}
    begin
    for zaehler:= 1 to 2 do x[zaehler]:=zaehler/2;

    for zaehler:= 3 to 50 do x[zaehler]:=zaehler/3;

    for zaehler:=51 to 100 do x[zaehler]:=(zaehler-20)/5;

    end.


    Falls noch Fragen sind, helfe ich dir gern weiter.

    Sven

  5. Antwort von nach 2 Tagen 0 hilfreich
    Re: Wertzuweisung bei Arrays in Pascal

    Verstehe ich Dich richtig?

    procedure tobi(const n: integer; var x: array of double);
    var
    i: integer;
    begin
    setlength(x,n+1);
    for i:=1 to 2 do begin
    x[i]:=i/2;
    end;
    for i:=3 to 50 do begin
    x[i]:=i/3;
    end;
    for i:=51 to n do begin
    x[i]:=(i-20)/5;
    end;
    end;

    Viele Gruesse
    Veit

    • Antwort von nach 4 Tagen 0 hilfreich
      Re^2: Wertzuweisung bei Arrays in Pascal

      Danke für die schnellen Lösungen,aberb das Problem wurde mir jetzt erst klar.


      Ich versuch mein Problem jetzt richtig zu schldern.

      Und zwar soll beim Array von 1-100 jedes Feld einen Wert bekommen, der sich auf den WERT der vorigen Felds bezieht.
      Bsp:x= array 1-100
      Wert von feld 1:=1
      wert von feld 2=: wert von feld 1 geteilt durch 2
      wert von feld 3:= wert von feld 1 geteilt durch 2 + wert von feld 2geteilt durch 2
      wert von feld n(außnahme 1 und 2):=wert von feld (n-2)/2 +wert von feld (n-1)/2

      so ein Programm wäre super... das kann man zwar auch als Gleichung schreiben, aber da ich auf dem Programm noch Sachen abstimmen muss, erweitern und ändern später, brauche ich das Programm.
      Danke im Vorraus.

      • Antwort von nach 4 Tagen 0 hilfreich
        Re^3: Wertzuweisung bei Arrays in Pascal

        Du hast es eh' schon geschrieben:

        x[1]:=1;
        x[2]:=x[1]*0.5;
        for i:=3 to 100 do begin
        x[i]:=(x[i-1]+x[i-2])*0.5;
        end;


        Viele Gruesse
        Veit

        • Antwort von nach 16 Tagen 0 hilfreich
          Re^4: Wertzuweisung bei Arrays in Pascal

          x[1]:=1;
          x[2]:=x[1]*0.5;
          for i:=3 to 100 do begin
          x[i]:=(x[i-1]+x[i-2])*0.5;
          readln
          end.


          Viele Gruesse
          Veit
          ja genau soweit komme ich auch, aber er zeigt bei mir fehler an. Irgendwas hab ich bei der definition von x und i falsch gemacht:-(, dabei kann man da doch nichts mehr falsch machen, bitte nochmals um Hilfe

          • Antwort von nach 18 Tagen 0 hilfreich
            Re^5: Wertzuweisung bei Arrays in Pascal

            program tobi;

            {$APPTYPE CONSOLE}

            uses
            SysUtils;

            const
            n: integer = 100;

            var
            i: integer;
            x: array{[1..100]} of double;
            begin

            setlength(x,n+1);
            x[1]:=1;
            x[2]:=x[1]*0.5;
            for i:=3 to n do begin
            x[i]:=(x[i-1]+x[i-2])*0.5;
            end;

            for i:=1 to n do begin
            writeln(i,x[i]);
            end;

            finalize(x);



            end.

            • Antwort von nach 27 Tagen 0 hilfreich
              Re^6: Wertzuweisung bei Arrays in Pascal

              wieso braucht man jetzt sysutilis?
              hab davon gehört, aber nie benutzt.
              Und als Fehlermeldung kommt:
              "cant find unit sysutilis used by tobi"

            • Antwort von nach 27 Tagen 0 hilfreich
              Re^7: Wertzuweisung bei Arrays in Pascal

              wieso braucht man jetzt sysutilis?
              hab davon gehört, aber nie benutzt.
              Und als Fehlermeldung kommt:
              "cant find unit sysutilis used by tobi"
              Na, dann schreib es richtig oder kommentier sie halt aus.
              Die Unit SysUtils kommt mit Delphi.



              Jetzt auf diese Frage antworten.