![]() |
Classe
3R ![]() ![]() Il cellulare potrebbe fare male quindi... (il principio di precauzione) Entro sabato 24 ottobre fare gli esercizi a casa su google drive. |
![]() |
![]() |
|
![]() |
|
![]() |
|
Group | Type names* | Notes on size / precision |
---|---|---|
Character types | char |
Exactly one byte in size. At least 8 bits. |
char16_t |
Not
smaller than char .
At least 16 bits. |
|
char32_t |
Not
smaller than char16_t .
At least 32 bits. |
|
wchar_t |
Can represent the largest supported character set. | |
Integer types (signed) | signed
char |
Same
size as char .
At least 8 bits. |
signed short int |
Not
smaller than char .
At least 16 bits. |
|
signed int |
Not
smaller than short .
At least 16 bits. |
|
signed long int |
Not
smaller than int .
At least 32 bits. |
|
signed long long int |
Not
smaller than long .
At least 64 bits. |
|
Integer types (unsigned) | unsigned
char |
(same size as their signed counterparts) |
unsigned
short int |
||
unsigned int |
||
unsigned
long int |
||
unsigned
long long int |
||
Floating-point types | float |
|
double |
Precision
not less than float |
|
long
double |
Precision
not less than double |
|
Boolean type | bool |
|
Void type | void |
no storage |
Null pointer | decltype(nullptr) |
int
has the natural size suggested by the system architecture (one "word")
and the four integer types char
, short
, int
and long
must each one be at least as large as the one
preceding it, with char
being always one byte in size.
The same applies to the floating point types float
, double
and long double
, where each one must provide at least as
much precision as the preceding one.concetti di overflow e underflow, dichiarazioni, shift logico ed aritmetico
la calcolatrice di windows modalità programmatore: basi 2 8 10 e 16.
potenze
di due (ancora!)
programma voti/media in quitebasic
differenze quitebasic e c++
istruzioni
commenti
dichiarazioni
nomi variabili
ciclo FOR/NEXTFeatures
|
nesting
dei cicli, con indentazione.
long long int
esercizio a casa.
genealogia c++
![]() |
![]() |
echo off rem questo è un commento :: questo è un altro commento rem procedura di comandi che pinga tutti gli IP di una sottorete echo procedura di comandi che pinga tutti gli IP di una sottorete echo la tua versione di windows: ver rem cambiamo il prompt prompt cip$G rem inviamo il risultato del comando ipconfig ">" nel file ip.txt ipconfig > ip.txt rem cerchiamo all'interno del file ip.txt la parola "Indirizzo" è i record che la contengono vengono messi in ind.txt find "Indirizzo" ip.txt > ind.txt echo il tuo indirizzo IP: type ind.txt findstr /O /A:AA ". :" ind.txt echo.Date : %date% echo.ip : %date:~6,4% color 0a echo ------------------------------------------- echo introdurre indirizzo di rete escluso ultimo byte es: 192.168.1 set /p rete=Indirizzo IP rete? echo %rete% for /L %%X in (8,1,24) do ( echo %rete%.%%X ping -n 2 %rete%.%%X ECHO. errorlevel ping %ERRORLEVEL%) rem find "Persi = 2" pin.txt rem ECHO. errorlevel find %ERRORLEVEL%) rem tree rem echo il primo parametro IP (ultimo byte) rem for %%X in (100 101 102 103) do ping -n 1 %rete%.%%X |
<HTML> |
100 rem programma che calcola la media voti 200 rem V è il voto 300 rem M è la media 400 rem M1 è il minimo 500 rem M2 è il massimo 510 rem A2 conta i voti 520 REM S è la somma dei voti 550 let M=0 560 let a2=0 570 print " ****ATTENZIONE!!!**** se voto negativo allora fine programma" 600 input "dammi il voto";V 640 if V < 0 then gosub 3000 650 let A2=A2+1 700 print " il voto è: ";V 720 rem print "minimo: ";M1 730 rem print "Massimo: ";M2 750 let S=S+V 760 print "La somma è: ";S 780 GOTO 600 800 print "fine" 2000 end
3000 REM subroutine 3100 let M=S/A2 3200 print "la media è ";M 3250 end 3300 return |
X86 (CISC, istruzioni a
lunghezza variabile) |
ARM (RISC,
istruzioni a lunghezza fissa di 32 bit.) |
NOP , No OPeration, 0x90
equivalente a XCHG EAX, EAX è lunga 1 byte. |
NOP, No OPeration 0x00000000 sta
per andeq r0,r0,r0 che significa se EQ vero allora R0=R0 AND R0 |
-fabi-version=n -fno-access-control -fcheck-new |
Versione Basic 42,7 secondi di
esecuzione per 30K lanci. (senza print dei singoli risultati) |
versione
c++ 7 secondi di compilazione e 12 CENTESIMI di secondo in esecuzione.
(c'è un bug, premio speciale a chi scopre qual'è). |
Sempre Basic però con le
istruzioni commentate tolte dal loop: 26 secondi. |
300 array D 320 for i=1 to 6 330 let D[i]=0 340 next i 400 for i=1 to 30000 420 LET K=int(rand(6))+1 450 rem print "K= ";K 500 LET D[K]=D[K]+1 550 rem print "D[K]= ";D[K] 600 next i 700 for i=1 to 6 800 print "Dado "; I; " "; D[I] 900 next i 2000 end |
#include
<stdlib.h> /* srand, rand */ #include <time.h> /* time */ #include<iostream> using namespace std; int main () { int dado, i=1; int cont [6]; //l'array i contiene sei elementi srand (time(NULL)); //questo in basic non serve. Puoi provare ad inizializzare il seme //anzichè con l'orologia della macchina con un numero fisso e verificare perchè la sequenza si chiama PSEUDOcasuale /* genera lancio dado fra 1 e 6 compresi */ i=1; do { cont[i]=0; i++; } while (i<7); i=1; do { dado = rand() % 6 + 1; // cout<<"Dado: "<<dado<<endl; cont[dado]++; i++; } while (i<30000); /* stampo il numero di occorrenze di ogni evento*/ i=1; do { cout<<"Cont["<<i<<"]="<<cont[i]<<endl; i++; } while (i<7); cout<<"Ho finito"<<endl; return 0; system("pause"); } |
300 array D 320 for i=1 to 6 330 let D[i]=0 340 next i 400 for i=1 to 30000 420 LET K=int(rand(6))+1 500 LET D[K]=D[K]+1 600 next i 700 for i=1 to 6 800 print "Dado "; I; " "; D[I] 900 next i 2000 end 450 rem print "K= ";K 550 rem print "D[K]= ";D[K] |
echo off rem questo è un commento :: questo è un altro commento rem procedura di comandi che pinga tutti gli IP di una sottorete echo procedura di comandi che pinga tutti gli IP di una sottorete echo la tua versione di windows: ver rem cambiamo il prompt prompt cip$G rem inviamo il risultato del comando ipconfig ">" nel file ip.txt ipconfig > ip.txt rem cerchiamo all'interno del file ip.txt la parola "Indirizzo" è i record che la contengono vengono messi in ind.txt find "Indirizzo" ip.txt > ind.txt echo il tuo indirizzo IP: type ind.txt findstr /O /A:AA ". :" ind.txt echo.Date : %date% echo.ip : %date:~6,4% color 0a echo ------------------------------------------- echo introdurre indirizzo di rete escluso ultimo byte es: 192.168.1 set /p rete=Indirizzo IP rete? echo %rete% for /L %%X in (8,1,24) do ( echo %rete%.%%X ping -n 2 %rete%.%%X ECHO. errorlevel ping %ERRORLEVEL%) rem find "Persi = 2" pin.txt rem ECHO. errorlevel find %ERRORLEVEL%) rem tree rem echo il primo parametro IP (ultimo byte) rem for %%X in (100 101 102 103) do ping -n 1 %rete%.%%X |
fortran |
basic |
c++ |
apl |
COBOL |
pascal |
Python |
.ne. |
<> |
!= |
A≠B | is not = |
<> |
!= oppure
<> |
Windows |
Windows |
Linux |
Linux |
|
cout << '\a'; |
|
|
Quitebasic |
C++ |
dichiarazioni: nulla |
dichiarazioni |
LEFT(string, n) -- return s
the 'n' first characters for 'string'. For example, try this program: RIGHT(string, n) -- returns the 'n' last
characters for 'string'. For example: MID(string, start, n) -- returns 'n' characters
starting at character 'start' (the first character is index zero). For
example, try this program: LEN(string) -- Returns the length of a string. UPPERCASE(string) -- returns 'string'
converted uppercase. LOWERCASE(string) -- returns 'string' converted lowercase. per concatenare stringhe si usa l'operatore "+" es:
|
|
Nel quickbasic dichiarazione implicita delle variabili secondo l’ultimo carattere del nome oppure esplicita
intero% oppure
DIM intero
AS
INTEGER è
una variabile intera
virgola! o DIM virgola
AS SINGLE
è una variabile float in singola precisione.
brainstorming
sostantivo
|
Sinteticamente consiste, dato un problema, organizzare una riunione in cui ogni partecipante propone liberamente soluzioni di ogni tipo (anche strampalate, paradossali o con poco senso apparente) al problema, senza che nessuna di esse venga minimamente censurata. La critica ed eventuale selezione interverrà solo in un secondo tempo, terminata la seduta di brainstorming. |
passaggio parametri/argomenti
parametri: esempio macchina caffè automatica.
Variabili globali e locali
Codice rientrante
Passaggio parametri:
registri (convenzioni, salvataggio)
stack
Passaggio per
valore (call by value)
indirizzo (call by reference)
Uso dello stack per passaggio argomenti
|
|
|
L’aliante…….
bounds checking
Pascal
e Modula effettuano il
bounds
checking
ad ogni accesso
https://it.wikipedia.org/wiki/Controllo_dei_limiti
buffer
overflow
#include <iostream.h> |
500 rem programma ricorsivo che calcola il fattoriale di un numero 600 cls 65 let F=1 700 input "dammi il numero ";N 800 print "il fattoriale di ";N;" è "; 900 gosub 2000 1000 end 2000 rem calcolo fattoriale F 2100 let f=F*N 2200 let n=n-1 2300 if n<>0 then gosub 2000 2400 print f 2500 return |