Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Tłumaczenie: mgr Jerzy Wałaszek |
©2024 mgr Jerzy Wałaszek |
SPIS TREŚCI |
|
Pierwszy z nich żąda podania daty, a następnie wyliczy dzień tygodnia odpowiadający tej dacie.
10 REM zamiana daty na dzien
tygodnia 20 DIM d$(7,6): REM dni tygodnia 30 FOR n=1 TO 7: READ d$(n): NEXT n 40 DIM m(12): REM dlugosci miesiecy 50 FOR n=1 TO 12: READ m(n): NEXT n 100 REM odczyt daty 110 INPUT "dzien?";day 120 INPUT "miesiac?";month 130 INPUT "rok (tylko 20 wiek)?";year 140 IF year<1901 THEN PRINT "20-ty wiek rozpoczyna sie od 1901": GO TO 100 150 IF year>2000 THEN PRINT "20-ty wiek konczy sie na 2000": GO TO 100 160 IF month<1 THEN GO TO 210 170 IF month>12 THEN GO TO 210 180 IF year/4-INT(year/4)=0 THEN LET m(2)=29: REM rok przestepny 190 IF day>m(month) THEN PRINT "Ten miesiac ma tylko "; m(month);" dni.": GO TO 500 200 IF day>0 THEN GO TO 300 210 PRINT "To bzdury. Wpisz date." 220 GO TO 500 300 REM zamienia date na liczbe dni od poczatku stulecia 310 LET y=year-1901 320 LET b=365*y+INT (y/4): REM liczba dni do poczatku roku 330 FOR n=1 TO month 1: REM dodajwaj poprzednie miesiace 340 LET b=b+m(n): NEXT n 350 LET b=b+day 400 REM zamienia na dzien tygodnia 410 LET b=b-7*INT (b/7)+1 420 PRINT day;"-";month;"-";year 430 FOR n=6 TO 3 STEP -1: REM usuwa koncowe spacje 440 IF d$(b,n) <> " " THEN GO TO 460 450 NEXT n 460 LET e$=d$(b, TO n) 470 PRINT" bylo w "; e$;"." 500 LET m(2)=28: REM przywroc luty 510 INPUT "jeszcze raz?", a$ 520 IF a$="n" THEN GO TO 540 530 IF a$ <> "N" THEN GO TO 100 1000 REM dni tygodnia 1010 DATA "Pon", "Wto", "Sro" 1020 DATA "Czw", "Pia", "Sob", "Nie" 1100 REM dlugosci miesiecy 1110 DATA 31, 28, 31, 30, 31, 30 1120 DATA 31, 31, 30, 31, 30, 31 |
Ten program obsługuje jardy, stopy i cale.
10 INPUT "jardy?",yd,"stopy?",ft,
"cale?",in 40 GO SUB 2000: REM wypisz wartosci 50 PRINT '" = "; 70 GO SUB 1000: REM przeliczanie 80 GO SUB 2000: REM wypisz wartosci przeliczone 90 PRINT 100 GOTO 10 1000 REM podprogram do przeliczania yd, ft, in na normalna postac dla jardow, stop i cali 1010 LET in=36*yd+12*ft+in: REM teraz wszystko jest w calach 1030 LET s=SGN in: LET in=ABS in: REM pracujemy z wartoscia dodatnia, przechowujac znak w s 1060 LET ft=INT (in/12): LET in=(in-12*ft)*s: REM teraz in jest dobrze 1080 LET yd=INT (ft/3)*s: LET ft=ft*s-3*yd: RETURN 2000 REM podprogram wypisujace yd, ft i in 2010 PRINT yd;"yd";ft;"ft";in;"in";: RETURN |
Oto program do tworzenia heksagramów w I Ching (chińska Księga Przemian). (Niestety, tworzy on wynik do góry nogami, lecz możesz się tym nie przejmować.)
5 RANDOMIZE 10 FOR m=1 TO 6: REM dla 6 rzutow 20 LET c=0: REM inicjujemy monete na 0 30 FOR n=1 TO 3: REM dla 3 monet 40 LET c=c+2+INT (2*RND) 50 NEXT n 60: PRINT " "; 70 FOR n=1 TO 2 80 PRINT "_ _ _"; 90 IF c=7 THEN PRINT " "; 100 IF c=8 THEN PRINT " "; 110 IF c=6 THEN PRINT "X";: LET c=7 120 IF c=9 THEN PRINT "0";: LET c=8 130 PRINT "_ _ _ "; 140 NEXT n 150 PRINT 160 INPUT a$ 170 NEXT m: NEW |
By z tego skorzystać, wpisz program i uruchom go, a następnie naciśnij ENTER pięć razy, aby otrzymać dwa heksagramy. Wyszukaj je w chińskiej Księdze Przemian. Tekst wyjaśni sytuację oraz odpowiednie toki działań dla niej, a ty musisz się głęboko zastanowić, aby odkryć związek pomiędzy tą wróżbą a swoim życiem. Naciśnij ENTER szósty raz, a program wymaże się, abyś się tym lekkomyślnie nie bawił.
Wielu ludzi stwierdzi, że te teksty są zawsze bardziej odpowiednie, niż można by się było spodziewać po zwykłym przypadku; może tak również być z komputerem ZX Spectrum, chociaż ogólnie komputery są raczej bezdusznymi stworzeniami.
Oto program w odgadywanie zwierząt. Wymyślasz sobie jakieś zwierzę, a komputer stara się odgadnąć, co to jest, zadając ci pytania, na które odpowiedzią może być tylko "yes" lub "no". Jeśli o jakimś zwierzęciu jeszcze nie słyszał, to prosi cię, abyś podał mu pytanie, które będzie mógł wykorzystać przy następnej grze, aby zgadnąć to zwierzę. (Programu nie tłumaczę, pozostanie w wersji oryginalnej).
5 REM Pangolins 10 LET nq=100: REM number of questions and animals 15 DIM q$(nq,50): DIM a(nq,2): DIM r$(1) 20 LET qf=8 30 FOR n=1 TO qf/2 1 40 READ q$(n): READ a(n,1): READ a(n,2) 50 NEXT n 60 FOR n=n TO qf-1 70 READ q$(n): NEXT n 100 REM start playing 110 PRINT "Think of an animal.","Press any key to continue." 120 PAUSE 0 130 LET c=1: REM start with 1st question 140 IF a(c,1)=0 THEN GO TO 300 150 LET p$=q$(c): GO SUB 910 160 PRINT "?": GO SUB 1000 170 LET in=1: IF r$="y" THEN GO TO 210 180 IF r$="Y" THEN GO TO 210 190 LET in=2: IF r$="n" THEN GO TO 210 200 IF r$<>"N" THEN GO TO 150 210 LET c=a(c,in): GO TO 140 300 REM animal 310 PRINT "Are you thinking of" 320 LET P$=q$(c): GO SUB 900: PRINT "?" 330 GO SUB 1000 340 IF r$="y" THEN GO TO 400 350 IF r$="Y" THEN GO TO 400 360 IF r$="n" THEN GO TO 500 370 IF r$="N" THEN GO TO 500 380 PRINT "Answer me properly when I'm","talking to you.": GO TO 300 400 REM guessed it 410 PRINT "I thought as much.": GO TO 800 500 REM new animal 510 IF qf>nq-1 THEN PRINT "I'm sure your animal is very", "interesting, but I don't have","room for it just now.": GO TO 800 520 LET q$(qf)=q$(c): REM move old animal 530 PRINT "What is it, then?": INPUT q$(qf+1) 540 PRINT "Tell me a question which dist ","inguishes between " 550 LET p$=q$(qf): GO SUB 900: PRINT " and" 560 LET p$=q$(qf+1): GO SUB 900: PRINT " " 570 INPUT s$: LET b=LEN s$ 580 IF s$(b)="?" THEN LET b=b-1 590 LET q$(c)=s$(TO b): REM insert question 600 PRINT "What is the answer for" 610 LET p$=q$(qf+1): GO SUB 900: PRINT "?" 620 GO SUB 1000 630 LET in=1: LET io=2: REM answers for new and old animals 640 IF r$="y" THEN GO T0 700 650 IF r$="Y" THEN GO TO 700 660 LET in=2: LET io=1 670 IF r$="n" THEN GO TO 700 680 IF r$="N" THEN GO TO 700 690 PRINT "That's no good. ": GO TO 600 700 REM update answers 710 LET a(c,in)=qf+1: LET a(c,io)=qf 720 LET qf=qf+2: REM next free animal space 730 PRINT "That fooled me." 800 REM again? 810 PRINT "Do you want another go?": GO SUB 1000 820 IF r$="y" THEN GO TO 100 830 IF r$="Y" THEN GO TO 100 840 STOP 900 REM print without trailing spaces 905 PRINT " "; 910 FOR n=50 TO 1 STEP -1 920 IF p$(n)<>" " THEN GO TO 940 930 NEXT n 940 PRINT p$(TO n);: RETURN 1000 REM get reply 1010 INPUT r$: IF r$="" THEN RETURN 1020 LET r$=r$(1): RETURN 2000 REM initial animals 2010 DATA "Does it live in the sea",4,2 2020 DATA "Is it scaly",3,5 2030 DATA "Does it eat ants",6,7 2040 DATA "a whale", "a blancmange", "a pangolin", "an ant" |
Ten program rysuje flagę Wielkiej Brytanii.
5 REM flaga Wielkiej Brytanii 10 LET r=2: LET w=7: LET b=1 20 BORDER 0: PAPER b: INK w: CLS 30 REM czarne na spodzie ekranu 40 INVERSE 1 50 FOR n=40 TO 0 STEP -8 60.PLOT PAPER 0;7,n: DRAW PAPER 0;241,0 70 NEXT n: INVERSE 0 100 REM wrysuj biale fragmenty Sw. Jerzego 110 FOR n=0 TO 7 120 PLOT 104+n,175: DRAW 0,-35 130 PLOT 151-n,175: DRAW 0,-35 140 PLOT 151-n,48: DRAW 0,35 150 PLOT 104+n,48: DRAW 0,35 160 NEXT n 200 FOR n=0 TO 11 210 PLOT 0,139-n: DRAW 111,0 220 PLOT 255,139-n: DRAW 111,0 230 PLOT 255,84+n: DRAW -111,0 240 PLOT 0,84+n: DRAW 111,0 250 NEXT n 300 REM Sw. Andrzej 310 FOR n=0 TO 35 320 PLOT 1+2*n,175-n: DRAW 32,0 330 PLOT 224-2*n,175-n: DRAW 16,0 340 PLOT 254-2*n,48+n: DRAW-32,0 350 PLOT 17+2*n,48+n: DRAW 16,0 360 NEXT n 370 FOR n=0 TO 19 380 PLOT 185+2*n,140+n: DRAW 32,0 390 PLOT 200+2*n,83-n: DRAW 16,0 400 PLOT 39-2*n,83-n: DRAW 32,0 410 PLOT 54-2*n,140+n: DRAW -16,0 420 NEXT n 425 REM wypelnij dodatkowe kawalki 430 FOR n=0 TO 15 440 PLOT 255,160+n: DRAW 2*n-30,0 450 PLOT 0,63-n DRAW 31-2*n,0 460 NEXT n 470 FOR n=0 TO 7 480 PLOT 0,160+n: DRAW 14 2*n,0 485 PLOT 255,63-n: DRAW 2*n-15,0 490 NEXT n 500 REM czerwone pasy 510 INVERSE 1 520 REM St George 530 FOR n=96 TO 120 STEP 8 540 PLOT PAPER r;7,n: DRAW PAPER r;241,0 550 NEXT n 560 FOR n=112 TO 136 STEP 8 570 PLOT PAPER r;n,168: DRAW PAPER r;0,-113 580 NEXT n 600 REM Sw. Patryk 610 PLOT PAPER r;170,140: DRAW PAPER r;70,35 620 PLOT PAPER r;179,140: DRAW PAPER r;70,35 630 PLOT PAPER r;199,83: DRAW PAPER r;56,-28 640 PLOT PAPER r;184,83: DRAW PAPER r;70,-35 650 PLOT PAPER r;86,83: DRAW PAPER r;-70,-35 660 PLOT PAPER r;72,83: DRAW PAPER r;-70,-35 670 PLOT PAPER r;56,140: DRAW PAPER r;-56,28 680 PLOT PAPER r;71,140: DRAW PAPER r;-70,35 690 INVERSE 0: PAPER 0: INK 7 |
Jeśli nie pochodzisz z Wysp Brytyjskich, to narysuj swoją własną flagę — polska jest szczególnie prosta, jeśli pominiemy orła. Flagi trójkolorowe są dosyć łatwe, chociaż niektóre kolory — przykładowo pomarańczowy we fladze irlandzkiej — mogą sprawiać trudność (wykorzystaj wtedy grafikę definiowaną przez użytkownika do utworzenia znaku zbudowanego z szachowniczki punktów, dobierając odpowiednio kolor tła i tuszu, możemy uzyskać przybliżony odcień). Jeśli jesteś Amerykaninem, to być może znajdziesz zastosowanie dla znaku *.
Oto program do gry w szubieniczkę. Jeden gracz wprowadza słowo, a drugi stara się je odgadnąć w skończonej liczbie prób.
5 REM szubieniczka 10 REM ustawiamy ekran 20 INK 0: PAPER 7: CLS 30 LET x=240: GO SUB 1000: REM narysuj czlowieka 40 PLOT 238,128: DRAW 4,0: REM usta 100 REM ustaw slowo 110 INPUT w$: REM slowo do odgadniecia 120 LET b=LEN w$: LET v$=" " 130 FOR n=2 TO b: LET v$=v$+" " 140 NEXT n: REM v$=slowo dotad odgadniete 150 LET c=0: LET d=0: REM zgaduj i licz pomylki 160 FOR n=0 TO b-1 170 PRINT AT 20,n;" "; 180 NEXT n: REM zamiast liter zapisz spacje 200 INPUT "Odgadnij litere ";g$ 210 IF g$="" THEN GO TO 200 220 LET g$=g$(1): REM tylko pierwsza litera sie liczy 230 PRINT AT 0,c;g$ 240 LET c=c+1: LET u$=v$ 250 FOR n=1 TO bL REM uaktualnij odgadywane slowo 260 IF w$(n)=g$ THEN LET v$(n)=g$ 270 NEXT n 280 PRINT AT l9,0;v$ 290 IF v$=w$ THEN GO TO 500: REM slowo odgadniete 300 IF v$<>u$ THEN GO TO 200: REM litera byla zla 400 REM narysuj nastepny fragment szubienicy 410 IF d=8 THEN GO TO 600: REM powieszony 420 LET d=d+1 430 READ x0,y0,x,y 440 PLOT x0,y0: DRAW x,y 450 GO TO 200 500 REM wolny czlowiek 520 LET x=240: GO SUB 1000 530 PLOT 238,128: DRAW 4,0: REM usta 540 OVER 0: REM przerysuj czlowieka 550 LET x=146: GO SUB 1000 560 PLOT 143,129: DRAW 6,0, PI/2: REM usmiech 570 GO TO 800 600 REM powies czlowieka 610 OVER 1: REM wymaz podloge 620 PLOT 255,65: DRAW -48,0 630 DRAW 0,-48: REM otworz zapadnie 640 PLOT 238,128: DRAW 4,0: REM wymaz usta 650 REM rusz konczynami 655 REM rece 660 PLOT 255,117: DRAW -15,-15: DRAW -15,15 670 OVER 0 680 PLOT 236,81: DRAW 4,21: DRAW 4, 21 690 OVER 1: REM nogi 700 PLOT 255,66: DRAW -15,15: DRAW -15,-15 710 OVER 0 720 PLOT 236,60: DRAW 4,21: DRAW 4,-21 730 PLOT 237,127: DRAW 6,0,-PI/2: REM zmarszczenie brwi 740 PRINT AT 19,0;w$ 800 INPUT "jeszcze? ";a$ 810 IF a$="" THEN GO TO 850 820 LET a$=a$(1) 830 IF a$="n" THEN STOP 840 IF a$="N" THEN STOP 850 RESTORE: GO TO 5 1000 REM narysuj czlowieka w kolumnie x 1010 REM glowa 1020 CIRCLE x,132,8 1030 PLOT x+4,134: PLOT x-4,134: PLOT x,131 1040 REM cialo 1050 PLOT x,123: DRAW 0,-20 1055 PLOT x,101: DRAW 0,-19 1060 REM nogi 1070 PLOT x-15,66: DRAW 15,15: DRAW 15,-15 1080 REM rece 1090 PLOT x-15,117: DRAW 15,-15: DRAW 15,15 1100 RETURN 2000 DATA 120,65,135,0,184,65,0,91 2010 DATA 168,65,16,16,184,81,16,-16 2020 DATA 184,156,68,0,184,140,16,16 2030 DATA 204,156,-20,-20,240,156,0,-16 |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.