C/C++
Von: tоbі..., 12.3.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



  1. Antwort von Αnоnүm (abgemeldet) 0
    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.
    • Antwort von Μumіоn 0
      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
      • 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.
        • Antwort von Ѕνеn 0
          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
          • Antwort von Vеіt Еіtnеr 0
            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
            6 Kommentare
            • von tоbі... 0
              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.
            • 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
            • von tоbі... 0
              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
            • 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.
            • von tоbі... 0
              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"
            • 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.