Logo - Guida rapida
Il logo è un linguaggio di programmazione molto semplice e facile da imparare. Viene utilizzato per insegnare a studenti e bambini come programmare un computer.
Perché dovremmo imparare la lingua del logo?
- Perché è divertente, molto divertente.
- Migliora il senso logico dei bambini.
- Sviluppa capacità di programmazione.
- È vera informatica.
Il logo è un linguaggio di programmazione molto facile e interessante da imparare. Ha una profondità sufficiente per fare virtualmente qualsiasi cosa, che può essere eseguita in qualsiasi altro linguaggio di programmazione per computer.
Come scaricare e installare il software MSW Logo?
Se il software di programmazione del logo non è installato sul computer, possiamo ottenerlo gratuitamente dal seguente collegamento:
www.softronix.com/mswlogo.htmlDopo l'installazione, mette un'icona Logo sul desktop del tuo computer.
La schermata del logo MSW ha due parti:
- Una finestra di disegno in alto con una TARTARUGA a forma di triangolo al centro.
- Una finestra Commander come mostrato nella seguente schermata.
Scriveremo i comandi nella riga di comando, cioè la casella di testo nella parte inferiore della finestra di comando. Per eseguire o eseguire questi comandi, premere Invio o fare clic sul pulsante Esegui. Possiamo anche scrivere ed eseguire più di un comando online alla volta.
La cronologia dei comandi apparirà nella casella grigia. Fare clic su una riga nella cronologia per farla passare alla rispettiva riga di comando, quindi possiamo apportare modifiche (se necessario). Fatto ciò, premi Invio o fai clic sul pulsante Esegui.
I semplici comandi di disegno del logo spostano la tartaruga avanti e indietro e la ruotano anche a destra oa sinistra. I comandi e le loro abbreviazioni sono riportati di seguito:
- fd - avanti
- bk: indietro
- rt - giusto
- lt - sinistra
- cs - clearscreen
È possibile utilizzare entrambe le versioni di questi comandi. Ad eccezione del comando cs, ciascuno di questi comandi deve essere seguito da un valore chiamato come argomento. Gli argomenti per fd e bk sono unità; quelli di rt e lt sono angoli che possono essere qualsiasi numero intero. Una rotazione di 360 è una rotazione completa, quindi una rotazione di 375 gradi equivale a 1/15 di grado.
forward 60 o fd 60 significa andare avanti di 60 passi
right 90 o rt 90 significa svolta a destra di 90 gradi
left 90 o lt 90 significa svolta a sinistra di 90 gradi
back 60 o bk 60 significa tornare indietro di 60 passi
clearscreen o cssignifica cancellare tutti i disegni. Questo pone la tartaruga al centro
La finestra grafica ha un sistema di coordinate. I valori delle due coordinate (normalmente chiamate xey) al centro sono 0, 0. All'angolo nord-est, sono 250, 250; all'angolo sud-est, sono 250, -250. All'angolo sud-ovest, sono -250, -250; ecc. Se la tartaruga cerca di spostarsi su un lato dello schermo, si avvolge. Il lato destro si avvolge sul lato sinistro e il lato superiore si avvolge in basso.
Molti sistemi di programmazione lavorano sullo stesso tipo di piano di coordinate "xy" a due assi, con cui lavoriamo anche in Algebra.
Qui, "0 0" è il centro o l'origine (nessuna virgola o parentesi qui!). Nel suo stato centrato, zoom- "normale", la schermata di disegno di Logo mostra un'area di circa 150 punti in alto o in basso e 300 punti a destra oa sinistra dal centro.
La tartaruga può essere diretta con intestazioni che corrispondono a una rosa dei venti, con 0 o 360 gradi rivolti verso l'alto, 90 gradi dritti a destra e così via. Puoi impostare una variabile su un numero compreso tra 0 e 360 e poi camminare su quel percorso.
Comandi tartaruga
Ora proviamo alcuni comandi. I comandi verranno emessi uno per riga seguito da un ritorno a capo. Molti di questi comandi possono essere digitati in successione in una finestra di comando seguita da un ritorno a capo. L'effetto sulla tartaruga è lo stesso. Tuttavia, se digiti un comando che richiede uno o più input e fornisci gli input mancanti nella riga successiva, Logo mostrerà un errore.
Di seguito è riportato un comando di pratica, che mostra i risultati desiderati sulla destra.
I comandi - fd 50 rt 120 fd 50 rt 120 fd 50 rt 120, fai disegnare alla tartaruga un triangolo, come puoi vedere provandoli.
Questi comandi vengono letti da sinistra a destra. Dal momento che il comandofdrichiede un argomento, viene preso come valore successivo. Allo stesso modo,rtaccetta anche una discussione. Pertanto, Logo può dare un significato inequivocabile a ciascuna di queste stringhe di caratteri. Per alcuni comandi Logo, sono necessari separatori.
Di seguito sono riportati alcuni comandi di pratica con i risultati desiderati sulla destra.
Di seguito è riportato un esercizio per verificare la tua attitudine a ciò che hai imparato finora in questo capitolo.
Logo ha una serie di altri comandi di disegno, alcuni dei quali sono riportati di seguito.
pu - penup
pd - pendown
ht - hideturtle
dt - showturtle
setpensize
I comandi pendown e penup dicono alla tartaruga di lasciare inchiostro sullo schermo mentre si muove o di non lasciare inchiostro, rispettivamente. Ilhideturtle e showturtlei comandi nascondono o mostrano la tartaruga, ma non influiscono sulla sua capacità di lasciare inchiostro mentre si muove. Il comando home fa tornare la tartaruga al centro dello schermo. Potrebbe lasciare inchiostro quando la tartaruga torna al centro dello schermo. Il comando setpensize decide la dimensione della penna del disegno.
penup o pu significa prendere la penna, in modo da poter spostare la tartaruga senza lasciare tracce.
- pendown o pd significa prendere la penna verso il basso, in modo da poter spostare la tartaruga e lasciare tracce.
- hideturtle o ht significa nascondere la tartaruga, così puoi ammirare il tuo disegno.
- showturtle o st significa mostrare la tartaruga, così puoi continuare a disegnare.
- setpensizesignifica che può rendere la penna più grande, più facile da vedere. La dimensione predefinita della penna è - [1 1].
Di seguito sono riportati alcuni comandi di pratica con i risultati desiderati sulla destra.
Logo ha una serie di altri comandi di disegno aggiuntivi, alcuni di questi sono riportati di seguito.
- home
- testo in chiaro o ct
- label
- setxy
Il comando label accetta una singola parola come stringa tra virgolette (ad es. "A_string") o un elenco di parole tra [] parentesi senza virgolette (ad es. [Una stringa di lettere]) e le stampa sulla finestra grafica nella posizione della tartaruga . Consideriamo il seguente codice.
Il setxyIl comando accetta due argomenti, tratta il primo come il valore dell'ascissa (asse orizzontale) e il secondo come un valore dell'ordinata (asse verticale). Posiziona la tartaruga a queste coordinate, possibilmente lasciando inchiostro mentre raggiunge queste coordinate. Nelle tre figure seguenti abbiamo mostrato come utilizzare il comando setxy.
Il comando cleartext, abbreviato ct, cancella l'area di testo della finestra di comando.
Esercizio
Di seguito è riportato un esercizio per verificare la tua attitudine a ciò che hai imparato finora in questo capitolo.
Che tipo di figura produce la seguente sequenza di comandi?
cs pu setxy -60 60 pd home rt 45 fd 85 lt 135 fd 120
Interpreta questi comandi mentre li leggi da sinistra a destra. Provalo per scoprire il risultato.
Di seguito è riportata una tabella di riepilogo dei comandi.
Nome comando | Scopo |
---|---|
setx 100 | Imposta la coordinata x della tartaruga su +100 Lo sposta di 100 punti a destra del centro Nessun cambiamento verticale |
setx -200 | Sposta la tartaruga di 200 punti a sinistra del centro Nessun cambiamento verticale |
sety 150 | Imposta la coordinata y della tartaruga su 150 Lo sposta di 150 punti sopra il centro Nessun cambiamento orizzontale |
sety - 50 | Muove la tartaruga di 50 punti sotto il centro Nessun cambiamento orizzontale |
setxy 100100 | Sposta la tartaruga sulla coordinata xy 100100 |
mostra xcor mostra ycor |
Riporta la coordinata x della tartaruga Riporta la coordinata y della tartaruga |
setheading 0 seth 0 |
Punta la tartaruga verso l'alto, "mezzogiorno" |
seth 120 | Muove la tartaruga di 120 gradi per indicare la posizione delle quattro |
Lo screenshot seguente è una dimostrazione pratica di alcuni dei comandi precedenti.
Una variabile è il nome di una posizione di memoria che può contenere un valore. In un computer, ogni posizione di memoria ha un indirizzo intero. Poiché sarebbe difficile ricordare l'indirizzo di ogni posizione contenente un valore utilizzato da un programma, gli informatici hanno trovato il modo di dare a questi luoghi nomi simbolici. Una volta che una variabile ha un nome, possiamo usarla e manipolarla.
Alle variabili vengono assegnati nomi che sono stringhe di lettere. Un nome di variabile può contenere alfabeti (senza distinzione tra maiuscole e minuscole), cifre e trattino basso. È possibile accedere a un nome di variabile in un calcolo utilizzando ":" prima di esso. Consideriamo il seguente esempio nello screenshot.
Nell'esempio sopra, abbiamo definito due variabili first_name, 100_last_name_200 e inizializzato con valori Amal e Das utilizzando le seguenti dichiarazioni:
- crea "first_name" Amal
- rendere "100_last_name_200" Das
Inoltre, abbiamo stampato queste due variabili con le istruzioni print: first_name e print: 100_last_name_200.
L'esempio seguente mostra come definire le variabili numeriche:
Qui abbiamo definito due variabili numeriche val1 e val2. Abbiamo anche eseguito addizioni e sottrazioni utilizzandole.
Il logo fornisce le normali operazioni aritmetiche di addizione, sottrazione, moltiplicazione e divisione, indicate dai simboli +, -, *, /. Ciascuna di queste operazioni produce un risultato. Se non fai qualcosa con il risultato, come stamparlo, Logo mostrerà un errore.
Con il comando print, il risultato di un'operazione aritmetica può essere utilizzato e stampato nella finestra dei comandi. Gli esempi forniti nello screenshot seguente dimostrano lo stesso.
Altri comandi utili sono:
sqrt - Accetta un argomento non negativo e restituisce la sua radice quadrata.
power - Richiede due argomenti, chiamali "a" e "b" e genera a alla potenza b.
ln - Richiede un argomento e restituisce il suo logaritmo naturale.
exp - Prende un argomento e calcola e a quella potenza, e è il numero naturale 2.718281828.
log10 - Prende il logaritmo in base 10 del suo unico argomento.
La seguente schermata mostra un esempio dei comandi precedenti con il rispettivo output.
Gli operatori aritmetici hanno una precedenza che determina l'ordine con cui vengono valutati.
Note- print 60 * sqrt 2 e print sqrt 2 * 60 producono risposte diverse. Qui l'operatore * ha la precedenza sull'operatore sqrt. Quindi, * sarà fatto prima di sqrt, se c'è una scelta, come nel secondo caso.
Per questo motivo, la prima istruzione stampa il valore di 60 volte la radice quadrata di 2, mentre la seconda istruzione stampa la radice quadrata di 120 come mostrato nello screenshot seguente.
Spesso ripetiamo una sequenza di comandi. I programmi per computer spesso eseguono attività ripetitive. Quasi ogni sistema di programmazione ha un modo per eseguire questa ripetizione, o iterazione, come la chiamano gli informatici. Consideriamo il seguente esempio:
Supponiamo di voler disegnare un quadrato con lati di lunghezza 100, possiamo farlo con il seguente programma:
fd 100
rt 90
fd 100
rt 90
fd 100
rt 90
fd 100
rt 90
Notiamo che i due comandi - fd 100 e rt 90 vengono ripetuti quattro volte. Non sarà più semplice dire al computer che dovrebbe semplicemente ripetere questi due comandi quattro volte invece di scriverli quattro volte di seguito? Possiamo fare esattamente questo, usando il seguente comando:
Risparmia il nostro tempo di digitare per creare un quadrato. La forma generale è:repeat number [commands]. Dobbiamo usare la parola chiave -repeat seguito da un numero e quindi da una sequenza di comandi tra [parentesi quadre].
Spesso, potremmo dover ripetere più volte. Questo è chiamatonesting. Vediamo alcuni esempi su questo.
Di seguito è riportato un esercizio per verificare la tua attitudine a ciò che hai imparato finora in questo capitolo.
A volte è divertente avere un risultato imprevedibile di un calcolo. Il logo fornisce una procedura casuale per generare un numero casuale. Ha un argomento e produce un valore intero scelto in modo uniforme in modo casuale, che è maggiore o uguale a 0 e minore del valore del suo argomento. Pertanto, se desideri un angolo casuale compreso tra 0 e 359 gradi, puoi utilizzare il comandorandom 360per produrlo. Tieni presente che il logo mostrerà un errore a meno che tu non faccia qualcosa con il risultato, come la stampa.
Guardiamo il seguente esempio:
Abbiamo emesso il comando: print random 360 più volte nella finestra di comando sopra e, se noti, ogni volta genera un output casuale.
Di seguito sono riportati alcuni comandi di pratica con i risultati desiderati sulla destra.
Le procedure forniscono un modo per incapsulare una raccolta di comandi. Una volta che una procedura è stata creata, può essere utilizzata nello stesso modo in cui viene utilizzato un comando integrato. Il "significato" di una procedura è il significato dei suoi singoli comandi.
Una procedura senza argomenti ha la parola "a" (una parola riservata) e il nome della procedura sulla prima riga. (Le parole riservate in Logo non possono essere utilizzate come variabili e hanno un significato e un uso ben definiti.) Ha la parola riservata "end" nell'ultima riga.
Un sottoprogramma è una sequenza denominata di passaggi che deve essere eseguita da un altro programma. Altri nomi per i sottoprogrammi sono procedure e funzioni. In Logo, dici al computer come fare qualcosa, ad esempio
to square
repeat 4 [fd 100 rt 90]
end
Una volta che abbiamo descritto la nostra procedura in Logo, possiamo inserire il suo nome sulla riga di comando, proprio come faremmo con qualsiasi cosa incorporata. In questo caso, dovremmo digitare "quadrato" sulla riga di comando e Logo cerca i comandi per creare un quadrato.
Fare clic sul pulsante che dice Edall(per modificare tutto) per visualizzare l'editor integrato di Logo. (Se il tuo logo non ha un pulsante Edall, digita "edall" sulla riga di comando). Il seguente blocco di codice ha la struttura richiesta del sottoprogramma.
to procedurename
steps of your procedure here
end
La procedura o il sottoprogramma deve iniziare con la parola "a", seguita da un nome a cui pensiamo. Il passaggio successivo consiste nel digitare tutti gli stessi passaggi che scriveremmo sulla riga di comando. La procedura deve terminare con la parola "fine". Tutte le righe di commento o annotazione devono essere precedute da punto e virgola (;).
Di seguito è riportata la dimostrazione pratica dell'esempio precedente:
Ora, dalla riga di comando, esegui la procedura utilizzando il suo nome "quadrato" come mostrato di seguito -
Le procedure non solo possono contenere comandi incorporati, ma possono anche contenere altre procedure.
Nell'esempio seguente, una procedura "fiore" chiama la nostra procedura predefinita "quadrato" dal suo corpo.
La seguente schermata mostra l'output quando viene chiamata la procedura "fiore" -
Non vogliamo che ogni quadrato abbia le stesse dimensioni, vogliamo varietà. In Logo, creiamo variabili, i cui valori possiamo cambiare. Useremo la stessa procedura quadrata con una piccola modifica nel seguente esempio.
to square :n
repeat 4 [fd :n rt 90]
end
Diamo a Logo un valore sostitutivo per ': n' sulla riga di comando come mostrato di seguito.
square 50
square 75
square 100
Ecco la dimostrazione pratica dell'esempio sopra:
Parliamo ora di come passare due argomenti a una procedura. Lo screenshot seguente è una dimostrazione pratica dello stesso.
In una procedura ricorsiva, ci sarà una chiamata di ricorrenza della procedura all'interno della procedura. Consideriamo il seguente codice:
to spiral_recur :n
if :n < 1 [stop]
fd :n
rt 20
spiral_recur 0.95 * :n
end
La procedura spiral_recur è stata chiamata dal corpo della procedura stessa. Lo screenshot seguente mostra l'esecuzione e l'output del codice.
Il processo decisionale e le variabili vanno insieme. Un programma deve poter cambiare rotta a seconda della situazione. Ecco, ad esempio, una struttura per disegnare una spirale. Ha un loop, una variazione sulla ripetizione mostrata in precedenza e il corpo del loop è per noi da riempire.
to spiral
make "n 1
while [:n < 100] [
make "n :n + 5
fd :n rt 90
]
end
Il codice sopra mostra diverse nuove funzionalità della sintassi del logo MSW. Impostiamo una variabile su un nuovo valore digitando "make", quindi il nome della variabile è preceduto da virgolette doppie "anziché da due punti": "come mostrato di seguito.
make "n 1
Tuttavia, utilizziamo una variabile con i due punti ":" davanti al nome.
while [:n < 100]
Il codice racchiuso tra parentesi dopo la 'while [condizione]' viene eseguito, mentre la condizione è vera. Quando non è più vero, perché (in questo caso) il valore di ': n' cresce maggiore di 100, viene eseguito il codice che segue la parentesi.
La seguente schermata mostra l'esecuzione e l'output del codice precedente.
Ora, discuteremo l'uso di "istruzioni if", che hanno un codice che verrà eseguito solo quando una data condizione è vera.
Mostra anche un logo integrato che genera numeri casuali. La dichiarazionerandom 3genera qualsiasi numero 0 o 1 o 2 arbitrariamente in una sequenza casuale. La procedura decide quindi da che parte andare "a caso". Il numero casuale generato verrà mantenuto in "r" e successivamente a seconda del valore della variabile "r" verrà eseguita una delle istruzioni if, che soddisferà la condizione. Quindi se il -
- Il valore di "r" è 0, quindi [fd 20] sarà eseguito.
- Il valore di "r" è 1, quindi [rt 90 fd 20] sarà eseguito.
- Il valore di "r" è quindi 2 [lt 90 fd 20] sarà eseguito.
La seguente schermata mostra l'esecuzione e l'output della discussione precedente.
Qualsiasi sequenza di caratteri alfanumerici, ad esempio - "america", "emp1234", ecc. Sono esempi di una stringa. Il conteggio dei caratteri è il più basilare di tutti i processi di stringa. La risposta alla domandastringlength "abc12ef è dato dalla seguente procedura:
to stringlength :s
make "inputstring :s
make "count 0
while [not emptyp :s] [
make "count :count + 1
print first :s
make "s butfirst :s
]
print (sentence :inputstring "has :count "letters)
end
Nella procedura precedente –'s 'è la variabile contenente la stringa di input. La variabile inputstring contiene la copia della stringa di input. Il conteggio delle variabili viene inizializzato con 0. Nel ciclo while, la condizione controlla se la stringa è diventata vuota o meno. In ogni conteggio del ciclo, una variabile viene aumentata di 1 per contenere il conteggio della lunghezza. La dichiarazioneprint first :s, stampa solo il primo carattere della stringa memorizzata in "s".
La dichiarazione make "s butfirst :s, recupera la sottostringa escludendo il primo carattere. Dopo essere usciti dal ciclo while, abbiamo stampato il conteggio dei caratteri o la lunghezza della stringa di input. Di seguito è riportata l'esecuzione e l'output del codice.
Gli schermi dei computer funzionano con componenti di luce rossa, verde e blu, quindi a volte vengono chiamati RGB screens.
Nel menu Set di Logo, possiamo impostare il colore di tre elementi dello schermo:
- La penna della tartaruga
- Il riempimento della tartaruga (come un secchio di vernice per i recinti)
- Lo sfondo dello schermo
Impostiamo un colore spostando questi tre cursori a sinistra ea destra. Ricorda che il nero è l'assenza di tutti i colori e il bianco è tutti i colori insieme. Mescolare la luce non è come mescolare la vernice. Ad esempio, se mescoli vernice rossa e verde, ottieni un colore fangoso. Poiché si tratta di un computer, ogni colore ha una rappresentazione numerica interna.
All'estremità sinistra della scala mobile è zero (0). All'estremità destra c'è 255, che è un po 'come 99 per un computer (è 2 8 - 1). Quindi il nero è [0 0 0], il rosso è [255 0 0], il verde è [0 255 0], il blu è [0 0 255]. Puoi fare qualsiasi cosa tra questi colori e in tutti questi ci sono 256 * 256 * 256 colori possibili. Questo è 2 8 * 2 8 * 2 8 , o 24 bit di colore - 24 cifre binarie all'interno della macchina.
I seguenti comandi ti daranno una grande penna rossa grassa:
setpensize [5 5]
setpencolor [255 0 0]
Quando trovi un colore che ti piace usando i cursori, puoi chiedere a Logo di cosa si tratta: scegli il colore della penna, quindi nella finestra di comando, inserisci il seguente comando.
show pencolor
Lo screenshot seguente mostra l'esecuzione e l'output del codice precedente.
Puoi creare un quadrato colorato usando i seguenti passaggi:
Step 1 - Disegna il quadrato con lato lunghezza 40 utilizzando il seguente comando.
repeat 4 [fd 40 rt 90]
Step 2 - Penna usando il seguente comando.
pu
Step 3- Vai in un punto all'interno della piazza. Ad esempio, posiziona la tartaruga alla coordinata (20, 20) usando il seguente comando.
setxy 20 20
Step 4- Riempi il quadrato con il colore flood impostato. Ad esempio, per impostare il colore flood su blu, utilizzare il seguente comando.
setfloodcolor [0 0 255]
La tabella seguente elenca alcuni altri comandi relativi a Colore e penna.
Comando Colore e penna | Scopo del comando |
---|---|
setpencolor [rgb] setpc [rgb] |
Imposta il colore per la penna della tartaruga rgb sono numeri nell'intervallo [0, 255] |
setfloodcolor [rgb] setfc [rgb] |
Imposta il colore per un'area approvata |
setscreencolor [rgb] setsc [rgb] |
Imposta il colore per lo sfondo |
mostra pencolor mostra floodcolor mostra screencolor |
Specifica i valori correnti per [rgb] di un elemento denominato |
Riempire |
Scarica un bucket del colore flood corrente nella posizione del cursore |
Riempire |
Scarica un bucket del colore flood corrente nella posizione del cursore |
Prova a eseguire il seguente set di comandi:
cs - Per cancellare lo schermo.
home - Per portare la tartaruga a casa.
setpensize [5 5] - Impostazione della dimensione della penna.
setpencolor [255 0 0] - Impostare il colore della penna sul rosso.
setfloodcolor [0 0 255] - Impostazione del colore dell'inondazione su blu.
setscreencolor [0 255 0] - Impostazione del colore dello schermo sul verde.
repeat 4 [fd 40 rt 90] - Disegna un quadrato con lato lungo 40.
pu - Penna in alto.
setxy 20 20 - Metti la tartaruga alle coordinate (20, 20).
fill - Riempi il quadrato con il colore blu impostato.
ht - Nascondi tartaruga.
Dovresti ricevere il seguente output all'esecuzione dei comandi precedenti.