Ciao a tutti
In vista dell'estate avevo intenzione di scrivere tutte le cose che so di programmazione per ricordarmele e poi mi sono detto "Perché non fare una guida?"
Bene, inizamo
Nozioni basilari
>Per far svolgere al computer il programma devi cliccare su compila ed esegui(in altro a destra, non i quattro quadrato colorato, non il "calendario" vuoto ma il calendario con i 4 quadrati colorati)
>Alla fine di ogni cosa che fai (non so come metterlo in altro modo
) bisogna mettere ; tranne in specifici casi
Es. x=10;
>La parentesi graffa si fa tenendo premuto alt+123 della parte destra(per chiuderla alt+125 della parte destra)
>Un modo utile per capire e far capire che cosa si sta facendo è commentare
Il commento si fa inserendo // e il tuo commento
Es. //Qui si sommano i numeri dispari
Con il // però si può commentare una sola riga
Per risolvere questo problema si può utilizzare /*
Così facendo ogni cosa che scriverai dopo sarà considerato commento fino all'inserimento di */
>Si usa per la moltiplicazione * e per la divisione /
>per far sì che il computer ti mostri sullo schermo quello che vuoi devi mettere cout<<
Per distinguere le lettere dalle variabili (ne parlo sotto) devi inserire, per il primo le parole tra le "" mentre per le seconde le lettere normali
Per fare un miscuglio tra i due devi separarli con un'altro >>
Es. cout<<"Il numero finale e' " <<x;
Se x è uguale a 10 il computer scriverà:
Il numero finale e' 10
A me non ha particolarmente aiutato ma per distinguere le << del cout dalle >> del cin(ne parlo sotto) puoi pensarlo come il dato che,seguendo la direzione delle freccie, va in uscita
Cioè dalla cosa che scrivi cout<<"Il numero di a le e'<<x; all'esterno del computer
>Per far sì che il computer attenda che tu inserisca qualcosa devi mettere cin
Es. cin>>x;
Se tu inserisci 10 da quel momento in poi
ogni x è uguale a 10
VariabiliLe variabili sono associazioni di lettere a numeri o associazioni di lettere a caratteri
Per le variabili intere si usa int mentre per tutte le altre float
In realtà non è così semplice, ma per quello che serve attualmente va benissimo
Per separare una variabile dall'altra si usa ,
Es. Se vogliamo calcolare l'area di un quadrato
float area,x;
cout<<"Inserisci il lato del quadrato";
cin>>x;
Area=x*x;
cout<<"L'area del quadrato è'" <<x;
>Per andare a fine linea si può usare /n oppure endl
Es. Cout<<x<<endl;
Basi per iniziarePer iniziare a programmare devi ovviamente avere dev C++ e inserire il codice qua sotto
Dove ci sono i ... Puoi scrivere tutto il programma
#include<iostream>
#include <cmath>
#include<ctime>
#include <cstdlib>
using namespace std;
Int main()
{
...
}
>cmath serve per fare operazioni più complesse che altrimenti non si potrebbe fare, come as esempio la radice quadrata(sqrt)
File sorgenteScrivere ogni santa volta questa pappardella può risultare molto scomodo e noioso, per risolvere bisogna
>Aprire dev C++
>cliccare su strumenti
>cliccare su opzioni dell'editor
>cliccare su codice
>cliccare(sotto) su sorgente predefinito
>Scrivere il codice sopra
>cliccare ok
Bene, da adesso in poi ogni volta che cliccherai su
>file
>nuovo
>file sorgente
Ti apparirà
CITAZIONE
#include<iostream>
#include <cmath>
#include<ctime>
#include <cstdlib>
using namespace std;
int main()
{
...
}
if, else, else ifSpiegazione:
Se una condizione è vera all'ora fai una serie di cose, altrimenti ne fai delle altre
Analisi sintattica (?)
if(condizione da porre)
{ /*Qui scrivi il programma se la condizione è vera*/}
else
{/*Qui scrivi il programma se la condizione è falsa*/}
Es. if(x>=6) {cout<<"Sufficente";}
else{cout<<"insufficiente";}
Note
Le parentesi non hanno il ;
>Puoi anche omettere l'else {}, in questo caso, se la condizione è falsa, continuerà normalmente con il programma
Per evitare di incasinarsi troppo con le parentesi facendo tanti if dentro if, esiste else if
Praticamente si eliminano le parentesi iniziali
Es.
if(x==0) {...}
else if(x<0) {...}
else if(x>0) {...}
Per ricordarsi meglio ci si può ricordare della traduzione letterale
If=Se
Else=Oppure
Else if=oppure se
>Per chiedere che una cosa sia uguale ad un'altra si usa == e non =
= si usa solamente per assegnare alla variabile a sinistra il valore che scrivi a destra mentre == per chiedere se è uguale
Al contrario, per chiedere che sia diverso da un numero si mette !=
>Per chiedere che una variabile sia maggiore uguale o minore uguale si usa rispettivamente >= e <=
>Per chiedere di rispettare due o più condizioni si usano il && (e(and)) e il || (o(or))
&& si usa per una cosa che deve essere vera E ANCHE L'ALTRA, se una delle due è falsa la condizione è falsa
|| si usa per una cosa che deve essere vera OPPURE UN'ALTRA, se una è falsa ma l'altra è vera la condizione è vera
switchSpiegazione
Questa funzione, che molte persone ritengono inutile, ma che a me piace, serve per far scegliere all'utente diverse opzioni che il programma li da
Praticamente serve per non scrivere if(x==1) {...} else if(x==2) ecc. ecc
Analisi sintattica
Int variabile;
switch(variabile associata ad un numero intero)
{
case 1:
...
break;
case 2:
...
break;
...
case variabile
default:
...
}
Es. int x=3;
cout<<"Schiaccia 1 se vuoi attraversare la strada camminando molto lentamente, 2 se vuoi attraversarla normalmente e 3 se vuoi attraversarla velocemente";
switch(x)
{
case 1:
cout<<"Gli automobilisti ti suonano ma sei salvo";
break;
case 2:
cout<<"Attraverso la strada sano e salvo senza rompere a nessuno";
break;
case 3:
cout<<"vieni spiaccicato da una macchina";
default:
cout<<"Devi inserire uno di questi tre numeri" ;
}
Note
>Solo il break ha bisogno del ;
>Il break serve per chiudere il caso
>Il default serve quando l'utente introduce un numero diverso da quello previsto
>La variabile dev'essere solo ed esclusivamente intera
>Questa cosa non c'entra con il switch ma se vuoi mettere un numero con la virgola, devi usare il punto(in pieno stile americano )
WhileArgomento difficile quanto utile, richiede particolare attenzione
Spiegazione
Il while serve far fare un ciclo di programma più volte, fin quando una condizione è vera
Analisi sintattica
While(condizione)
{
...
}
Es.
float i=0,x; //i è il contatore
cout<<"inserisci un numero";
cin>>x;
while(x<i)
{
i++;
}
Cout<<"i è uguale a " <<i<<"che è uguale a x";
esempio stupido ma non importa
Note
>una variabile con ++ di fianco vuol dire che farà la variabile +1 (i=i+1;)
Per ricordarsi meglio si può sempre pensare alla traduzione
While = mentre
Quindi è : fai questo programma MENTRE questa condizione è vera
do while
Spiegazione
E praticamente un while, l'unica differenza è che il ciclo lo fai almeno una volta
Esempio pratico stupidissimo:
Al cinema, con il while arriva il controllore per vedere se hai il biglietto, se è falso esci (a calci nel sedere) mentre se è vero vedi il film
Con il do while prima vedi il film, dopo arriva il controllore, se è falso vai fuori se è vero lo rivedi
Lo rivedi fin quando il biglietto è vero
do
{... }
While(condizione)
Non penso serva un esempio, se a qualcuno serve però lo inserisco
forSpiegazione
Il for viene usato per ripetere un ciclo una determinata serie di volte
Analisi sintattica
for(contatore = numero;contatore <>= numero;contatore + o - un numero )
Es.
int x,y=0,i;
Cin>>x;
for(i=0;i<3;i++)
{
y=x/2;
}
cout<<y<<"*8 è uguale a" <<x;
Note
> Se metti solo ;; dentro la parentesi il ciclo andrà avanti all'infinito
Finalmente siamo arrivati alla parte divertente:
randomSpiegazione
Beh, chi non ne ha mai sentito parlare?
Serve, rand, per scegliere numeri totalmente a caso mentre srand per scegliere un numero diverso ogni volta (approfondisco sotto)
Analisi sintattica:
srand(time(NULL));
Variabile=rand()%fino a che numero può arrivare;
Es.
float i,d,p,n,num;
cout<<"inserisci il numero di numeri random";
cin>>num;
i=0;
p=0;
d=0;
srand(time(NULL));
while(i!=num)
{
n=rand()%9999;
cout<<n;
if(n%2=0)
{
p=p+1;
}
else
{
d=d+1;
}
}
cout>>"i numeri dipari sono"<<d;
cout<<"i numeri pari sono"<<p;
/*Questo esempio si capisce che è stato fatto al computer
*/
Note
Se siete curiosi di sapere come funziona tecnicamente questa funzione, aprite lo spoiler
Un computer non è una cosa viva, e come tale non può prendere decisioni proprie
Quindi, per scegliere un numero casuale, utilizza sempre una stessa stranissima e complicata formula cambiando una sola variabile:il tempo
Il funzionamento di srand e di random e proprio questo, il primo "fissa" e rinnova la variabile tempo (e senza, il numero casuale sarebbe sempre quello) mentre il secondo fa i calcoli secondo le limitazioni che tu li dai
> nel numero n di random () %n il valore va da 0 a n-1
Mi spiego meglio, se n è 6 i numeri casuali andranno da 0 a 5
Per far sì che i numeri casuali vadano da un numero diverso da 0 ad un'altro, bisogna sommarli lo stesso, attenzione che però verrà sommato ad entrambi
Es. Voglio un numero casuale di un voto che posso prendere ma, aimè, la scuola italiana stabilisce che il voto minimo è 2 e non 0
Quindi non posso scrivere
voto=rand() %11
Scriverò invece:
Voto=rand() %9+2 /* minimo=0+2, massimo=8+2*/
> Nonostante ci sia una parentesi e abbiamo visto che nella maggior parte dei caso non viene messa, il ; del srand è obbligatoria
> Ha bisogno della libreria
#include<ctime> e #include <cstdlib>
SleepFunzione semplice semplice
Spiegazione
Serve per far aspettare al computer un determinato numero di secondi
Analisi sintattica
sleep(numero di secondi)
Es
#include <cunistd>
#include<iostream>
#include<ctime>
#include <cstdlib>
using namespace std;
Int main()
{
cout<<3;
sleep(1)
cout<<2;
sleep(1)
cout<<1;
sleep(1)
cout<<"BOOOM";
}
Note
> Per funzionare ha bisogno della libreria #include <cunistd>
VettoriSpiegazione
Serve per poter utilizzare un potenzialmente enorme numero di variabili (uguale al numero di celle che contiene), senza doverle scrivere ogni volta
Ok, mi sono spiegato male ma non so come fare altrimenti se non con un esempio
Analisi sintattica
int o string o book o double Nome variabile[numero di celle che contiene il vettore]={numero 0, numero 1...numero di celle che contiene il vettore-1}
Es1.
int vett[5]={2,6,95,104,1}
int i;
for(i=0;i<5;i++)
cout<<vett[i]<<" ";
Es2.
float vetta[3]
float vettb[]={3.1,49.1,5}
int I, n;
for(i=0;i<3;i++)
{
cout<<"inserisci un numero a caso";
cin n;
vetta[i]=n;
}
for(i=0;i<3;i++)
{
If(vetta[i]==vettb[i])
{cout<<"Hai indovinato il numero "<<i+1; }
else
{cout<<"Non hai indovinato il numero "<<i+1;}
}
È inoltre molto importante il saperli inizializzare (dichiarare una variabile per fare un esempio)
Per questo si usa:
Int per un vettore contenente un numero intero
Double per un vettore contenente un numero decimale
String per un vettore contenente una stringa di testo (es. "Marco", "Paperino" ecc. ecc.)
Bool per un vettore contenente solo vero (true) o falso (false)
Note
Nell'es1 ho scritto che i dev'essere minore di 5, ma se avessi scritto un numero più grande cosa sarebbe successo?
Beh, Inanzitutto sarebbero venuti fuori dei numeri casuali, e poi il prof ci ha detto (ma non ne era sicuro) che potrebbe sovrascrivere file o qualcosa del genere
Quindi... non fatelo XD
>L'ho scritto nell'analisi sintattica ma lo riscrivo, i numeri del vettore
vanno da 0 a n-1Quindi se avete int vett[5]; non potete scrivere vett[5]=2;
> Se lasciate le parentesi quadre vuote il vettore conterrà l'esatto numero di dati che li metterete
Se ho commesso qualche errore o mi sono spiegato male vi prego di dirmelo usando questo topic
Utilissima Playlist in caso si voglia approfondire
https://www.youtube.com/playlist?list=PL0q...FxAXglkiHSEhktGEdited by Ffff4f - 19/7/2019, 01:30