SLy Opublikowano 8 Listopada 2004 Udostępnij Opublikowano 8 Listopada 2004 Mam takie proste zadanko: Napisz program realizujący algorytm, który umożliwi wyprowadzenie na ekran monitora prostokąta o bokach n x m, składającego się z liter "A" i "B", występujących co drugi wiersz ( m - liczba znaków "A" i "B" w poziomie, n - liczba znaków "A" lub "B" w pionie). Oczywiście środek też ma być zapełniony literkami. No i zrobiłem - w końcu nie jest to trudne. Problem w tym, że robiłem to po swojemu i nie wiem czy da się to jakoś zoptymalizować lub zrobić w jakiś inny prostszy sposób. U mnie wygląda to tak: program prostokat; uses crt; var n,m,i,i2,j,j2:word; procedure rysowanieAB; begin for i:=1 to m div 2 do begin write('AB'); end; end; procedure rysowanieBA; begin for i:=1 to m div 2 do begin write('BA'); end; end; begin clrscr; writeln('Podaj wysokosc prostokata '); readln(n); writeln('Podaj szerokosc prostokata '); readln(m); j:=m mod 2; j2:=n mod 2; if j2=0 then begin for i2:=1 to n div 2 do begin if j=0 then begin rysowanieAB; writeln; rysowanieBA; writeln; end else begin rysowanieAB; write('A'); writeln; rysowanieBA; write('B'); writeln; end; end; end else begin for i2:=1 to n div 2 do begin if j=0 then begin rysowanieAB; writeln; rysowanieBA; writeln; end else begin rysowanieAB; write('A'); writeln; rysowanieBA; write('B'); writeln; end; end; if j=0 then begin rysowanieBA; end else begin rysowanieBA; write('B'); end; end; readkey; end. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BeWuO Opublikowano 8 Listopada 2004 Udostępnij Opublikowano 8 Listopada 2004 Możesz mi pokazac przykładowy wynik? Znaczy się namauj tu taki prostokąt, bo nie bardzo czaje, jak mają być ustwione te literki, a nie mam teraz Pascala :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SLy Opublikowano 9 Listopada 2004 Autor Udostępnij Opublikowano 9 Listopada 2004 ABABABABA BABABABAB ABABABABA BABABABAB Taka szachownica z literek. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BeWuO Opublikowano 9 Listopada 2004 Udostępnij Opublikowano 9 Listopada 2004 Hmmm a spróbuj tak: for i:=1 to n do begin if n mod 2 = 0 then begin od_czego:='B'; pozniej:='A'; end else begin od_czego:='A'; pozniej:='B'; end; for j:=1 to m do begin if m mod 2 = 0 then write(od_czego) else write(pozniej); end; writeln; end; Spróbuj, tak, ale pisze z pamięci, więc jak coś to pisz co nie działa ;] Edit: Ups chyba pomyliłem kolejność, ale to chyba nie problem :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Choosen Opublikowano 10 Listopada 2004 Udostępnij Opublikowano 10 Listopada 2004 Hehe jak milo znow wrocic do korzeni :) Na poczatek jedna uwaga... zauważcie, że jesli linijka konczy się na A to zaczyna się na B i odwrotnie.. nie ma wiec sensu zalozenie jesli parzysta jesli nie parzysta.. wystarczy je pisac naprzemiennie ABABABA i w odpowiednim miejscu konczyc linie ;) Program kwadrat; uses crt; var m,n,i,j :integer; litera : char; Begin clrscr; write('Podaj liczbe wierszy : '); readln(m); write('Podaj liczbe kolumn : '); readln(n); writeln; litera:='A'; for i:=1 to m do begin for j:=1 to n do begin write(litera); if (litera='A') then begin litera:='B'; end else begin litera:='A'; end; end; writeln; end; readkey; end. A tak to bedzie wygladac... Podaj liczbe wierszy : 4 Podaj liczbe kolumn : 5 ABABA BABAB ABABA BABAB Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BeWuO Opublikowano 10 Listopada 2004 Udostępnij Opublikowano 10 Listopada 2004 Hmmm, a jak będzie zaczynać na A i kończyć na B, to drugi wiersz też będzie się zaczynał na A. Przykład: Kolumny = 4 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Choosen Opublikowano 10 Listopada 2004 Udostępnij Opublikowano 10 Listopada 2004 Oj tam czepiasz sie... :jezor: No dobra.. dobra.. moze troche pospieszylem sie z zalozeniami ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BeWuO Opublikowano 11 Listopada 2004 Udostępnij Opublikowano 11 Listopada 2004 Nie da się być SUPER all the time =] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się