Autor Wątek: Prośba o pomoc - prosty program w Basicu  (Przeczytany 2611 razy)

Barts

  • *****
  • Wiadomości: 504
  • Miejsce pobytu:
    Łódź
Prośba o pomoc - prosty program w Basicu
« dnia: 2016.10.22, 15:36:59 »
Chciałem pokazać mojej żonie, że zadanie z programowania obiektowego jakie dostała jest na tyle trywialne, że da się zrealizować na starutkim Amstradzie w Basicu. Chodzi o stworzenie dwuwymiarowej tablicy, zapełnienie jej losowymi liczbami, po czym wypisanie na ekranie. Po czym jak zacząłem drążyć, to okazało się że nie umiem tego napisać w Basicu. Się zapomniało się jak to działa. Ale może któryś z Was ma Locomotive Basic i jego komendy na tyle opanowane, że byłby w stanie coś takiego podpowiedzieć?

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Prośba o pomoc - prosty program w Basicu
« Odpowiedź #1 dnia: 2016.10.22, 17:42:59 »
Jeśli ta tablica ma być większa niż 10 na 10, to trzeba wpierw zadeklarować jej rozmiary komendą DIM, np.:
DIM tablica(100,200)   Bo inaczej odwołanie się do obiektu w tablicy o większych rozmiarach generuje błąd.

Liczby losujemy funkcją RND, mnożąc ją przez maksymalną wartość jaką chcemy by się losowała. Wynikiem będzie liczba ułamkowa między zero a tą wartością. np.:  x=RND*100   
Jeśli chcemy tylko liczby całkowite to dodać % na końcu nazwy zmiennej lub wcześniej zadeklarować by zmienne zaczynające się na jakąś literę były integer komendą DEFINT b,t-z 
W powyższym przykładzie wszystkie zmienne zaczynające się na literę b lub na litery ze zakresu od t do z będą całkowite, chyba że dodamy im ! dla ułamków lub $ dla zmiennych tekstowych.

Czyli:    tablica(x,y)=RND*200  wrzucamy do podwójnej pętli FOR NEXT ze zmiennymi x i y jako parametrami które w nich rosną i już mamy liczby w tablicy wylosowane. A to w każdym Basicu się robi tak samo. :)

Aby je wyświetlić w równiutkich kolumnach wystarczy w PRINT-cie po nazwie zmiennej/tablicy dodać przecinek, a żeby zmienić szerokość odstępów używamy komendę ZONE z liczbą znaków. (domyślnie jest 8 ).
Komenda MODE 2 zwiększy ilość znaków dostępnych w linii do 80.
Można też sobie skomplikować to wyświetlanie komendą LOCATE do przestawiania kursora w żądanym miejscu używanej przed PRINT. Jak ktoś lubi stosować więcej zbędnych zmiennych. Choć myślę że odpowiednio dobierając wielkość losowanych liczb oraz ich liczbę w stosunku do dostępnych znaków mieszczących się na ekranie, to przecinek w PRINT i ZONE wystarczą.

Aha, aby liczby się wyrównywały do prawego marginesu a nie lewego w tych kolumnach użyjmy:
PRINT USING"#####";zmienna,     Te hasze to ilość znaków jakie przeznaczamy na liczbę, a przecinek po zmiennej sprawi że po jej wyświetleniu kursor przeskoczy do następnej kolumny.

W sumie cały program da się zrobić w jednej linijce. To chyba wszystko. Powodzenia. :)


PS.: Komplikacje by się zaczęły gdyby tablica była większa niż się zmieści na ekranie i chcielibyśmy by dało się ją przewijać tak by zobaczyć inny jej fragment, dodając także rameczki aby przypominało arkusz kalkulacyjny. Ale po takich komplikacjach wystarczyłoby dodać wprowadzanie, edycję, zapis i odczyt danych oraz kilka formuł na sumowanie lub średnią z wiersza lub kolumny i już mamy program biurowy w 10 liniach. Oki w 20tu gdyby jeszcze wyświetlał słupki 3D. ;)
« Ostatnia zmiana: 2016.10.22, 17:56:53 wysłana przez ZbyniuR »
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

Barts

  • *****
  • Wiadomości: 504
  • Miejsce pobytu:
    Łódź
Odp: Prośba o pomoc - prosty program w Basicu
« Odpowiedź #2 dnia: 2016.10.23, 11:40:50 »
Dziękówa!