Inform e Glulx/Le basi di Inform/Un po' di matematica non guasta mai: differenze tra le versioni

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
m +indice
Gian BOT (discussione | contributi)
m Bot: sostituzione tag obsoleti
 
Riga 1: Riga 1:
{{Inform e Glulx}}
{{Inform e Glulx}}
In Inform, ci sono quattro [[w:Operatore (informatica)|operatori aritmetici]] fondamentali:
In Inform, ci sono quattro [[w:Operatore (informatica)|operatori aritmetici]] fondamentali:
* il segno di moltiplicazione (*) &nbsp;&#x27A8;&nbsp; <tt>a = 10 * 5;</tt>
* il segno di moltiplicazione (*) &nbsp;&#x27A8;&nbsp; <code>a = 10 * 5;</code>
* il segno di divisione (/) &nbsp;&#x27A8;&nbsp; <tt>a = 10 / 5;</tt>
* il segno di divisione (/) &nbsp;&#x27A8;&nbsp; <code>a = 10 / 5;</code>
* il segno di addizione (+) &nbsp;&#x27A8;&nbsp; <tt>a = 10 + 5;</tt>
* il segno di addizione (+) &nbsp;&#x27A8;&nbsp; <code>a = 10 + 5;</code>
* il segno di sottrazione (–) &nbsp;&#x27A8;&nbsp; <tt>a = 10 – 5;</tt>
* il segno di sottrazione (–) &nbsp;&#x27A8;&nbsp; <code>a = 10 – 5;</code>


Quando un’operazione aritmetica richiede l’utilizzo di più operatori aritmetici, ci troviamo di fronte a un’'''espressione''' &nbsp;&#x27A8;&nbsp; <tt>a = (((10*5) + (10-3)) * 6) + (-9);</tt><br>
Quando un’operazione aritmetica richiede l’utilizzo di più operatori aritmetici, ci troviamo di fronte a un’'''espressione''' &nbsp;&#x27A8;&nbsp; <code>a = (((10*5) + (10-3)) * 6) + (-9);</code><br>
In questo caso bisogna fare molta attenzione all’ordine con cui gli operatori lavorano. Infatti, se scriviamo "4 + 2 * 8" e "4 * 2 + 8", avremo come risultato "20" nel primo caso e "16" nel secondo (vengono cioè eseguite, in ordine di priorità, prima le moltiplicazioni e poi le addizioni). Possiamo quindi affermare che:
In questo caso bisogna fare molta attenzione all’ordine con cui gli operatori lavorano. Infatti, se scriviamo "4 + 2 * 8" e "4 * 2 + 8", avremo come risultato "20" nel primo caso e "16" nel secondo (vengono cioè eseguite, in ordine di priorità, prima le moltiplicazioni e poi le addizioni). Possiamo quindi affermare che:
* '''gli operatori aritmetici lavorano in ordine di priorità: in un’espressione aritmetica viene eseguita per prima la moltiplicazione e, a seguire, la divisione, l’addizione e la sottrazione. ne consegue che''':
* '''gli operatori aritmetici lavorano in ordine di priorità: in un’espressione aritmetica viene eseguita per prima la moltiplicazione e, a seguire, la divisione, l’addizione e la sottrazione. ne consegue che''':
Riga 23: Riga 23:


{| align=center width=50% border=0
{| align=center width=50% border=0
| align=center|<tt>a = b + 20;</tt>
| align=center|<code>a = b + 20;</code>
| align=center|<tt>b = (c * 60) + (b / 30);</tt>
| align=center|<code>b = (c * 60) + (b / 30);</code>
| align=center|<tt>d = (b + 7) * (b - 8);</tt>
| align=center|<code>d = (b + 7) * (b - 8);</code>
|}
|}


Riga 31: Riga 31:


{| align=center width=50% border=0
{| align=center width=50% border=0
| align=center|<tt>a = a + 2;</tt>
| align=center|<code>a = a + 2;</code>
| align=center|<tt>b = b + 5;</tt>
| align=center|<code>b = b + 5;</code>
| align=center|<tt>b = b – a;</tt>
| align=center|<code>b = b – a;</code>
| align=center|<tt>b = b – (a + 3);</tt>
| align=center|<code>b = b – (a + 3);</code>
|}
|}


Quindi, supponendo che <tt>a</tt> abbia il valore "12" e che <tt>b</tt> abbia il valore "6", avremo:
Quindi, supponendo che <code>a</code> abbia il valore "12" e che <code>b</code> abbia il valore "6", avremo:


{| style="width:100%; background:trasparent"
{| style="width:100%; background:trasparent"
| align="center" |
| align="center" |
{| class="wikitable"
{| class="wikitable"
| align=center|&nbsp;<tt>a = a + 2</tt>&nbsp;
| align=center|&nbsp;<code>a = a + 2</code>&nbsp;
| align=center|&nbsp;<tt>b = b – a</tt>&nbsp;
| align=center|&nbsp;<code>b = b – a</code>&nbsp;
| align=center|&nbsp;<tt>b = b – (a + 3)</tt>&nbsp;
| align=center|&nbsp;<code>b = b – (a + 3)</code>&nbsp;
|-
|-
| align=center|&nbsp;<tt>a = 12 + 2</tt>&nbsp;
| align=center|&nbsp;<code>a = 12 + 2</code>&nbsp;
| align=center|&nbsp;<tt>b = 6 - 12</tt>&nbsp;
| align=center|&nbsp;<code>b = 6 - 12</code>&nbsp;
| align=center|&nbsp;&nbsp;<tt>b = 6 – (12 + 3)</tt>&nbsp;
| align=center|&nbsp;&nbsp;<code>b = 6 – (12 + 3)</code>&nbsp;
|-
|-
| align=center|&nbsp;<tt>a = 14</tt>&nbsp;
| align=center|&nbsp;<code>a = 14</code>&nbsp;
| align=center|&nbsp;<tt>b = -6</tt>&nbsp;
| align=center|&nbsp;<code>b = -6</code>&nbsp;
| align=center|&nbsp;<tt>b = –9</tt>&nbsp;
| align=center|&nbsp;<code>b = –9</code>&nbsp;
|}
|}
|}
|}




Se vogliamo poi incrementare o decrementare il valore contenuto in una variabile di 1, esistono delle forme abbreviate<ref><tt>b++</tt> e <tt>++b</tt> (così come <tt>b--</tt> e <tt>--b</tt>) hanno esattamente lo stesso effetto sulla variabile <tt>b</tt> e la differenza sta solo nel valore delle espressioni.</ref>:
Se vogliamo poi incrementare o decrementare il valore contenuto in una variabile di 1, esistono delle forme abbreviate<ref><code>b++</code> e <code>++b</code> (così come <code>b--</code> e <code>--b</code>) hanno esattamente lo stesso effetto sulla variabile <code>b</code> e la differenza sta solo nel valore delle espressioni.</ref>:
* <tt>b++</tt> &nbsp;&#x27A8;&nbsp; viene '''prima''' assegnato il nuovo valore alla variabile e '''dopo''' viene incrementato di 1;
* <code>b++</code> &nbsp;&#x27A8;&nbsp; viene '''prima''' assegnato il nuovo valore alla variabile e '''dopo''' viene incrementato di 1;
* <tt>++b</tt> &nbsp;&#x27A8;&nbsp; viene '''prima''' incrementato di 1 il nuovo valore e '''dopo''' viene assegnato alla variabile;
* <code>++b</code> &nbsp;&#x27A8;&nbsp; viene '''prima''' incrementato di 1 il nuovo valore e '''dopo''' viene assegnato alla variabile;
* <tt>b--</tt> &nbsp;&#x27A8;&nbsp; viene '''prima''' assegnato il nuovo valore alla variabile e '''dopo''' viene decrementato di 1;
* <code>b--</code> &nbsp;&#x27A8;&nbsp; viene '''prima''' assegnato il nuovo valore alla variabile e '''dopo''' viene decrementato di 1;
* <tt>--b</tt> &nbsp;&#x27A8;&nbsp; viene '''prima''' decrementato di 1 il nuovo valore e '''dopo''' viene assegnato alla variabile;
* <code>--b</code> &nbsp;&#x27A8;&nbsp; viene '''prima''' decrementato di 1 il nuovo valore e '''dopo''' viene assegnato alla variabile;


== Note ==
== Note ==

Versione attuale delle 20:03, 3 ago 2018

Indice del libro

In Inform, ci sono quattro operatori aritmetici fondamentali:

  • il segno di moltiplicazione (*)  ➨  a = 10 * 5;
  • il segno di divisione (/)  ➨  a = 10 / 5;
  • il segno di addizione (+)  ➨  a = 10 + 5;
  • il segno di sottrazione (–)  ➨  a = 10 – 5;

Quando un’operazione aritmetica richiede l’utilizzo di più operatori aritmetici, ci troviamo di fronte a un’espressione  ➨  a = (((10*5) + (10-3)) * 6) + (-9);
In questo caso bisogna fare molta attenzione all’ordine con cui gli operatori lavorano. Infatti, se scriviamo "4 + 2 * 8" e "4 * 2 + 8", avremo come risultato "20" nel primo caso e "16" nel secondo (vengono cioè eseguite, in ordine di priorità, prima le moltiplicazioni e poi le addizioni). Possiamo quindi affermare che:

  • gli operatori aritmetici lavorano in ordine di priorità: in un’espressione aritmetica viene eseguita per prima la moltiplicazione e, a seguire, la divisione, l’addizione e la sottrazione. ne consegue che:
    • in un’espressione aritmetica le singole operazioni devono essere sempre racchiuse da delle parentesi tonde;
    • a ogni parentesi tonda aperta, ne deve sempre corrispondere una tonda chiusa.

Se vogliamo quindi sommare "4 + 2" e moltiplicare poi il risultato ottenuto per "8", avremo: "(4 + 2) * 8".


In Inform è anche possibile usare l’operatore % per ottenere il resto di una divisione. Quindi:

  • "15/5" darà come risultato "3", mentre "15%5" darà come risultato "0";
  • "17/5" darà come risultato "3", mentre "17%5" darà come risultato "2";
  • non è invece possibile dividere per 0 (come d’altra parte la stessa matematica ci insegna) così come non è possibile usare i numeri con la virgola (ad esempio 6.34).


È anche possibile operare sui valori contenuti all’interno delle variabili. Ecco dei possibili esempi:

a = b + 20; b = (c * 60) + (b / 30); d = (b + 7) * (b - 8);

Spesso poi, il contenuto di una variabile può essere incrementato o decrementato di un certo valore, come avviene nei seguenti esempi:

a = a + 2; b = b + 5; b = b – a; b = b – (a + 3);

Quindi, supponendo che a abbia il valore "12" e che b abbia il valore "6", avremo:

 a = a + 2   b = b – a   b = b – (a + 3) 
 a = 12 + 2   b = 6 - 12    b = 6 – (12 + 3) 
 a = 14   b = -6   b = –9 


Se vogliamo poi incrementare o decrementare il valore contenuto in una variabile di 1, esistono delle forme abbreviate[1]:

  • b++  ➨  viene prima assegnato il nuovo valore alla variabile e dopo viene incrementato di 1;
  • ++b  ➨  viene prima incrementato di 1 il nuovo valore e dopo viene assegnato alla variabile;
  • b--  ➨  viene prima assegnato il nuovo valore alla variabile e dopo viene decrementato di 1;
  • --b  ➨  viene prima decrementato di 1 il nuovo valore e dopo viene assegnato alla variabile;

Note[modifica]

  1. b++ e ++b (così come b-- e --b) hanno esattamente lo stesso effetto sulla variabile b e la differenza sta solo nel valore delle espressioni.