La libreria standard C/C++ include una serie di funzioni per la lettura e la scrittura sulla console (tastiera e monitor). Queste funzioni leggono e scrivono i dati come un semplice flusso di caratteri.

Il concetto di flusso, utilizzato nella programmazione, è strettamente correlato alla consueta comprensione quotidiana di questa parola. Il flusso in ingresso può essere paragonato a un tubo attraverso il quale l'acqua (informazioni) entra in una piscina (memoria del computer) e il flusso in uscita può essere paragonato a un tubo attraverso il quale l'acqua lascia la piscina. Una caratteristica importante di questo tubo è che i dati possono muoversi solo in una direzione alla volta. Anche se si utilizza lo stesso tubo per ingresso e uscita, ciò non può avvenire contemporaneamente: per invertire la direzione del flusso è necessario fermarlo, è necessario eseguire qualche azione e solo allora il flusso può essere diretto nella direzione opposta . Un'altra caratteristica del torrente è che non si secca quasi mai. A volte si secca, ma questo periodo non può essere lungo se il sistema funziona normalmente.

La funzione di output standard printf()

La funzione printf() è una funzione di output standard. Utilizzando questa funzione è possibile visualizzare sullo schermo del monitor una stringa di caratteri, un numero, il valore di una variabile...

La funzione printf() ha un prototipo in stdio.h
int printf(char *stringa di controllo, ...);

In caso di successo, printf() restituisce il numero di caratteri stampati.

La riga di controllo contiene due tipi di informazioni: caratteri che vengono stampati direttamente sullo schermo e specificatori di formato che specificano come vengono stampati gli argomenti.

La funzione printf() è una funzione di output formattata. Ciò significa che nei parametri della funzione è necessario specificare il formato dei dati che verranno emessi. Il formato dei dati è specificato dagli identificatori di formato. L'identificatore di formato inizia con un carattere % seguito da un codice di formato.

Specificatori del formato:

%Con simbolo
%D numero decimale intero
%io numero decimale intero
%e numero decimale nella forma x.xx e+xx
%E numero decimale nella forma x.xx E+xx
%F
%F numero decimale in virgola mobile xx.xxxx
%G %f o %e, a seconda di quale sia il più breve
%G %F o %E, a seconda di quale sia il più breve
%o numero ottale
%S stringa di caratteri
%u numero decimale senza segno
%X numero esadecimale
%X numero esadecimale
%% simbolo%
%P puntatore
%N puntatore

Inoltre, i modificatori l e h possono essere applicati ai comandi di formato.

%ld stampa lungo int
%uh timbro breve non firmato
%Lf timbro doppio lungo

Nell'identificatore di formato, dopo il simbolo % è possibile specificare la precisione (numero di cifre dopo il punto decimale). La precisione è impostata come segue: %.n<код формата>. Dove n è il numero di cifre dopo la virgola e<код формата>- uno dei codici sopra indicati.

Se ad esempio abbiamo una variabile x=10.3563 di tipo float e vogliamo visualizzarne il valore con precisione alla 3a cifra decimale, allora dovremmo scrivere:

printf("Variabile x = %.3f",x);

Risultato:
Variabile x = 10.356

È inoltre possibile specificare la larghezza minima del campo assegnato per la stampa. Se la riga o il numero è maggiore della larghezza del campo specificato, la riga o il numero verranno stampati per intero.

Ad esempio, se scrivi:

printf("%5d",20);

allora il risultato sarà il seguente:
20

Tieni presente che il numero 20 non è stato stampato dall'inizio della riga. Se vuoi che gli spazi inutilizzati del campo siano riempiti con zeri, devi inserire il simbolo 0 davanti alla larghezza del campo.

Per esempio:

printf("%05d",20);

Risultato:
00020

Oltre agli identificatori del formato dei dati, la riga di controllo può contenere caratteri di controllo:

\B BS, in basso
\F Nuova pagina, cambio pagina
\N Nuova riga, avanzamento riga
\R Ritorno in carrozza
\T Tabulazione orizzontale
\v Scheda verticale
\" Doppia virgoletta
\" Apostrofo
\\ Barra rovesciata
\0 Carattere nullo, byte nullo
\UN Segnale
\N Costante ottale
\xN Costante esadecimale
\? Punto interrogativo

Molto spesso utilizzerai il carattere \n. Con questo carattere di controllo puoi passare a una nuova riga. Guarda i programmi di esempio e capirai tutto.

Esempi di programmi.

/* Esempio 1 */
#includere

vuoto principale(vuoto)
{
int a,b,c; // Dichiarazione delle variabili a,b,c
a=5;
b=6;
c=9;
printf("a=%d, b=%d, c=%d",a,b,c);
}

Risultato del programma:
a=5, b=6, c=9

/* Esempio 2 */
#includere

vuoto principale(vuoto)
{
float x,y,z;

X=10,5;
y=130,67;
z=54;

Printf("Coordinate dell'oggetto: x:%.2f, y:%.2f, z:%.2f", x, y, z);
}

Risultato del programma:
Coordinate oggetto: x:10.50, y:130.67, z:54.00

/* Esempio 3 */
#includere

vuoto principale()
{
intero x;

X=5;
printf("x=%d", x*2);
}

Risultato del programma:
x=10

/* Esempio 4 */
#includere

vuoto principale(vuoto)
{
printf("\"Testo tra virgolette\"");
printf("\nContenuto di ossigeno: 100%%");
}

Risultato del programma:
"Testo tra virgolette"
Contenuto di ossigeno: 100%

/* Esempio 5 */
#includere

vuoto principale(vuoto)
{
intero a;

LA=11; // 11 in decimale è uguale a b in esadecimale
printf("a-dec=%d, a-hex=%X",a,a);
}

Risultato del programma:
a-dec=11, a-hex=b

/* Esempio 6 */
#includere

vuoto principale(vuoto)
{
car.ca1,ca2,ca3;

Cap1="A";
ch2="B";
ch3="C";

Printf("%c%c%c",ca1,ca2,ca3);
}

Risultato del programma:
ABC

/* Esempio 7 */
#includere

vuoto principale(vuoto)
{
char *str="La mia stringa.";

Printf("Questo è %s",str);
}

Risultato del programma:
Questa è la mia linea.

/* Esempio 8 */
#includere

vuoto principale(vuoto)
{
printf("Ciao!\n"); // Dopo la stampa ci sarà una transizione a una nuova riga - \n
printf("Mi chiamo Paolo."); // Questo verrà stampato su una nuova riga
}

Risultato del programma:
Ciao!
Mi chiamo Paolo.

La funzione di input standard scanf()

La funzione scanf() è una funzione di input formattata. Con il suo aiuto, puoi inserire dati da un dispositivo di input standard (tastiera). I dati di input possono essere numeri interi, numeri in virgola mobile, caratteri, stringhe e puntatori.

La funzione scanf() ha il seguente prototipo in stdio.h:
int scanf(char *stringa di controllo);

La funzione restituisce il numero di variabili a cui è stato assegnato un valore.

La stringa di controllo contiene tre tipi di caratteri: identificatori di formato, spazi e altri caratteri. Gli identificatori di formato iniziano con il carattere %.

Specificatori del formato:

Quando si inserisce una stringa utilizzando la funzione scanf() (identificatore di formato %s), la stringa viene inserita prima del primo spazio!! quelli. se inserisci la stringa "Hello world!" utilizzando la funzione scanf()


scanf("%s",str);

quindi, dopo aver inserito la stringa risultante, che verrà memorizzata nell'array str, sarà composta da una parola "Ciao". LA FUNZIONE INSERISCE UNA STRINGA PRIMA DEL PRIMO SPAZIO! Se vuoi inserire stringhe con spazi, usa la funzione

char *gets(char *buf);

Con la funzione get() puoi inserire stringhe complete. La funzione goes() legge i caratteri dalla tastiera finché non appare il carattere di nuova riga (\n). Il carattere di nuova riga stesso viene visualizzato quando si preme il tasto Invio. La funzione restituisce un puntatore a buf. buf - buffer (memoria) per la stringa di input.

Anche se goes() non è l'argomento di questo articolo, scriviamo un programma di esempio che vi permetta di inserire un'intera riga dalla tastiera e di visualizzarla sullo schermo.

#includere

vuoto principale(vuoto)
{
buffer di carattere; // array (buffer) per la stringa di input

Ottiene(buffer); // inserisci una riga e premi invio
printf("%s",buffer); // visualizza la stringa immessa sullo schermo
}

Un'altra nota importante! Per inserire dati utilizzando la funzione scanf(), è necessario passare gli indirizzi delle variabili come parametri, non le variabili stesse. Per ottenere l'indirizzo di una variabile, è necessario far precedere il nome della variabile da una & (e commerciale). Il segno & significa prendere l'indirizzo.

Cosa significa indirizzo? Cercherò di spiegare. Nel programma abbiamo una variabile. Una variabile memorizza il suo valore nella memoria del computer. Quindi questo è l'indirizzo che otteniamo e questo è l'indirizzo nella memoria del computer in cui è archiviato il valore della variabile.

Diamo un'occhiata ad un programma di esempio che ci mostra come usare &

#includere

vuoto principale(vuoto)
{
intero x;

Printf("Inserisci la variabile x:");
scanf("%d",&x);
printf("Variabile x=%d",x);
}

Ora torniamo alla riga di controllo della funzione scanf(). Ancora:

int scanf(char *stringa di controllo);

Il carattere spazio sulla stringa di controllo comanda di saltare uno o più spazi nel flusso di input. Oltre allo spazio si può percepire una tabulazione o un carattere di nuova riga. Un carattere diverso da null indica che il carattere viene letto e scartato.

I separatori tra i due numeri immessi sono spazio, tabulazione o nuova riga. L'* dopo la % e prima del codice di formato (identificatore di formato) comanda che il tipo di dati venga letto, ma non assegnato a quel valore.

Per esempio:

scanf("%d%*c%d",&i,&j);

inserendo 50+20 imposterà la variabile i su 50, la variabile j su 20 e il carattere + verrà letto e ignorato.

Il comando format può specificare la larghezza del campo più grande da leggere.

Per esempio:

scanf("%5s",str);

indica la necessità di leggere i primi 5 caratteri dal flusso di input. Se inserisci 1234567890ABC, l'array str conterrà solo 12345, i caratteri rimanenti verranno ignorati. Delimitatori: spazio, tabulazione e nuova riga: quando si inserisce un carattere, vengono trattati come tutti gli altri caratteri.

Se nella stringa di controllo sono presenti altri caratteri, essi hanno lo scopo di identificare e saltare il carattere corrispondente. Operatore del flusso di caratteri 10plus20

scanf("%dplus%d",&x,&y);

assegnerà il valore 10 alla variabile x, il valore 20 alla variabile y e salterà i caratteri più poiché si trovano nella stringa di controllo.

Una delle potenti funzionalità della funzione scanf() è la sua capacità di specificare uno scanset. Il set di ricerca definisce l'insieme di caratteri con cui verranno confrontati i caratteri letti dalla funzione scanf(). La funzione scanf() legge i caratteri finché compaiono nel set di ricerca. Non appena il carattere inserito non viene trovato nel set di ricerca, la funzione scanf() passa all'identificatore di formato successivo. Il set di ricerca è definito da un elenco di caratteri racchiusi tra parentesi quadre. Il segno % è posto prima della parentesi aperta. Consideriamolo con un esempio.

#includere

vuoto principale(vuoto)
{
carattere str1, str2;
scanf("%%s", str1, str2);
printf("\n%s\n%s",str1,str2);
}
Inseriamo un set di caratteri:
12345abcdefg456

Il programma verrà visualizzato sullo schermo:
12345
abcdefg456

Quando si specifica un set di ricerca, è anche possibile utilizzare il carattere trattino per specificare la spaziatura e la larghezza massima del campo di input.

scanf("%10", str1);

È inoltre possibile definire caratteri che non sono inclusi nel set di ricerca. Il primo di questi caratteri è preceduto da un ^. Molti caratteri distinguono tra lettere minuscole e maiuscole.

Permettetemi di ricordarvi che quando si utilizza la funzione scanf(), è necessario passare gli indirizzi variabili come parametri. Il codice sopra è stato scritto:

carattere str; // array di 80 caratteri
scanf("%s",str);

Tieni presente che str non è preceduto da &. Questo viene fatto perché str è un array e il nome dell'array - str è un puntatore al primo elemento dell'array. Pertanto, il segno & non deve essere utilizzato. Passiamo già l'indirizzo alla funzione scanf(). Bene, in poche parole, str è l'indirizzo nella memoria del computer in cui verrà archiviato il valore del primo elemento dell'array.

Esempi di programmi.

Esempio 1.
Questo programma visualizza la richiesta "Quanti anni hai?" e attende l'inserimento dei dati. Se, ad esempio, inserisci il numero 20, il programma visualizzerà la riga “Hai 20 anni.”. Quando chiamiamo la funzione scanf(), mettiamo un segno & davanti alla variabile età, poiché la funzione scanf() necessita di indirizzi variabili. La funzione scanf() scriverà il valore inserito nell'indirizzo specificato. Nel nostro caso, il valore inserito 20 verrà scritto all'indirizzo della variabile età.

/* Esempio 1 */

#includere

vuoto principale(vuoto)
{
età intera;

Printf("\nQuanti anni hai?:");
scanf("%d",&età);
printf("Hai %d anni.", età);
}

Esempio 2.
Programma di calcolatrice. Questa calcolatrice può solo aggiungere numeri. Quando inserisci 100+34, il programma produrrà il risultato: 100+34=134.

/* Esempio 2 */

#includere

vuoto principale(vuoto)
{
intero x, y;

Printf("\nCalcolatrice:");
scanf("%d+%d", &x, &y);
printf("\n%d+%d=%d", x, y, x+y);
}

Esempio 3.
Questo esempio mostra come impostare la larghezza del campo di lettura. Nel nostro esempio, la larghezza del campo è di cinque caratteri. Se inserisci una stringa con un numero elevato di caratteri, tutti i caratteri dopo il 5 verranno scartati. Notare la chiamata alla funzione scanf(). Il segno & non precede il nome dell'array perché il nome dell'array è l'indirizzo del primo elemento dell'array.

/* Esempio 3 */

#includere

vuoto principale(vuoto)
{
nome del personaggio;

Printf("\nInserisci il tuo nome utente (non più di 5 caratteri):");
scanf("%5s", nome);
printf("\nHai inserito %s", nome);
}

Esempio 4.
L'ultimo esempio in questo articolo mostra come è possibile utilizzare un set di ricerca. Dopo aver avviato il programma, inserire un numero da 2 a 5.

/* Esempio 4 */

#includere

vuoto principale(vuoto)
{
salmerino;

Printf("Il tuo voto è 2,3,4,5:");
scanf("%", &bal);
printf("\nVoto %c", bal);
}

Linguaggio di programmazione C++

Ultimo aggiornamento: 28/08/2017

Il linguaggio di programmazione C++ è un linguaggio di programmazione di alto livello, tipizzato staticamente, compilato e di uso generale, adatto alla creazione di un'ampia varietà di applicazioni. Oggi il C++ è uno dei linguaggi più popolari e diffusi.

Ha le sue radici nel linguaggio C, sviluppato nel 1969-1973 presso i Bell Labs dal programmatore Dennis Ritchie. All'inizio degli anni '80, il programmatore danese Bjarne Stroustrup, che allora lavorava ai Bell Labs, sviluppò il C++ come estensione del linguaggio C. All’inizio, infatti, il C++ semplicemente integrava il linguaggio C con alcune funzionalità di programmazione orientata agli oggetti. Ed è per questo che lo stesso Stroustrup inizialmente lo chiamò “C con classi”.

Successivamente, la nuova lingua iniziò a guadagnare popolarità. Sono state aggiunte nuove funzionalità che lo hanno reso non solo un'aggiunta al C, ma un linguaggio di programmazione completamente nuovo. Di conseguenza, “C con classi” è stato rinominato C++. E da quel momento in poi entrambe le lingue iniziarono a svilupparsi indipendentemente l'una dall'altra.

Il C++ è un linguaggio potente, che eredita ricche capacità di memoria dal C. Pertanto, il C++ trova spesso il suo utilizzo nella programmazione di sistema, in particolare nella creazione di sistemi operativi, driver, utilità varie, antivirus, ecc. A proposito, il sistema operativo Windows è scritto principalmente in C++. Ma l'uso di questo linguaggio non si limita alla programmazione del sistema. Il C++ può essere utilizzato in programmi di qualsiasi livello in cui velocità e prestazioni sono importanti. Viene spesso utilizzato per creare applicazioni grafiche e vari programmi applicativi. Inoltre, viene spesso utilizzato soprattutto per creare giochi con una visualizzazione ricca e ricca. Inoltre, recentemente ha preso slancio la direzione mobile, dove anche il C++ ha trovato la sua applicazione. E anche nello sviluppo web, puoi anche utilizzare C++ per creare applicazioni web o alcuni servizi di supporto che servono le applicazioni web. In generale, il C++ è un linguaggio ampiamente utilizzato in cui è possibile creare quasi ogni tipo di programma.

C++ è un linguaggio compilato, il che significa che il compilatore traduce il codice sorgente C++ in un file eseguibile che contiene una serie di istruzioni macchina. Ma le diverse piattaforme hanno le proprie caratteristiche, quindi i programmi compilati non possono essere semplicemente trasferiti da una piattaforma all'altra ed eseguiti lì. Tuttavia, a livello di codice sorgente, i programmi C++ sono in gran parte portabili a meno che non vengano utilizzate alcune funzioni specifiche del sistema operativo. Inoltre, la disponibilità di compilatori, librerie e strumenti di sviluppo per quasi tutte le piattaforme più comuni consente di compilare lo stesso codice sorgente C++ in applicazioni per queste piattaforme.

A differenza del C, il linguaggio C++ consente di scrivere applicazioni in uno stile orientato agli oggetti, rappresentando un programma come una raccolta di classi e oggetti che interagiscono tra loro. Ciò semplifica la creazione di applicazioni di grandi dimensioni.

Principali fasi dello sviluppo

Nel 1979-80 Bjarne Stroustrup sviluppò un'estensione del linguaggio C: "C with Classes". Nel 1983 il linguaggio venne ribattezzato C++.

Nel 1985 venne rilasciata la prima versione commerciale del linguaggio C++, nonché la prima edizione del libro "The C++ Programming Language", che rappresentò la prima descrizione di questo linguaggio in assenza di uno standard ufficiale.

Nel 1989 fu rilasciata una nuova versione del linguaggio C++ 2.0, che includeva una serie di nuove funzionalità. Successivamente, la lingua si è sviluppata in modo relativamente lento fino al 2011. Ma allo stesso tempo, nel 1998, è stato fatto il primo tentativo di standardizzazione della lingua da parte dell'ISO (Organizzazione internazionale per la standardizzazione). Il primo standard si chiamava ISO/IEC 14882:1998, o C++98 in breve. Successivamente, nel 2003, è stata pubblicata una nuova versione dello standard C++03.

Nel 2011 è stato pubblicato il nuovo standard C++11 che conteneva molte aggiunte e arricchiva il linguaggio C++ con un gran numero di nuove funzionalità. Successivamente nel 2014 è stata rilasciata una piccola aggiunta allo standard, nota anche come C++14. E un'altra versione chiave del linguaggio è prevista per il 2017.

Compilatori e ambienti di sviluppo

Per sviluppare programmi in C++, hai bisogno di un compilatore: traduce il codice sorgente in C++ in un file eseguibile, che puoi quindi eseguire. Ma al momento ci sono molti compilatori diversi. Possono differire sotto vari aspetti, in particolare nell'attuazione degli standard. Un elenco di base di compilatori per C++ può essere trovato su Wikipedia. Si consiglia allo sviluppo di scegliere quei compilatori che stanno sviluppando e implementando tutti gli standard più recenti. Pertanto, in questo tutorial utilizzeremo principalmente il compilatore g++ disponibile gratuitamente sviluppato dal progetto GNU.

Puoi anche utilizzare IDE come Visual Studio, Netbeans, Eclipse, Qt, ecc. per creare programmi.

C++ (leggi c-plus-plus) è un linguaggio di programmazione generico compilato e tipizzato staticamente in cui è possibile creare programmi di qualsiasi livello di complessità.
Per più di 20 anni, questo linguaggio è stato tra i tre linguaggi di programmazione più popolari e richiesti. (Puoi verificarlo visitando il sito web TIOBE).
Il linguaggio è nato all'inizio degli anni '80, quando Björn Stroustrup, dipendente dei Bell Labs, ha apportato una serie di miglioramenti al linguaggio C per le proprie esigenze.

Bjarne Stroustrup – creatore del linguaggio C++

Stroustrup ha deciso di estendere il linguaggio C con le funzionalità presenti nel linguaggio Simula. C, essendo il linguaggio di base del sistema UNIX su cui giravano i computer Bell, è veloce, ricco di funzionalità e portabile. Stroustrup ha aggiunto la possibilità di lavorare con classi e oggetti. Di conseguenza, i problemi pratici di modellazione si sono rivelati facili da risolvere sia in termini di tempo di sviluppo (grazie all'uso di classi simili a Simula) sia in termini di tempo di calcolo (grazie alla velocità del C).
Ecco come ne parla lo stesso sviluppatore del linguaggio:



Nel 1998, il primo standard linguistico, noto come C++98, è stato pubblicato da un comitato per gli standard. Il C++ continua ad evolversi per soddisfare le esigenze odierne. Uno dei gruppi che sviluppano il linguaggio C++ e presentano proposte per migliorarlo al Comitato per gli standard C++ è Aumento, che è impegnato, tra le altre cose, a migliorare le capacità del linguaggio aggiungendovi funzionalità di metaprogrammazione. L'ultimo standard è stato rilasciato nel 2017 e si chiama C++17. Il prossimo standard non tarderà ad arrivare e dovrebbe apparire nel 2020.
Nessuno possiede i diritti sul linguaggio C++, è gratuito. Nel marzo 2016 è stato creato in Russia il gruppo di lavoro WP21 C++. Il gruppo è stato organizzato per raccogliere proposte per lo standard C++, inviarle a un comitato e difenderle alle riunioni generali dell'Organizzazione internazionale per la standardizzazione.
Il C++ è un linguaggio multi-paradigma (dalla parola paradigma - uno stile di scrittura di programmi per computer), che comprende un'ampia gamma di diversi stili e tecnologie di programmazione. Viene spesso classificato come linguaggio orientato agli oggetti, ma in senso stretto non è così. Durante il processo di lavoro, lo sviluppatore riceve assoluta libertà nella scelta degli strumenti in modo che il problema risolto utilizzando un approccio particolare venga risolto nel modo più efficiente possibile. In altre parole, il C++ non obbliga il programmatore ad aderire ad un solo stile di sviluppo del programma (ad esempio, orientato agli oggetti).
C++ dispone di una ricca libreria standard che include contenitori e algoritmi comuni, I/O, espressioni regolari, supporto multithreading e altre funzionalità. Il C++ ha influenzato molti linguaggi di programmazione, tra cui: Java, C#, D. Poiché C++ appartiene a una famiglia di linguaggi basati sulla sintassi del linguaggio C, puoi facilmente padroneggiare altri linguaggi di programmazione di questa famiglia: JavaScript, PHP , Perl, Objective-C e molti altri. ecc., inclusa la lingua madre stessa - C. ()
Nel corso della sua esistenza, il linguaggio C++ ha acquisito miti persistenti che possono essere facilmente confutati (vedi qui: Parte 1 e Parte 2)

Storia del rilascio del linguaggio e degli standard

1983

Il creatore del linguaggio è Björn Stroustrup, un dipendente dei Bell Labs, ha introdotto una prima versione del linguaggio C++ (“C con classi”)

1985

Prima versione commerciale del C++, il linguaggio assume il suo nome moderno

1986

Rilascio della prima edizione di The C++ Programming Language - un libro dedicato al C++ scritto da Björn Stroustrup

1998

È stato ratificato lo standard internazionale per il linguaggio C++: ISO/IEC 14882:1998 “Standard for the C++ Programming Language”

2003
2005

È stato rilasciato il Rapporto tecnico della biblioteca 1 (TR1). Pur non essendo ufficialmente parte dello standard, il rapporto descrive le estensioni alla libreria standard che dovrebbero essere incluse nella prossima versione del linguaggio C++.

2011

Rilascio di un nuovo standard – C++11 o ISO/IEC 14882:2011; il nuovo standard includeva aggiunte al nucleo del linguaggio e l'espansione della libreria standard, inclusa la maggior parte di TR1

2014

Rilascio dello standard C++14 (“International Standard ISO/IEC 14882:2014(E) Programming Language C++”); C++14 può essere visto come una piccola estensione di C++11, contenente principalmente correzioni di bug e miglioramenti minori

2017

Il rilascio di un nuovo standard: C++1z (C++17). Questa norma ha introdotto numerose modifiche e integrazioni. Ad esempio, STD includeva librerie dello standard C11, un file system basato su boost::filesystem e la maggior parte della libreria sperimentale TS I.

2020

C++20 è il nome non ufficiale dello standard ISO/IEC per il linguaggio di programmazione C++, che dovrebbe seguire C++17. Bozza della norma N4800.

Filosofia del C++

Nel suo libro The Design and Evolution of C++ (2007), Björn Stroustrup descrive i principi che ha seguito durante la progettazione del C++ (abbreviato):

  • Ottieni un linguaggio generico con tipi di dati statici, l'efficienza e la portabilità del linguaggio C.
  • Supporta direttamente e in modo completo una varietà di stili di programmazione.
  • Dare al programmatore la libertà di scelta, anche se gli dà l'opportunità di scegliere in modo sbagliato.
  • Mantenere il più possibile la compatibilità con il C, rendendo così possibile una facile transizione dalla programmazione in C.
  • Evitare discrepanze tra C e C++: qualsiasi costrutto valido in entrambi i linguaggi deve significare la stessa cosa in ciascuno di essi e portare allo stesso comportamento del programma.
  • Evita funzionalità dipendenti dalla piattaforma o non universali.
  • "Non pagare per ciò che non usi": nessuna funzionalità linguistica dovrebbe portare a una diminuzione delle prestazioni dei programmi che non la utilizzano.
  • Non richiedono un ambiente di programmazione eccessivamente complicato.

C e C++

La sintassi del C++ è ereditata dal linguaggio C Sebbene, formalmente, uno dei principi del C++ rimanga quello di mantenere la compatibilità con il linguaggio C, di fatto i gruppi di standardizzazione per questi linguaggi non interagiscono, e le modifiche che apportano no. solo non sono correlati, ma spesso si contraddicono fondamentalmente a vicenda ideologicamente. Pertanto, gli elementi che i nuovi standard C aggiungono al kernel si trovano negli elementi standard C++ della libreria standard e non sono affatto nel kernel, ad esempio array dinamici, array con limiti fissi, funzionalità di elaborazione parallela. Secondo Stroustrup, combinare lo sviluppo di queste due lingue sarebbe di grande beneficio, ma difficilmente sarà possibile per ragioni politiche. Quindi la compatibilità pratica tra C e C++ andrà gradualmente persa.
In questo esempio, a seconda del compilatore utilizzato, verrà emesso "C++" o "C":

Programma 9.1

#includere int main() ( printf("%s\n", (sizeof("a") == sizeof(char)) ? "C++" : "C"); return 0; )

Ciò è dovuto al fatto che le costanti carattere in C sono di tipo int e in C++ sono di tipo char , ma le dimensioni di questi tipi sono diverse.

Modelli del ciclo di vita delle applicazioni

Ciclo vitale il software è un periodo di tempo che inizia dal momento in cui viene presa la decisione sulla necessità di creare un prodotto software e termina nel momento in cui viene completamente rimosso dal servizio. Questo ciclo è il processo di creazione e sviluppo del software. Esistono diversi modelli di ciclo di vita.
Modello a cascata Il ciclo di vita (modello inglese a cascata) è stato proposto nel 1970 da Winston Royce. Prevede l'attuazione sequenziale di tutte le fasi del progetto in un ordine rigorosamente fisso. Il passaggio alla fase successiva significa il completamento completo del lavoro nella fase precedente. I requisiti determinati nella fase di formazione dei requisiti sono rigorosamente documentati sotto forma di specifiche tecniche e vengono registrati per l'intero sviluppo del progetto. Ogni fase culmina nel rilascio di un set completo di documentazione sufficiente a consentire il proseguimento dello sviluppo da parte di un altro team di sviluppo.
Fasi del progetto secondo il modello a cascata:

  1. Formazione dei requisiti;
  2. Progetto;
  3. Implementazione;
  4. Test;
  5. Implementazione;
  6. Funzionamento e manutenzione.

Nel modello a cascata, il passaggio da una fase del progetto all'altra presuppone che il risultato della fase precedente sia completamente corretto. Nei grandi progetti questo è quasi impossibile da raggiungere. Pertanto, questo modello è adatto solo per lo sviluppo di un piccolo progetto. (Lo stesso W. Royce non ha aderito a questo modello e ha utilizzato un modello iterativo).
Modello iterativo
Un'alternativa al modello a cascata è il modello di sviluppo iterativo e incrementale (IID), ricevuto da T. Gilb negli anni '70. nome del modello evolutivo. Il modello IID prevede la suddivisione del ciclo di vita del progetto in una sequenza di iterazioni, ciascuna delle quali assomiglia a un “mini-progetto”, inclusi tutti i processi di sviluppo applicati alla creazione di funzionalità più piccole rispetto al progetto nel suo insieme. L'obiettivo di ciascuna iterazione è ottenere una versione funzionante del sistema software, inclusa la funzionalità definita dal contenuto integrato di tutte le iterazioni precedenti e attuali. Il risultato dell'iterazione finale contiene tutte le funzionalità richieste del prodotto. Pertanto, con il completamento di ogni iterazione, il prodotto riceve un incremento - un incremento - delle sue capacità, che, quindi, si sviluppano evolutivamente.


Varie varianti dell'approccio iterativo sono implementate nella maggior parte delle moderne metodologie di sviluppo:

Processo di sviluppo - Processo razionale unificato (RUP)

Processo razionale unificato (RUP)(rational unified process) è una metodologia di sviluppo software gestita da Rational Software (IBM). La metodologia fornisce raccomandazioni per tutte le fasi di sviluppo: dalla modellazione aziendale al test e alla messa in servizio del programma finito. Come linguaggio di modellazione viene utilizzato l'Unified Modeling Language (UML).
Il ciclo di vita completo dello sviluppo del prodotto è costituito da quattro fasi, ciascuna delle quali comprende una o più iterazioni.

  • Fase iniziale (Inception)
  • Determinare l’ambito del progetto e la quantità di risorse necessarie. Vengono determinati i requisiti di base, le limitazioni e le funzionalità chiave del prodotto. I rischi vengono valutati. Pianificazione. Al termine della fase iniziale viene valutato il raggiungimento del Lifecycle Objective Milestone, che presuppone un accordo tra le parti interessate per proseguire il progetto.

  • Una precisazione
  • Requisiti di documentazione. Progettazione, implementazione e testing di architetture eseguibili. Chiarimento su termini e costi. Ridurre i rischi principali. Completare con successo la fase di sviluppo significa raggiungere il Lifecycle Architecture Milestone.

  • Costruzione
  • Nella fase “Build” vengono implementate la maggior parte delle funzionalità del prodotto: il design dell’applicazione è completato, il codice sorgente è scritto. La fase di creazione termina con il primo rilascio esterno del sistema e il traguardo della capacità operativa iniziale.

  • introduzione
  • Nella fase di “Implementazione”, la versione finale del prodotto viene creata e trasferita dallo sviluppatore al cliente. Ciò include un programma di beta testing, formazione degli utenti e determinazione della qualità del prodotto. Nel caso in cui la qualità non soddisfi le aspettative dell'utente o i criteri stabiliti nella fase di avvio, la fase di implementazione viene ripetuta nuovamente. Completare tutti gli obiettivi significa raggiungere la tappa fondamentale del rilascio del prodotto e completare l'intero ciclo di sviluppo.



"Tecnologie dell'informazione. Ingegneria dei sistemi e del software. Processi del ciclo di vita del software". Questo standard è stato adottato dall'Agenzia Federale per la Regolazione Tecnica e la Metrologia della Federazione Russa ed è simile allo standard internazionale ISO/IEC 12207:2008. Questo standard stabilisce una struttura generale dei processi del ciclo di vita del software che possono essere seguiti nell'industria del software. Lo standard non propone uno specifico modello di ciclo di vita. Le sue disposizioni sono comuni a tutti i modelli, metodi e tecnologie del ciclo di vita per la creazione di software. Descrive la struttura dei processi del ciclo di vita senza specificare come implementare o completare le attività e i compiti inclusi in tali processi.

Presentazione della lezione
Argomenti del messaggio
  • Fondazione per il Software Libero (FSF)
  • Licenze software gratuite
  • Software Libero e Open Source
  • Storia dello sviluppo dei linguaggi di programmazione
  • La storia del linguaggio C. C e C++
  • Storia
  • Critica al C++
  • Storia dell'UNIX
  • Modello a spirale del ciclo di vita del software
  • UML (linguaggio di modellazione unificato)
  • Quadro delle soluzioni Microsoft
  • IDE per la programmazione C/C++ su Windows
  • Compilatori C/C++
  • Creazione di un'applicazione console su Windows
Domande
  1. Perché il modello a cascata dello sviluppo software non viene utilizzato nei grandi progetti?
  2. Qual è la differenza tra i modelli di sviluppo a cascata e iterativi?
  3. Elencare le fasi dello sviluppo del software nella metodologia Rational Unified Process (RUP).

In questo articolo, la funzione scanf() viene considerata in una forma generale senza riferimento a uno standard specifico, quindi sono inclusi qui i dati di qualsiasi standard C99, C11, C++11, C++14. È possibile che in alcuni standard la funzione funzioni in modo diverso dal materiale presentato nell'articolo.

Funzione C scanf - descrizione

scanf() è una funzione situata nel file di intestazione di stdio.h(C) e cstdio(C++), è anche chiamata input formattato al programma. scanf legge i caratteri dallo standard input (stdin) e li converte in base al formato, quindi li scrive nelle variabili specificate. Formato significa che i dati, una volta ricevuti, vengono ridotti a una determinata forma. Pertanto, la funzione scanf C è descritta:

scanf("%formato", &variabile1[, &variabile2,[…]]),

dove le variabili vengono passate come indirizzi. Il motivo per cui si passano variabili a una funzione in questo modo è ovvio: come risultato del suo funzionamento, restituisce un valore che indica la presenza di errori, quindi l'unico modo per modificare i valori delle variabili è passare per indirizzo. Inoltre, grazie a questo metodo, la funzione può elaborare dati di qualsiasi tipo.

Alcuni programmatori chiamano funzioni come procedure scanf() o printf() a causa delle analogie con altri linguaggi.

Scanf ti consente di inserire tutti i tipi di linguaggio di base: char, int, float, string, ecc. Nel caso delle variabili di tipo stringa, non è necessario indicare il segno dell'indirizzo - "&", poiché una variabile di tipo stringa è un array e il suo nome è l'indirizzo del primo elemento dell'array nella memoria del computer .

Formato di input dei dati o stringa di controllo

Iniziamo guardando un esempio di utilizzo della funzione C scanf dalla descrizione.

#includere int main() ( int x; while (scanf("%d", &x) == 1) printf("%d\n", x); return 0; //requisito per i sistemi Linux )

Il formato di input è costituito dai quattro parametri seguenti: %[*][larghezza][modificatori] tipo. In questo caso il segno “%” e il tipo sono parametri obbligatori. Cioè, il formato minimo è simile a questo: “%s”, “%d” e così via.

In generale i caratteri che compongono una stringa di formato si dividono in:

  • specificatori di formato: tutto ciò che inizia con il simbolo %;
  • caratteri di separazione o spazi bianchi: includono spazio, tabulazione (\t), nuova riga (\n);
  • caratteri diversi dagli spazi bianchi.

La funzione potrebbe non essere sicura.

Utilizza scanf_s() invece di scanf().

(pubblicato da Visual Studio)

Tipo, identificatori di formato, caratteri di conversione o caratteri di controllo

La descrizione di scanf C deve contenere, come minimo, uno specificatore di formato, che è indicato alla fine delle espressioni che iniziano con il segno "%". Indica al programma il tipo di dati da aspettarsi dall'input, solitamente dalla tastiera. Elenca tutti gli identificatori di formato nella tabella seguente.

Senso

Il programma attende l'inserimento di un carattere. La variabile da scrivere deve essere di tipo carattere char.

Il programma prevede l'inserimento di un numero decimale intero. La variabile deve essere di tipo int.

Il programma prevede un numero in virgola mobile in forma esponenziale. La variabile deve essere di tipo float.

Il programma prevede l'immissione di un numero in virgola mobile. La variabile deve essere di tipo float.

7

Il programma prevede l'immissione di un numero in virgola mobile. La variabile deve essere di tipo float.

Il programma prevede l'inserimento di un numero ottale. La variabile deve essere di tipo int.

Il programma prevede l'immissione di una stringa. Una stringa è considerata un insieme di caratteri fino al primo carattere delimitatore incontrato. La variabile deve essere di tipo stringa.

Il programma prevede l'immissione di un numero esadecimale. La variabile deve essere di tipo int.

La variabile prevede un input del puntatore. La variabile deve essere un tipo puntatore.

Scrive un valore intero in una variabile uguale al numero di caratteri letti finora dalla funzione scanf.

Il programma legge un numero intero senza segno. Il tipo di variabile deve essere un numero intero senza segno.

Il programma prevede l'immissione di un numero binario. La variabile deve essere di tipo int.

Un set di caratteri scansionabili. Il programma attende l'input di caratteri da un pool limitato specificato tra scanf e funzionerà finché saranno presenti caratteri del set specificato nel flusso di input.

Caratteri nella stringa di formato

Asterisco (*)

L'asterisco (*) è un flag che indica che l'operazione di assegnazione deve essere soppressa. Un asterisco viene posizionato immediatamente dopo il segno "%". Per esempio,

Scanf("%d%*c%d", &x, &y); //ignora il carattere tra due numeri interi. scanf("%s%*d%s", str, str2); //ignora il numero intero tra due stringhe.

Cioè, se inserisci la riga "45-20" nella console, il programma farà quanto segue:

  1. Alla variabile "x" verrà assegnato il valore 45.
  2. Alla variabile "y" verrà assegnato il valore 20.
  3. E il segno meno (trattino) “-” verrà ignorato grazie a “%*c”.

Larghezza (o larghezza del campo)

Si tratta di un numero intero compreso tra il segno "%" e l'identificatore di formato che specifica il numero massimo di caratteri da leggere durante l'operazione di lettura corrente.

Ci sono alcuni punti importanti da tenere a mente:

  1. scanf interromperà l'esecuzione se incontra un carattere delimitatore, anche se non ha contato 20 caratteri.
  2. Se l'input contiene più di 20 caratteri, solo i primi 20 verranno scritti nella variabile str.

Modificatori di tipo (o precisione)

Si tratta di flag speciali che modificano il tipo di dati previsti per l'input. Il flag è specificato a sinistra dell'identificatore del tipo:

  • L o l (L piccola) Quando si usa "l" con gli specificatori d, i, o, u, x, il flag dice al programma di aspettarsi un input di tipo long int. Quando si usa "l" con l'identificatore eof, il flag dice al programma che dovrebbe aspettarsi l'inserimento di un valore doppio. L'utilizzo di "L" indica al programma che è previsto un valore di tipo long double. L'utilizzo di "l" con gli specificatori "c" e "s" indica al programma che sono previsti caratteri a doppio byte di tipo wchar_t. Ad esempio, "%lc", "%ls", "%l".
  • h è un flag che indica il tipo short.
  • hh - indica che la variabile è un puntatore a un valore di tipo carattere con segno o carattere senza segno. Il flag può essere utilizzato con gli specificatori d, i, o, u, x, n.
  • ll (due L minuscole) - indica che la variabile è un puntatore a un valore di tipo Signed Int o Unsigned Long Long Int. Il flag viene utilizzato con gli specificatori: d, i, o, u, x, n.
  • j - indica che la variabile è un puntatore al tipo intmax_t o uintmax_t dal file di intestazione stdint.h. Utilizzato con gli specificatori: d, i, o, u, x, n.
  • z - indica che la variabile è un puntatore al tipo size_t, la cui definizione è in stddef.h. Utilizzato con gli specificatori: d, i, o, u, x, n.
  • t - indica che la variabile è un puntatore al tipo ptrdiff_t. La definizione di questo tipo è in stddef.h. Utilizzato con gli specificatori: d, i, o, u, x, n.

L'immagine con i modificatori può essere presentata più chiaramente sotto forma di tabella. Questa descrizione di scanf C sarà più chiara per i programmatori.

Altri caratteri

Tutti i caratteri incontrati nel formato verranno scartati. Vale la pena notare che la presenza di spazi bianchi o caratteri di delimitazione (nuova riga, spazio, tabulazione) nella stringa di controllo può portare a un comportamento diverso della funzione. In una versione, scanf() leggerà senza salvare alcun numero di delimitatori finché non incontra un carattere diverso dal delimitatore e in un'altra versione gli spazi (solo loro) non contano e l'espressione "%d + %d" è equivalente a "%d+%d".

Esempi

Diamo un'occhiata ad una serie di esempi per aiutarti a riflettere e comprendere più accuratamente come funziona la funzione.

Scanf("%3s", str); //se inserisci la riga “1d2s3d1;3” nella console, solo “1d2” verrà scritto in str scanf("%dminus%d", &x, &y); //i caratteri meno tra due numeri verranno scartati scanf("%5", str); //i caratteri verranno inseriti in str finché non ce ne saranno 5 e i caratteri saranno numeri da 0 a 9. scanf("%lf", &d); //input previsto di tipo double scanf("%hd", &x); //aspettarsi un numero di tipo short scanf("%hu", &y); //aspettarsi un numero di tipo unsigned short scanf("lx", &z); //numero previsto di tipo long int

Dagli esempi forniti puoi vedere come cambia il numero atteso utilizzando simboli diversi.

scanf C - descrizione per principianti

Questa sezione sarà utile per i principianti. Spesso è necessario avere a portata di mano non tanto una descrizione completa di scanf C, ma piuttosto i dettagli di come funziona la funzione.

  • La funzione è un po' obsoleta. Esistono diverse implementazioni nelle librerie di diverse versioni. Ad esempio la funzione migliorata scanf S C, la cui descrizione si trova sul sito web di Microsoft.
  • Il numero di specificatori nel formato deve corrispondere al numero di argomenti passati alla funzione.
  • Gli elementi del flusso di input devono essere separati solo da caratteri di delimitazione: spazio, tabulazione, nuova riga. Virgola, punto e virgola, punto, ecc.: questi caratteri non sono delimitatori per la funzione scanf().
  • Se scanf incontra un carattere delimitatore, l'input verrà interrotto. Se c'è più di una variabile da leggere, scanf passerà alla lettura della variabile successiva.
  • La minima discrepanza nel formato dei dati di input porta a risultati imprevedibili dal programma. Va bene se il programma termina con un errore. Ma spesso il programma continua a funzionare e lo fa in modo errato.
  • scanf("%20s...", ...); Se il flusso di input supera i 20 caratteri, scanf leggerà i primi 20 caratteri e terminerà o passerà alla lettura della variabile successiva, se specificata. La successiva chiamata scanf continuerà a leggere il flusso di input da dove si era interrotta la chiamata scanf precedente. Se viene incontrato un carattere delimitatore durante la lettura dei primi 20 caratteri, scanf smetterà di funzionare o passerà alla lettura della variabile successiva, anche se non ha letto 20 caratteri per la prima variabile. In questo caso, tutti i caratteri non conteggiati verranno allegati alla variabile successiva.
  • Se l'insieme di caratteri da scansionare inizia con il segno "^", scanf leggerà i dati finché non incontra un carattere delimitatore o un carattere dell'insieme. Ad esempio, "%[^A-E1-5]" leggerà i dati dal flusso finché non verrà rilevato uno dei caratteri inglesi maiuscoli da A a E o uno dei numeri da 1 a 5.
  • La funzione C scanf, come descritto, restituisce un numero uguale al numero di voci riuscite nelle variabili. Se scanf scrive 3 variabili, il risultato dell'operazione riuscita della funzione sarà la restituzione del numero 3. Se scanf non è riuscito a scrivere alcuna variabile, il risultato sarà 0. E infine, se scanf non ha potuto iniziare a lavorare da tutto per qualche motivo, il risultato sarà EOF .
  • Se la funzione scanf() non ha completato il suo lavoro correttamente. Ad esempio, scanf("%d", &x) - era previsto un numero, ma sono stati ricevuti dei simboli come input. La successiva chiamata scanf() inizierà dal punto nel flusso di input in cui è terminata la chiamata di funzione precedente. Per superare questo problema, è necessario eliminare i personaggi problematici. Questo può essere fatto, ad esempio, chiamando scanf("%*s"). Cioè, la funzione leggerà una stringa di caratteri e la scarterà. In questo modo intelligente, puoi continuare a inserire i dati richiesti.
  • Alcune implementazioni di scanf() non consentono l'uso di "-" nel set di caratteri da scansionare.
  • L'identificatore "%c" legge ogni carattere dal flusso. Cioè, legge anche il carattere delimitatore. Per saltare il carattere delimitatore e continuare a leggere il carattere desiderato, puoi utilizzare “%1s”.
  • Quando si utilizza l'identificatore "c", è accettabile utilizzare la larghezza "%10c", ma in tal caso è necessario passare un array di elementi di tipo char come variabile alla funzione scanf.
  • “%” significa “tutte le lettere minuscole dell’alfabeto inglese” e “%” significa semplicemente 3 caratteri: “z”, “a”, “-”. In altre parole, il carattere "-" indica un intervallo solo se appare tra due caratteri nell'ordine corretto. Se "-" si trova alla fine di un'espressione, all'inizio o nell'ordine sbagliato dei caratteri su entrambi i lati, rappresenta semplicemente un trattino, non un intervallo.

Conclusione

Con questo si conclude la descrizione di scanf C. Si tratta di una funzione utile per lavorare con piccoli programmi e quando si utilizza un metodo di programmazione procedurale. Tuttavia, lo svantaggio principale è il numero di errori imprevedibili che possono verificarsi quando si utilizza scanf. Pertanto è meglio tenere davanti agli occhi la descrizione di scanf C durante la programmazione. Nei grandi progetti professionali, gli iostream vengono utilizzati perché hanno capacità di livello superiore, sono in grado di rilevare ed elaborare meglio gli errori e funzionano anche con quantità significative di informazioni. Va inoltre notato che su molte fonti online è disponibile una descrizione di scanf C in russo, nonché esempi del suo utilizzo, a causa dell'età della funzione. Pertanto, se necessario, puoi sempre trovare la risposta sui forum tematici.

Questi tutorial sono per tutti, che tu sia nuovo alla programmazione o che tu abbia una vasta esperienza di programmazione in altri linguaggi! Questo materiale è per coloro che vogliono imparare i linguaggi C/C++ dalle basi fino alle strutture più complesse.

C++ è un linguaggio di programmazione, la conoscenza di questo linguaggio di programmazione ti consentirà di controllare il tuo computer al massimo livello. Idealmente, sarai in grado di far fare al computer quello che vuoi. Il nostro sito ti aiuterà a padroneggiare il linguaggio di programmazione C++.

Installazione/IDE

La prima cosa che dovresti fare prima di iniziare a imparare il C++ è assicurarti di avere un IDE, un ambiente di sviluppo integrato (il programma in cui programmerai). Se non hai un IDE, ecco qua. Una volta decisa la scelta dell'IDE, installalo ed esercitati a creare progetti semplici.

Introduzione al C++

Il linguaggio C++ è un insieme di comandi che dicono al computer cosa fare. Questo insieme di comandi è solitamente chiamato codice sorgente o semplicemente codice. I comandi sono “funzioni” o “parole chiave”. Le parole chiave (parole riservate C/C++) sono gli elementi costitutivi di base del linguaggio. Le funzioni sono elementi costitutivi complessi perché sono scritte in termini di funzioni più semplici: lo vedrai nel nostro primo programma, mostrato di seguito. Questa struttura di funzioni ricorda il contenuto di un libro. Il contenuto può mostrare i capitoli del libro, ogni capitolo del libro può avere il proprio contenuto composto da paragrafi, ogni paragrafo può avere i propri sottoparagrafi. Sebbene C++ fornisca molte funzioni comuni e parole riservate che è possibile utilizzare, è comunque necessario scrivere funzioni personalizzate.

Da quale parte del programma inizia? Ogni programma in C++ ha una funzione, si chiama main o funzione principale, l'esecuzione del programma inizia con questa funzione. Dalla funzione main è possibile chiamare anche altre funzioni, siano esse scritte da noi o, come accennato in precedenza, fornite dal compilatore.

Allora come si accede a queste funzionalità standard? Per accedere alle funzioni standard fornite con il compilatore, è necessario includere il file di intestazione utilizzando la direttiva del preprocessore - #include . Perché è efficace? Vediamo un esempio di programma funzionante:

#includere << "Моя первая программа на С++\n"; cin.get(); }

Consideriamo in dettaglio gli elementi del programma. #include è una direttiva "preprocessore" che dice al compilatore di inserire il codice dal file di intestazione iostream nel nostro programma prima di creare l'eseguibile. Collegando un file di intestazione a un programma, puoi accedere a molte funzioni diverse che puoi utilizzare nel tuo programma. Ad esempio, l'operatore cout richiede iostream. Riga che utilizza lo spazio dei nomi std; dice al compilatore di utilizzare un gruppo di funzioni che fanno parte della libreria standard std. Questa riga consente inoltre al programma di utilizzare operatori come cout . Il punto e virgola fa parte della sintassi C++. Dice al compilatore che questa è la fine del comando. Vedrai tra poco che il punto e virgola viene utilizzato per terminare la maggior parte dei comandi in C++.

La successiva riga importante del programma è int main(). Questa riga dice al compilatore che esiste una funzione chiamata main e che la funzione restituisce un numero intero. Le parentesi graffe ( e ) segnalano l'inizio (e la fine) di una funzione. Le parentesi graffe vengono utilizzate anche in altri blocchi di codice, ma indicano sempre una cosa: rispettivamente l'inizio e la fine del blocco.

In C++, l'oggetto cout viene utilizzato per visualizzare il testo (pronunciato "C out"). Usa i simboli<< , известные как «оператор сдвига», чтобы указать, что отправляется к выводу на экран. Результатом вызова функции cout << является отображение текста на экране. Последовательность \n фактически рассматривается как единый символ, который обозначает новую строку (мы поговорим об этом позже более подробно). Символ \n перемещает курсор на экране на следующую строку. Опять же, обратите внимание на точку с запятой, её добавляют в конец, после каждого оператора С++.

Il comando successivo è cin.get() . Questa è un'altra chiamata di funzione che legge i dati dal flusso di dati di input e attende la pressione del tasto INVIO. Questo comando impedisce la chiusura della finestra della console finché non viene premuto il tasto INVIO. Questo ti dà il tempo di vedere l'output del programma.

Una volta raggiunta la fine della funzione principale (chiusura della graffa), il nostro programma restituirà al sistema operativo il valore 0. Questo valore restituito è importante perché analizzandolo, il sistema operativo può giudicare se il nostro programma è stato completato con successo o meno. Un valore restituito pari a 0 significa successo e viene restituito automaticamente (ma solo per il tipo di dati int; altre funzioni richiedono la restituzione manuale del valore), ma se volessimo restituire qualcos'altro, ad esempio 1, dovremmo farlo manualmente.

#includere utilizzando lo spazio dei nomi std; int main() (cout<<"Моя первая программа на С++\n"; cin.get(); return 1; }

Per consolidare il materiale, digita il codice del programma nel tuo IDE ed eseguilo. Una volta che il programma è stato eseguito e hai visto l'output, sperimenta un po' con l'istruzione cout. Questo ti aiuterà ad abituarti alla lingua.

Assicurati di commentare i tuoi programmi!

Aggiungi commenti al tuo codice per renderlo più chiaro non solo per te ma anche per gli altri. Il compilatore ignora i commenti durante l'esecuzione del codice, consentendoti di utilizzare un numero qualsiasi di commenti per descrivere il codice effettivo. Per creare un commento, utilizzare o // , che dice al compilatore che il resto della riga è un commento, oppure /* e poi */ . Quando stai imparando a programmare, è utile poter commentare parti del codice per vedere come cambia l'output del programma. Puoi leggere in dettaglio la tecnica dei commenti.

Cosa fare con tutti questi tipi di variabili?

A volte può creare confusione avere più tipi di variabili quando alcuni tipi di variabili sembrano ridondanti. È molto importante utilizzare il tipo di variabile corretto, poiché alcune variabili richiedono più memoria di altre. Inoltre, a causa del modo in cui vengono archiviati in memoria, i numeri in virgola mobile, i tipi di dati float e double sono "imprecisi" e non devono essere utilizzati quando è necessario archiviare un valore intero preciso.

Dichiarazione di variabili in C++

Per dichiarare una variabile, utilizzare il tipo di sintassi<имя>; . Ecco alcuni esempi di dichiarazioni di variabili:

Numero intero; carattere carattere; float numero_float;

È consentito dichiarare più variabili dello stesso tipo su una riga, ciascuna di esse deve essere separata da una virgola;

Int x, y, z, d;

Se hai osservato attentamente, potresti aver visto che una dichiarazione di variabile è sempre seguita da un punto e virgola. Puoi saperne di più sulla convenzione “sulla denominazione delle variabili”.

Errori comuni quando si dichiarano variabili in C++

Se provi a utilizzare una variabile non dichiarata, il tuo programma non verrà compilato e riceverai un messaggio di errore. In C++, tutte le parole chiave del linguaggio, tutte le funzioni e tutte le variabili fanno distinzione tra maiuscole e minuscole.

Utilizzo delle variabili

Quindi ora sai come dichiarare una variabile. Ecco un programma di esempio che mostra l'uso di una variabile:

#includere utilizzando lo spazio dei nomi std; int main() ( numero int; cout<< "Введите число: "; cin >>numero; cin.ignore(); cout<< "Вы ввели: "<< number <<"\n"; cin.get(); }

Diamo un'occhiata a questo programma ed esaminiamo il suo codice, riga per riga. La parola chiave int indica che il numero è un numero intero. La funzione cin >> legge il valore in number , l'utente deve premere invio dopo il numero inserito. cin.ignore() è una funzione che legge un carattere e lo ignora. Abbiamo organizzato il nostro input nel programma; dopo aver inserito un numero, premiamo il tasto ENTER, simbolo che viene trasmesso anche al flusso di input. Non ne abbiamo bisogno, quindi lo scartiamo. Tieni presente che la variabile è stata dichiarata come intero, se l'utente tenta di inserire un numero decimale, verrà troncato (ovvero la parte decimale del numero verrà ignorata). Prova a inserire un numero decimale o una sequenza di caratteri, quando esegui il programma di esempio, la risposta dipenderà dal valore immesso.

Tieni presente che quando si stampa da una variabile, le virgolette non vengono utilizzate. L'assenza di virgolette indica al compilatore che esiste una variabile e quindi che il programma dovrebbe verificare il valore della variabile per sostituire il nome della variabile con il suo valore durante l'esecuzione. Più istruzioni di spostamento sulla stessa riga sono perfettamente accettabili e l'output verrà eseguito nello stesso ordine. Dovresti separare le stringhe letterali (stringhe racchiuse tra virgolette) e le variabili, assegnando a ciascuna il proprio operatore di spostamento<< . Попытка поставить две переменные вместе с одним оператором сдвига << выдаст сообщение об ошибке . Не забудьте поставить точку с запятой. Если вы забыли про точку с запятой, компилятор выдаст вам сообщение об ошибке при попытке скомпилировать программу.

Modificare e confrontare valori

Naturalmente, indipendentemente dal tipo di dati che stai utilizzando, le variabili non sono molto interessanti senza la possibilità di modificarne il valore. Di seguito vengono mostrati alcuni operatori utilizzati insieme alle variabili:

  • * moltiplicazione,
  • - sottrazione,
  • + aggiunta,
  • / divisione,
  • = incarico,
  • == uguaglianza,
  • > altro
  • < меньше.
  • != disuguale
  • >= maggiore o uguale a
  • <= меньше или равно

Gli operatori che eseguono funzioni matematiche devono essere utilizzati a destra del segno di assegnazione per assegnare il risultato alla variabile a sinistra.

Ecco alcuni esempi:

A = 4*6; // usa il commento di riga e il punto e virgola, a è uguale a 24 a = a + 5; // uguale alla somma del valore originale e cinque a == 5 // non assegna cinque, controlla se è uguale a 5 oppure no

Utilizzerai spesso == in costrutti come istruzioni condizionali e cicli.

UN< 5 // Проверка, a менее пяти? a >5 // Controlla, è più di cinque? a == 5 // Verifica, a è uguale a cinque? a != 5 // Controlla, non è uguale a cinque? a >= 5 // Controlla se a è maggiore o uguale a cinque? UN<= 5 // Проверка, a меньше или равно пяти?

Questi esempi non mostrano molto chiaramente l'uso dei segni di confronto, ma quando inizieremo a studiare gli operatori di selezione, capirai perché ciò è necessario.