Pominięcie pierwszego elementu pętli for

Odpowiedz Nowy wątek
2011-07-15 15:44
0

Witam. Chciałbym pominąć pierwszy element pętli FOR w Pascalu.
Podany program drukuje na ekranie kształt koperty (dla ułatwienia boki składają się z cyfr). Wygląda to tak:

beztytuusdw.jpg

Jakie macie pomysły na usunięcie pierwszej 5 i 3?

PROGRAM Koperta;
Uses CRT;
VAR xyz,x,y,z,abc:Integer;
 
BEGIN
ClrScr;
xyz:=40;
abc:=1;
 
for x:=1 to 21
do write('1':2);
 
for y:=1 to 7
do begin
    writeln('2':2,'3':abc,'5':xyz);
    write('4':44);
    writeln;
    abc:=abc+3;
    xyz:=xyz-6;
         if (abc=1) or (xyz=40)
         then continue;
end;
 
for z:=1 to 22
do write('1':2);
 
Readkey;
END.
edytowany 3x, ostatnio: BrakU, 2011-07-15 15:47

Pozostało 580 znaków

2011-07-15 15:49
0

Kod niesformatowany, więc patrzeć się nie chce. Jednak pewnie da się to zrobić bez pomijania pierwszej iteracji pętli, możesz przecież wykonać ją od drugiej wartości podanej jako początkowa wartość. Ale jeżeli już koniecznie chcesz zeby w pętli jakiś blok się nie wykonał to prosto...

var
  I : integer;
begin
  for I := 1 to 10 do
  begin
    if I > 1 then
    begin
      // Co ma się wykonać poza pierwszym przebiegiem pętli...
    end;
  end;
end;

O ile o coś takiego Tobie chodzi.


A nie lepiej continue? Mniejszy 'poziom bloków'. - payl 2011-07-15 17:17

Pozostało 580 znaków

2011-07-15 22:48
PROGRAM Koperta;
Uses CRT;
VAR xyz,x,y,z,abc:Integer;
 
BEGIN
ClrScr;
xyz:=40-6;
abc:=1+3;
 
for x:=1 to 22
do write('1':2);
writeln;
 
for y:=1 to 6
do begin
        writeln('2':2,'3':abc,'5':xyz);
        write('4':44);
        writeln;
        abc:=abc+3;
        xyz:=xyz-6;
         if (abc=1) or (xyz=40)
         then continue;
end;
 
for z:=1 to 22
do write('1':2);
 
Readkey;
END.

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2011-07-15 23:30
0

Dzięki wszystkim za odpowiedź.
olesio, nie o to chodziło. IF albo wykonanie od drugiej wartości pętli FOR tu nie pomoże. Sam też tego próbowałem.
payl, też myślałem o continue, ale to raczej nie zadziała na 1 wartość pętli.
_13th_Dragon, wielkie dzięki. Dokładnie o to chodziło. Najprostsze rozwiązania są zawsze najlepsze. Swoją drogą nie wiem kiedy bym wpadł, aby dać wartość xyz:=34 i abc:=4; a ten writeln po pierwszej pętli to już w ogóle :) Trzeba rozwiązywać takie zadania z zagnieżdżonymi pętlami FOR.

edytowany 1x, ostatnio: BrakU, 2011-07-15 23:31
"Chciałbym pominąć pierwszy element pętli FOR w Pascalu." - chcesz to masz, zarówno olesio jak i ja udzieliliśmy odpowiedzi na to pytanie. Następnym razem uważaj o co prosisz, bo sam nie wiesz czego chcesz :P . - payl 2011-07-16 00:45

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0