Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: programowanie  (Przeczytany 1069 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

kabel

  • Gość
programowanie
« dnia: 23 Listopada 2008, 16:51 »
 Czy  ktoś  wie  jak  pisać  programy  (na  c64)ze  słowem  IF  \'\'    \'\'  bo  narazie  mi  nie  wychodzi  \'\'    \'\'  



TuMe64

  • Gość
programowanie
« Odpowiedź #1 dnia: 23 Listopada 2008, 17:36 »
 1  INPUT  A$  
  2  IF  A$=\'ALA\'  THEN  PRINT  \'  ONA  MA  KOTA\'  
   
   
  IF  warunek  (w  tym  wypadku  zmienna  tekstowa  A$  wprowadzona  za  pomocą  INPUT  musi  być  identyczna  z  zapisaną  w  cudzysłowie  czyli  ALA  )  THEN  czyli  skutek  w  tym  wypadku  wyświetlenie  PRINT  na  ekranie  tekstu  zawartego  w  cudzysłowie)  
   
   
   
   

Gizmoń

  • Gość
programowanie
« Odpowiedź #2 dnia: 23 Listopada 2008, 20:26 »
 Kilka  przykładów:  
   
  -Jeśli  szukasz  znaku  na  ekranie:  
   
  10  FOR  A=0  to  999  
  20  X=PEEK(1024+A)  
  30  IF  X=46  THEN  PRINT  \'ZNALEZIONO!\'  
  40  NEXT  
   
  Powyższy  program  wyszukuje  na  ekranie  komputera  znak  kropki  (jego  kod  to  46)  i  jeśli  go  znajdzie  (X=46)  to  pokazuje  komunikat  ZNALEZIONO!.  
   
  -Jeśli  robisz  menu  w  programie:  
   
  10  GET  A$:  IF  A$=\'\'  THEN  10  
  20  IF  A$=\'A\'  THEN  PRINT  \'WCISNIETO  KLAWISZ  A\';  
  30  IF  A$=\'B\'  THEN  PRINT  \'WCISNIETO  KLAWISZ  B\';  
  40  IF  A$=\'X\'  THEN  END  
  50  GOTO  10  
   
  Program  sprawdza,  czy  wciśnięto  jakiś  klawisz  (jeśli  tak,  to  A$<>\'\',  jeśli  nie,  to  A$=\'\').  Po  wciśnięciu  sprawdza  jaki  to  klawisz  (IF  A$=\'A\'  then  ...).  Średnik  po  poleceniu  PRINT  powoduje  wyświetlanie  tekstu  w  tej  samej  linijce.  Jeśli  wciśniesz  X  to  program  zakończy  pracę.  Linia  50  zapobiega  wyłączeniu  programu  po  wciśnięciu  innego  klawisza  niż  A,B  lub  X.  
   

kabel

  • Gość
programowanie
« Odpowiedź #3 dnia: 24 Listopada 2008, 17:59 »
 A  Z  KOMENDĄ  PRINT  JAK  ROBIC  (NIE  ZATRZYMUJE  SIE)  

Gizmoń

  • Gość
programowanie
« Odpowiedź #4 dnia: 24 Listopada 2008, 19:00 »
 Co  masz  na  myśli?

TuMe64

  • Gość
programowanie
« Odpowiedź #5 dnia: 24 Listopada 2008, 19:40 »
 musisz  pisać  zrozumialej...

kabel

  • Gość
programowanie
« Odpowiedź #6 dnia: 25 Listopada 2008, 16:10 »
 napisany  program:  
   
   
   
  1  poke  53280,7:poke  53281,8:poke  646,0  
  2  get  a$:if  a$  <>\'\'then  goto  2  
  3  print\'opcje:  
                  a-  wylistuj  program\'  
  4  print\'r-  reset  programu  
                  z-  zmien  kolor  ramki\'  
  5  if  a$=\'a\'then  list:if  a$=\'r\'  then  load  
  \'przykladowy  program\',8  
  6  if  a$=\'z\'then  poke  53280,1  
  7  print\'dziekuje\'  
   
  gdy  włącze  program:  
   
   
  opcje:  
  a-  wylistuj  program  
  r-  reset  programu  
  z-  zmien  kolor  ramki  
  dziekuje  
   
  ready.  
   
   
                                         
                                       
   

TuMe64

  • Gość
programowanie
« Odpowiedź #7 dnia: 25 Listopada 2008, 19:08 »
 linia  2  -  ta  z  GET  A$  powinna  być  po  tym  jak  program  wyświetli  opcje  na  ekranie  a  przed  liniami  z  IF  i  powinna  raczej  wyglądać  tak  :  
   
  (numer  lini)GET  A$:IF  A$=\'\'THEN  GOTO(numer  lini)  
   
  spróbuj...  
   
   
   
   
   

zyga

  • Gość
programowanie
« Odpowiedź #8 dnia: 26 Listopada 2008, 09:24 »
 Jeżeli  po  `then`  ma  występować  `goto`  możesz  pominąć  albo  `then`  albo  `goto`.  Program  dalej  będzie  działał  :)

Gizmoń

  • Gość
programowanie
« Odpowiedź #9 dnia: 27 Listopada 2008, 16:01 »
 Ja  bym  ten  program  napisał  tak:  
   
  10  poke  53280,7:poke  53281,8    
  20  ?  \'Opcje:\'    
  30  ?  \'a-  wylistuj  program\'    
  40  ?  \'r-  reset  programu\'    
  50  ?  \'z-  zmien  kolor  ramki\'    
  60  Get  A$:  IF  A$=\'\'  then  60  
  70  if  A$=\'a\'  then  list  
  80  if  A$=\'r\'  then  run  
  90  if  A$=\'z\'  then  poke  53280,1  
  100  ?  \'dziekuje\'  
   
  Znak  zapytania  jest  zamienny  ze  słowem  PRINT.  Mam  pytanie  do  czego  służy  to  polecenie:  
   
  poke  646,0  
   
  Czyżby  umożliwiało  wczytanie  programu  z  dyskietki  poleceniem    
   
  80  if  A$=\'r\'  then  load  \'program  testowy\',8  
   
  ?  
   
  Zawsze,  jak  próbowałem  tak  zrobić  (bez  polecenia  poke  646,0),  wczytany  program  to  były  jakieś  przypadkowe  znaki  itp.      
   
   

Gizmoń

  • Gość
programowanie
« Odpowiedź #10 dnia: 27 Listopada 2008, 16:12 »
 Pamiętaj,  że  taka  komenda:  
   
  10  GET  A$:  IF  A$=\'\'  THEN  10  
   
  Powoduje,  że  program  oczekuje  na  wciśnięcie  jakiegoś  klawisza,  i  do  tego  momentu  nic  innego  nie  zrobi  (zatrzyma  się).  Z  tego  powodu,  Twój  program  po  uruchomieniu  zmieniał  kolor  ramki  i  czekał.  Po  wciśnięciu  klawisza  wyświetlał  menu  i  kończył  pracę.  
   
  Polecam  też  numerować  linie  co  10  (10,  20,  30,  40,  ...,  1500,  1510,  1520  itd)  
  Co  umożliwia  dodanie  do  programu  czegoś,  o  czym  zapomniałeś  pisząc  go.  Numerując  co  1,  nie  dopiszesz  potem  linii,  np.  115,5  (czyt.  sto  piętnaście  i  pół).    \'\'  

kabel

  • Gość
programowanie
« Odpowiedź #11 dnia: 27 Listopada 2008, 18:05 »
 Poke  646,0-133  to  zmiana  koloru  tekstu

TuMe64

  • Gość
programowanie
« Odpowiedź #12 dnia: 27 Listopada 2008, 18:08 »
 0-133    \'\'  ?  kurka..  Komodorek  ma  16  kolorów  czyli  0  -  15  ....

kabel

  • Gość
programowanie
« Odpowiedź #13 dnia: 27 Listopada 2008, 18:13 »
 A  ja  dałem  133  i  był  taki  ciemnozielony(taki  jak  w  PET)

TuMe64

  • Gość
programowanie
« Odpowiedź #14 dnia: 27 Listopada 2008, 19:44 »
 komodorek  ma  16  kolorów...  zwiększając  liczbę  chyba  zaklinasz  rzeczywistość  Szamanie  :)  0-15  a  potem  powtarzają  się...  przykro  mi  :(  lajf  iz  brutal    \'\'