Come configurare smartphone e PC. Portale informativo
  • casa
  • notizia
  • Descrizione della struttura del programma della funzione principale in C. Struttura dei programmi C

Descrizione della struttura del programma della funzione principale in C. Struttura dei programmi C

Qualsiasi programma scritto in linguaggio C è costituito da una o più "funzioni", che sono i moduli base da cui è assemblato.

Un esempio della struttura di un semplice programma C:

Forma generale

Esempio

direttive del preprocessore

#includere

# definire N 10

nome funzione principale

inizio del corpo della funzione principale

dichiarazioni di variabili e array

intx=1; charstr[N];

dichiarazioni di programma

mette("accedere nome");

ottiene(str);

printf("\n %s, tu %d sei mio ospite!",str,x);

Fine del corpo della funzione principale

      1. Direttive del preprocessore

La parte del compilatore è un programma chiamato preprocessore. Il preprocessore funziona finché il programma non viene tradotto dalla lingua alto livello in linguaggio macchina, compiendo la sua trasformazione preliminare. Ogni direttiva del preprocessore inizia con un carattere # (numero) e copre l'intera riga. Le direttive che non rientrano in una riga possono essere proseguite nella riga successiva. Il carattere di continuazione della riga è il carattere barra rovesciata (\) nella riga che viene continuata.

La direttiva più comunemente usata consiste nell'includere un file in un programma.

# includere < nome>

dove nomeè il nome del file incluso nel testo del programma.

Questa direttiva si chiama direttiva sulla sostituzione . Dice al compilatore di sostituirlo con il file nome. File nome chiamato intestazione. Contiene dichiarazioni di dati e funzioni utilizzate nel programma. Ad esempio, compresa la direttiva

# includere < matematica. h>

ti consentirà di utilizzare le funzioni matematiche standard nel programma, come sin x, cos x, ln x, ecc. L'elenco delle funzioni matematiche standard sarà riportato di seguito.

Direttiva

# includere < stdio. h>

consente al programma di utilizzare le funzioni standard di input-output.

Un'altra direttiva comunemente usata è la direttiva definizione.

#definisci S1 S2

dove S1, S2- stringhe di caratteri.

Il preprocessore cerca una stringa di caratteri nel testo del programma S1 e lo sostituisce con la stringa S2 . Ad esempio, compresa la direttiva

# definire P stampa f

consente di digitare una lettera sulla tastiera P invece di una parola stampa f.

Questa sostituzione non viene eseguita all'interno di stringhe di testo (letterali), costanti di carattere e commenti, ad es. azione direttiva # definire non si applica ai testi delimitati da virgolette, apostrofi e posti all'interno di commenti.

      1. Funzione principale

Ogni programma C deve contenere una dichiarazione di funzione principale(), che è chiamata funzione principale . In genere, questa funzione non ha parametri e non restituisce alcun valore. La parola è usata per indicare questo fatto. vuoto. Pertanto, la riga con il nome della funzione principale di solito è simile a:

vuoto principale (vuoto)

vuoto principale ()

      1. Variabili e array

Un array è un gruppo di variabili dello stesso tipo con un nome comune. Il nome di una variabile o di un array è un identificatore, una sequenza composta da caratteri:

a - z, A - Z, 0 - 9,_(sottolineatura),

e il primo carattere non può essere una cifra. Minuscolo e caratteri maiuscoli L'alfabeto latino è percepito come caratteri diversi. Le parole funzionali del linguaggio C non possono essere utilizzate come nome di una variabile o di un array. Le principali parole funzione del linguaggio C sono riportate nell'Appendice.

Gli elementi dell'array si distinguono per il loro numero (indici). L'indice può accettare solo valori interi non negativi. L'indice viene scritto dopo il nome dell'array in parentesi quadre. Potrebbero esserci diversi indici. In questo caso, ogni indice è scritto tra parentesi quadre.

Variabili e array possono essere utilizzati in linguaggio C vari tipi. Ogni tipo di dati occupa un certo numero di byte di memoria e può assumere valori da un determinato intervallo. La quantità di questa memoria e, di conseguenza, l'intervallo di valori accettati in diverse implementazioni del linguaggio C possono variare. Il numero di byte di memoria occupati da una variabile di un certo tipo per una particolare implementazione del linguaggio C può essere determinato utilizzando l'operazione taglia di(un tipo). Ad esempio, è possibile determinare la quantità di memoria allocata per una variabile di tipo intero come segue:

k = dimensionedi(int);

stampa f(" Sotto una variabile di tipointallocati %d byte di memoria”,K);

In queste linee guida vengono considerati tre tipi principali di variabili e array, vengono forniti i valori tipici della quantità di memoria occupata e l'intervallo di valori (Tabella 1):

Tabella 1

Identificatore del tipo (parola chiave)

Senso

La dimensione

memoria (byte)

Intervallo di valori

Numero intero

32768 . . . +32767

2147483648 . . . +2147483647

Valido

Numero di tipo reale

3.4ּ10 -38 . . . 3.4ּ10 38

(modulo)

Simbolico

128 . . . +127

Diamo un'occhiata più da vicino alla variabile di tipo car. Come si può vedere dalla Tabella. 1, digitare variabile car occupa un byte di memoria. Un byte di memoria può contenere un intero senza segno dell'intervallo o un intero con segno dell'intervallo [–128, 127]. Questo numero è il codice per uno dei 256 caratteri. Il simbolo corrispondente ad un dato codice è determinato dalla tabella dei codici utilizzata. Pertanto, il valore di una variabile di tipo car può essere considerato sia come un numero intero, sia come un carattere il cui codice è uguale a questo numero.

La composizione della linguaNel testo in qualsiasi lingua naturale, quattro
elementi di base: simboli, parole, frasi e frasi.
Elementi simili sono contenuti nel linguaggio algoritmico:
L'alfabeto di una lingua, oi suoi simboli, sono i segni indivisibili di base, con
con cui vengono scritti tutti i testi nella lingua.
Un lessema è l'unità più piccola di una lingua che ha un indipendente
senso.
Un'espressione definisce una regola per il calcolo di un valore.
Un operatore specifica una descrizione completa di alcune azioni.
Per descrizione azione complessa sequenza richiesta
operatori. Gli operatori possono essere combinati in un composto
istruzione o blocco (un blocco nel linguaggio C++ è
una sequenza di istruzioni racchiuse tra parentesi graffe ( )).
In questo caso, vengono trattati come un'unica affermazione.
Ogni elemento del linguaggio è definito da sintassi e semantica.
Le definizioni sintattiche stabiliscono regole di costruzione
elementi della lingua e la semantica ne determina il significato e le regole
uso.
Combinato da un unico algoritmo, un insieme di descrizioni e
gli operatori formano un programma su linguaggio algoritmico.

Processo di esecuzione del programma

Per eseguire un programma, è necessario tradurlo
in un linguaggio comprensibile al processore - in codici macchina. Questo
il processo si compone di più fasi:
Il programma viene prima passato al preprocessore, che
si collega file di testo, contenente una descrizione
elementi utilizzati nel programma.
Viene inserito il testo completo del programma risultante
compilatore, che evidenzia i token e quindi si basa su
la grammatica della lingua riconosce espressioni e operatori,
costruito da questi lessemi. Il compilatore quindi rileva
errori di sintassi e, se non ce ne sono, build
modulo oggetto.
Il linker, o linker, genera
modulo eseguibile del programma, che si connette all'oggetto
modulo altri moduli oggetto. Se il programma è
da diversi file sorgenti, sono compilati secondo
separatamente e combinati nella fase di collegamento.
Il modulo eseguibile ha l'estensione .exe e può essere
lanciato per l'esecuzione.

Alfabeto del linguaggio C++

L'alfabeto C include:
maiuscolo e minuscolo Alfabeto latino(A,B,...,Z, a,b,...,z) e e
sottolineare;
cifre: 0,1,2,3,4,5,6,7,8,9
personaggi speciali: " , {} | () * + - / % \ ; " . :?< = >_ ! & # caratteri non visualizzabili ("caratteri di spazi bianchi generalizzati"),
usato per separare i lessemi l'uno dall'altro (es. spazio,
punto di tabulazione, vai a nuova linea).
Dai caratteri dell'alfabeto
I lessemi linguistici si formano:
identificatori;
parole chiave (riservate);
segni di operazione;
costanti;
separatori (parentesi, punto, virgola, spazio).
I limiti dei token sono definiti da altri token, ad esempio
separatori o segni di operazione.

Identificatori

ID è un nome oggetto programma. v
È possibile utilizzare identificatori latini
lettere, numeri e trattini bassi. Maiuscolo e
le lettere minuscole sono diverse. Primo personaggio
l'identificatore può essere una lettera o un segno
sottolinea. in cui:
l'identificatore non deve corrispondere alle parole chiave
parole e nomi dello standard utilizzato
oggetti linguistici;
non è consigliabile iniziare gli identificatori con un carattere
sottolineature;
Gli identificatori possono essere di qualsiasi lunghezza, ma
il compilatore prende in considerazione non più di 31 caratteri da
l'inizio dell'identificatore;
Esempi di identificatori:
KOM_16, size88, _MIN, TIME, tempo

Parole chiave

Le parole chiave sono identificatori riservati che hanno
valore speciale per il compilatore. Possono essere utilizzati solo in
il senso in cui sono definiti. Elenco parole chiave C++ è ceduto
tavolo:
INT
CAR
GALLEGGIANTE
DOPPIO
STRUTTURA
UNIONE
LUNGO
BREVE
NON FIRMATO
AUTO
COST
VERO
ESTERNO
REGISTRATI
TYPEDEF
STATICO
VAI A
RESTITUZIONE
TAGLIA DI
ROTTURA
CONTINUA
SE
VUOTO
NUOVO
ALTRO
PER
FARE
MENTRE
INTERRUTTORE
ASTUCCIO
PREDEFINITO
ISCRIZIONE
E
STRUTTURA
TYPEDEF
BOOL

Segnali operativi

Il segno di operazione è uno o più
simboli di azione
sugli operandi. segno interno
non sono ammessi spazi.
Le operazioni sono divise in unarie,
numero binario e ternario
operandi coinvolti.

Tipi di dati semplici

Il tipo di dati definisce:
rappresentazione interna dei dati in memoria
computer;
insieme di valori che possono
accettare valori di questo tipo;
operazioni e funzioni che possono essere
si applicano a valori di questo tipo.
Il linguaggio C++ definisce sei standard
tipi di dati semplici da rappresentare
intero, reale, carattere e
valori logici.

Tipi di dati
Gli specificatori di tipo includono:
car
- simbolico;
double - virgola mobile a doppia precisione reale;
float - virgola mobile reale;
int - intero;
lungo
- intero di lunghezza maggiore (intero lungo);
short - intero a lunghezza ridotta (numero intero corto);
firmato - firmato, cioè numero intero con segno (il bit più significativo conta come
iconico);
non firmato - non firmato, ad es. intero senza segno (il bit più significativo non
considerato iconico).
vuoto
- mancanza di valore;
bool - booleano (può prendere solo i valori true e false.
La rappresentazione interna di false è 0 (zero).
Qualsiasi altro valore viene interpretato come true.)
Per descrivere le costanti, usa la parola di servizio const prima
tipo descrizione. Ad esempio, const float g=9,8;

10. Struttura di un programma C

Un programma C++ lo è
una o più funzioni. Una delle funzioni
dovrebbe essere chiamato main(). È da questo
la funzione avvia l'esecuzione del programma e da
questa funzione, se necessario,
vengono chiamate altre funzioni.
La definizione di funzione più semplice ha il seguente formato:
nome_tipo_restituito ([ parametri ])
{
affermazioni che compongono il corpo della funzione
}
Di norma, la funzione viene utilizzata per calcolarne alcuni
valori, quindi il nome della funzione è preceduto dal suo tipo. Se
la funzione non deve restituire un valore, viene specificato il tipo void.
in cui:
– Il corpo della funzione è racchiuso tra parentesi graffe.
– Le funzioni non possono essere nidificate.
– Ogni istruzione termina con un punto e virgola (tranne
operatore composto).

11. Struttura di un programma C

Un programma può essere costituito da più moduli (file sorgenti) e, di regola,
contiene le direttive del preprocessore. Un esempio di una struttura di programma contenente
funzioni principali, f1 e f2:
direttive del preprocessore
descrizioni
int principale()
{
operatori delle funzioni principali
}
int f1() (
operatori della funzione f1
}
int f2() (
operatori della funzione f2
}
/* Esempio di programma semplice */
#includere
int principale()
{
printf("Ciao Mondo!");
restituire 0;
}

12. Funzioni di I/O in stile C

Funzioni I/O di base in stile C:
int scanf (const char* format...) // input
int printf(const char* format...) // output
Eseguono input e output formattati di un numero arbitrario di valori in base alla stringa
formato. La stringa di formato contiene caratteri che vengono copiati nello stream (sullo schermo) o
sono richiesti dal flusso (dalla tastiera) in input e le specifiche di conversione che iniziano con
Segno %, che vengono sostituiti da valori specifici durante l'input e l'output.
#includere
int main() (
int io;
printf("Inserisci un intero\n");
scanf("%d", &i);
printf("Hai inserito il numero %d, grazie!", i);
restituire 0; )
La prima riga di questo programma è una direttiva del preprocessore che si inserisce nel testo del programma
file di intestazione , contenente una descrizione delle funzioni di input/output utilizzate nel programma. Qualunque cosa
le direttive del preprocessore iniziano con un segno #.
La terza riga è una descrizione di una variabile di tipo intero denominata i .
funzione printf sulla quarta riga viene visualizzato il prompt Immettere un numero intero e si sposta su una nuova riga
secondo la \n sequenza di escape.
La funzione scanf memorizza l'intero immesso dalla tastiera nella variabile i e la seguente istruzione viene stampata in
schermare la stringa che contiene, sostituendo la specifica di conversione con il valore di quel numero.

13. Funzioni di I/O in stile C++

Lo stesso programma che utilizza la libreria
Classi C++ :
#includere
usando lo spazio dei nomi std;
int principale()
{
int io;
cout<< "Введите целое число\n";
cin >> io;
cout<< "Вы ввели число" << i << ", спасибо!"; return 0;
}

14. Biblioteche standard

Il linguaggio C ha un ricco supporto nel modulo
più di 450 routine di libreria di funzioni e macro che puoi
chiama dai tuoi programmi C per risolvere
un'ampia gamma di attività, compreso l'I/O
basso e alto livello, lavorare con
righe e file, allocazione di memoria,
gestione dei processi, trasformazione
dati, calcoli matematici e
molto di piu.

15. Direttive del preprocessore

La prima fase è chiamata preprocessore.
compilatore. Istruzioni per il preprocessore
prendono il nome di direttive. Loro devono
iniziare con un carattere #, preceduto da
la riga può contenere solo spazi
simboli.
Cerca un file se non è specificato il percorso completo,
mantenuto nei cataloghi standard
file inclusi. Invece di angolare
parentesi quadre, virgolette (" ") possono essere utilizzate
- in questo caso, la ricerca del file viene effettuata in
directory contenente il file di origine e
quindi già nelle directory standard.
I file di intestazione di solito hanno
estensione.h .

16. Direttiva sul preprocessore #include

Per connettere le librerie, usa
direttiva del preprocessore
# includi [nome file]
Direttiva #include<имя_файла>inserti
il contenuto del file specificato fino a quel punto
il file sorgente in cui è scritto.
Ad esempio:
#includere
#include "mylib.h"

17. #define direttiva per il preprocessore

La direttiva #define definisce una sostituzione nel testo
programmi. È usato per determinare
costanti simboliche.
Formato di definizione della costante simbolica:
#define nome sostituzione_testo /*Tutte le occorrenze
i nomi vengono sostituiti con il testo di sostituzione */
Esempi:
#definisci M 1000
#define Vasia “Vasily Ivanovich”

18. Alcune biblioteche standard

ALLOC.H
Descrizione delle funzioni di gestione della memoria
(allocazione, deallocazione, ecc.)
BIOS.H
Descrizione delle varie funzioni utilizzate in
accedere alle subroutine del BIOS (base
sistema di I/O).
CONIO.H Descrizione delle varie funzioni utilizzate in
accedere alle routine di I/O DOS con
tastiere.
GRAPHICS.H Contiene prototipi di funzioni grafiche.
MATH.H Contiene una descrizione dei prototipi di matematica
funzioni
STDIO.H Definisce i tipi e le macro necessari per
pacchetto I/O standard. Definisce anche
flussi di input/output standard stdin, stdout e
descrive le subroutine di I/O.
STDLIB.H Descrive alcune routine di uso generale:
subroutine per la trasformazione, la ricerca, l'ordinamento e altro.
STRING.H
Descrive diverse routine di elaborazione delle stringhe e
lavoro di memoria.

19. Funzione di output in formato PRINTF

Abbiamo già usato il più comune
la funzione di output in C è la subroutine printf. Sua
lo scopo è scrivere informazioni sullo schermo.
Il suo formato è semplice e flessibile:
printf(<строка формата>, <объект>, <объект>, ...);

20. Funzione di immissione del formato SCANF

Per la modalità di input interattivo, probabilmente può essere utilizzato in
nella maggior parte dei casi, la funzione scanf. scanf è una funzione di input, per definizione
equivalente a printf; il suo formato è simile a questo:
scanf(<строка формата>,<адрес>,<адрес>,...)
Tuttavia, scanf ha una differenza molto importante: gli oggetti seguenti
format string deve essere indirizzi, non valori. Ad esempio, nel
Il programma contiene il seguente bando:
scanf("%d %d", &a, &b);
Questa chiamata dice al programma che dovrebbe aspettarsi un input da te.
due numeri decimali (interi) separati da uno spazio; il primo testamento
assegnato ad a, e il secondo a b. Nota che qui usiamo l'operazione
indirizzi (&) per passare gli indirizzi aeb a scanf.

21. Formatta la stringa

La stringa di formato è la stringa che inizia
e termina con virgolette ("come questa");
lo scopo di printf è scrivere questa riga sullo schermo. Davanti
l'output di printf sostituisce tutto ciò che è extra
oggetti elencati in linea secondo
con le specifiche di formato specificate in
la linea stessa. Un esempio di istruzione printf:
printf(“ d= %f \n",d);

22. Formatta la stringa

Il %f nella stringa di formato è la specifica del formato. Qualunque cosa
le specifiche del formato iniziano con un segno di percentuale (%) e
(di solito) seguito da una singola lettera che denota il tipo
dati e come trasformarli.
%f utilizzato nelle specifiche dice cosa ci si aspetta
qualche numero reale. Ecco alcune altre specifiche di formato comunemente utilizzate:
- %u intero senza segno
- %ld intero lungo
- %p valore del puntatore
- %d intero
- %e numero in virgola mobile in forma esponenziale
- %c carattere
- %s stringa
- %x o %X intero in formato esadecimale.

23. Formatta stringa

Puoi impostare la larghezza del campo inserendola
tra % e lettera, ad esempio campo decimale
la larghezza 4 è data come %4d. Il valore sarà
stampato spostato a destra (davanti a
spazi), quindi la larghezza totale del campo è 4.
O ad esempio %6.2f significherebbe questo
assegnato 6 posizioni per un numero reale,
e 2 - sotto la parte frazionaria.
Se vuoi stampare un segno %, inserisci %%.

24. Formatta stringa

\n in una stringa non è una specifica di formato, ma
usato (per ragioni storiche) come
sequenza di escape e rappresenta
un carattere speciale inserito in una stringa. In questo caso
\n inserisce un carattere all'inizio di una nuova riga, quindi
dopo che la riga è stata emessa, il cursore si sposterà all'inizio della nuova riga
Linee.
- \f (traduzione del formato o schermo trasparente)
- \t (scheda)
- \b (backspace<-)
- \xhhh (inserire un carattere con codice ASCII hhh, dove hhh
contiene da 1 a 3 cifre esadecimali)
Se è necessario stampare una barra rovesciata, allora
inserisci \\.

25. Un esempio di programma C

#includere
#includere
principale()
{
float x1,y1,x2,y2;
printf("Inserisci due numeri: ");
scanf("%f %f %f %f",&x1,&y1,&x2,&y2);
float d = sqrt(pow((x2-x1),2)+pow((y2-y1),2));
printf("d= %f \n", d);
}

26. Altre funzioni di uscita PUTS, PUTCHAR

Ci sono altre due funzioni di output che possono aiutarti
di interesse: put e putchar. La funzione puts restituisce una stringa a
schermo e termina l'output con un carattere di nuova riga.
Considera un programma di esempio:
#includere
principale()
{
puts("Ciao, studente di VKI NSU");
}
Nota che \n è omesso alla fine della riga; questo non è necessario, perché
si mette aggiunge questo carattere.
Al contrario, la funzione putchar scrive un singolo carattere in
schermo e non aggiunge \n. putchar(ch) è equivalente a
printf("%c",ch).

27. Funzioni GETS, GETCH

principale()
{
nome del personaggio ;
printf("Come ti chiami: ");
scanf("%s",nome);

}
Se si immettono un cognome e un nome, verrà visualizzato solo il cognome. Perché
lo spazio che inserisci dopo il nome segnala di scansionare la fine dell'input
Linee.
Puoi risolvere questo problema usando la funzione gets.
principale()
{
nome del personaggio ;
printf("Come ti chiami: ");
ottiene(nome);
printf("Ciao, %s\n", nome);
}

28. GETS, GETCH funzioni

#includere
#includere
principale()
{
clrscr();
nome del personaggio ;
printf("Come ti chiami: ");
ottiene(nome);
printf("Ciao, %s\n", nome);
getch();
}
Qui la funzione getch attende l'inserimento di qualsiasi carattere.
La funzione getch legge un singolo carattere dalla tastiera senza emettere
sullo schermo (a differenza di scanf e gets). Nota che non ha
parametro. Se assegniamo la funzione a una variabile simbolica, allora
otterrà il valore del carattere premuto.
Ad esempio: c=getch();

29. Operazione di affidamento

L'operazione più comune è l'assegnazione,
ad esempio, p=a/b o ch = getch(). In c
assegnazione è indicata da un singolo carattere
uguaglianza (=); mentre il valore a destra del segno
l'uguaglianza è assegnata alla variabile a sinistra.
Puoi anche usare sequenziale
compiti, ad esempio: sum=a= b. Tale
casi, l'assegnazione è effettuata a destra
a sinistra, cioè b sarà assegnato ad a, che in
a sua volta sarà assegnato alla somma, quindi tutto
tre variabili avranno lo stesso valore (e
vale a dire, il valore iniziale b).

30. Operazioni aritmetiche. Incremento. Decremento.

C supporta il solito insieme di operazioni aritmetiche:
- moltiplicazione (*)
- divisione (/)
- determinazione del resto della divisione (%)
- aggiunta (+)
- sottrazione (-)
Per aumentare il valore di una variabile di uno, utilizzare l'incremento (++),
decrementa (--) per diminuire di uno.
Così:
x++; // incrementa x di uno
y--; // Decrementa y di uno
Esempi di operazioni su suffisso e prefisso:
a=2;
a=2;
x=18-2*a++;
x=18-2*(++a);
Noi abbiamo:
a=3
a=3
x=14
x=12

31. Operazioni combinate

Di seguito sono riportati alcuni esempi di espressioni
e modi per ridurli:
a = a + b abbreviato in a += b;
a = a - b; abbreviato in a -= b;
a = a * b; abbreviato in a *= b;
a = a / b; abbreviato in a /= b;
a = a % b; ridotto a %= b;

32. Esempio 1

Calcola X3 e X10 usando quattro moltiplicazioni per
dato il valore intero X.
#includere
int x,x2,x3,x5,x10;
principale() (
printf("\n Programma di calcolo X^3 e X^10\n");
puts("Inserisci valore X");
scanf("%i",&x);
x2=x*x;
x3=x*x2;
x5=x2*x3;
x10=x5*x5;
printf("%i alla terza potenza = %i \n",x,x3);
printf("%i alla decima potenza = %i",x,x10);
}

33. Esempio 2

Dato un angolo in radianti. Calcola seno e coseno di un angolo.
#includere
#includere
float Angolo, Risultato1, Risultato2;
principale()
{
printf("\n Programma per il calcolo dell'angolo sin e cos\n");
puts("Imposta il valore dell'angolo in radianti");
scanf("%f",&Angolo);
Risultato1=peccato(Angolo);
Risultato2=cos(Angolo);
printf("Il seno dell'angolo è %f \n",Risultato1);
printf("Il coseno dell'angolo è %f",Risultato2);

Prima di iniziare a scrivere programmi, è necessario studiare la struttura dei programmi nel linguaggio di programmazione C++. In altre parole, la struttura dei programmi è il markup dell'area di lavoro (area del codice) per definire chiaramente i blocchi principali dei programmi e la sintassi. La struttura dei programmi è leggermente diversa a seconda dell'ambiente di programmazione. Ci concentriamo sull'IDE di Microsoft Visual Studio e quindi i programmi di esempio verranno mostrati specificamente per MVS. Se stai utilizzando un IDE diverso, non sarà difficile per te portare il codice da MVS ad altri ambienti di sviluppo e capirai come farlo nel tempo.

Struttura dei programmi per Microsoft Visual Studio.

// struct_program.cpp: definisce il punto di ingresso per l'applicazione console. #include "stdafx.h" // qui includiamo tutte le necessarie direttive del preprocessore int main() ( // l'inizio della funzione principale chiamata main // il codice del tuo programma si troverà qui )

La riga 1 fa riferimento al punto di ingresso per un'applicazione console, il che significa che questo programma può essere eseguito tramite la riga di comando di Windows specificando il nome del programma, ad esempio struct_program.cpp . La riga 1 è un commento a riga singola perché inizia con i caratteri // , maggiori informazioni sui commenti verranno discusse nel prossimo articolo. La riga 2 include il file di intestazione "stdafx.h" . Questo file è simile a un contenitore, poiché in esso sono collegate le principali direttive del preprocessore (quelle che il compilatore ha collegato durante la creazione dell'applicazione console), le direttive ausiliarie (collegate dal programmatore) possono anche essere collegate proprio lì.

include è una direttiva del preprocessore, ovvero un messaggio al preprocessore. Le righe che iniziano con il simbolo # vengono elaborate dal preprocessore prima della compilazione del programma.

Le direttive del preprocessore possono anche essere incluse nelle righe, iniziando dopo la voce #include "stdafx.h" prima dell'inizio della funzione principale. Inoltre, questo modo di connettere le librerie è il principale e l'uso di "stdafx.h" è un'ulteriore possibilità di connettere i file di intestazione, disponibile solo in MVS. Dalla 4a alla 6a riga viene dichiarata la funzione principale. La riga 4 è l'intestazione della funzione, che consiste nel tipo restituito (in questo caso, int) di questa funzione, e il nome della funzione, nonché le parentesi che dichiarano i parametri della funzione.

int - tipo di dati intero

Tra parentesi graffe è posto il codice del programma principale, detto anche corpo della funzione. Questa è la struttura del programma più semplice. Questa struttura è scritta in Microsoft Visual Studio. Tutto quanto sopra vale anche per altri compilatori, ad eccezione della riga 2. Non esiste alcun contenitore "stdafx.h" da nessuna parte tranne MVS.

Struttura del programma per C++ Builder.

Quando crei un'applicazione console, la Creazione guidata nuovo progetto genera automaticamente il codice seguente:

//direttiva del preprocessore inclusa automaticamente dalla procedura guidata di creazione del progetto #include int main() ( ritorno 0; )

Vediamo che il tipo di dati della funzione è int . Ciò significa che quando la funzione termina, restituirà un valore intero, nel nostro caso 0. Intero perché int è il tipo di dati per numeri interi come 4, 5, 6, 456, 233, ecc.

La cosa principale da ricordare è che se il tipo di dati di ritorno della funzione principale è int o qualsiasi altro tranne void , dovresti scrivere una riga come questa: return<возвращаемое значение>;

Nella riga 2, la libreria vcl.h è connessa: viene automaticamente connessa dalla procedura guidata di creazione dell'applicazione, quindi non dovresti eliminarla, altrimenti il ​​progetto non funzionerà.

In generale, la procedura guidata crea automaticamente una struttura del programma leggermente diversa da quelle che abbiamo considerato, ma l'essenza rimane la stessa.

Ad esempio:

int main(int argc, char* argv) ( return 0; )

Tale struttura di esempio viene generata dalla procedura guidata in MVS2010. Questo principale è leggermente diverso. Lo esamineremo più in dettaglio in seguito, ma dirò che questo main ha questa forma, poiché è stato originariamente progettato per supportare Unicode.

Unicode è uno standard di codifica dei caratteri che può rappresentare i caratteri di quasi tutte le lingue scritte. Parleremo di più su Unicode più avanti.

Esistono diverse versioni di main , ma non c'è niente di sbagliato in questo, poiché main era la funzione principale, quindi rimane così, quindi tutto quanto detto sopra rimane rilevante.

Un esempio della struttura di un programma MVS con librerie collegate.

#include "stdafx.h" #include usando lo spazio dei nomi std; int main() ( )

Il nome delle librerie collegate è scritto all'interno dei segni maggiore di, minore di. I file di intestazione e il nome delle librerie incluse sono sinonimi.

La sintassi per includere i file di intestazione è:

#includere<имя заголовочного файла>

I file di intestazione più vecchi sono inclusi in questo modo (questo stile di inclusione delle librerie è ereditato dal linguaggio di programmazione C):

#includere<имя заголовочного файла.h>

La differenza è che il nome è seguito dall'estensione .h.

Il linguaggio di programmazione C++ fa distinzione tra maiuscole e minuscole. Ad esempio:
restituire 0; - sbagliato, ci sarà un errore di compilazione.
restituire 0; - Giusto!!!

Questo articolo discute le strutture dei programmi C++ in ambienti come MVS e Borland. E come hai già notato, queste strutture sono quasi le stesse. Pertanto, questo articolo è rilevante per qualsiasi IDE. Se non hai ancora deciso la scelta dell'IDE, leggi.

Struttura di un programma C.

Utilizzo del linguaggio di programmazione C nella risoluzione di problemi economici

Programmi e dati

Vantaggi del linguaggio C

1) C è un linguaggio moderno, la sua struttura incoraggia il programmatore a utilizzare metodi nel suo lavoro: design top-down, programmazione strutturata, struttura modulare dei programmi.

2) C è un linguaggio efficiente. I programmi C sono compatti e veloci da eseguire.

3) C - lingua portatile o mobile.

4) C è un linguaggio potente e flessibile.

5) I programmi scritti in C servono a risolvere problemi di vario livello. C ha una serie di potenti costrutti assembler.

6) Il C è un linguaggio comodo, è strutturato e allo stesso tempo non limita troppo la libertà dei programmatori.

7) C è un linguaggio di tipo di compilazione. Poiché il C è un linguaggio standardizzato, indipendente dal dispositivo e ampiamente disponibile, le applicazioni scritte in C possono spesso essere eseguite con poche o nessuna modifica su un'ampia varietà di sistemi informatici. Il computer, nonostante la sua velocità e potenza di calcolo, è un semplice dispositivo che manipola i numeri binari. Alcuni numeri binari vengono interpretati dal computer come comandi, altri come dati. Per fare in modo che un computer faccia qualcosa di utile, devi scrivere un programma.

Programmazione attività di programmazione.

Programma è una descrizione dell'algoritmo per la risoluzione di un problema data nel linguaggio del computer.

Squadra istruzioni per il passaggio successivo.

Esempio comandi: С=А+В, dove А, В-operandi, operazione +-.

Operazione è ciò che il computer deve fare in base a ciascun comando.

operandi -partecipanti all'operazione, quindi su cosa e con che cosa l'operazione viene eseguita. Un insieme di operazioni elementari dai modi delle loro descrizioni formano un sistema di comandi del linguaggio di programmazione.

Esempio 1:

#includere

(void main(void) //header della funzione principale del programma

fuori<< “Здравствуй, С!\ n”;

1 riga: collegamento di librerie ausiliarie focalizzate su input e output di dati di diverso tipo al flusso.

2a riga: intestazione della funzione principale del programma. Istruzione Cout per produrre informazioni<< – помещение в класс данных, \n-переход к новой строке вывода.

Programma è una sequenza di istruzioni che implementano un algoritmo, un insieme di prescrizioni che determinano in modo univoco il contenuto e la sequenza delle operazioni per la risoluzione dei problemi.

L'uso di S.

1. Programmi e dati.

2. Schema di esecuzione del programma su un computer:

Esempio 1:

#includere< stdio.h>

printf ("Io studio alla BSUIR\ n");

1 riga: comando includere il preprocessore, che include il file stdio.h, che descrive la funzione della libreria printf.

Riga 2: definizione di una funzione denominata main che non accetta argomenti. La dichiarazione principale è racchiusa tra parentesi graffe. La funzione principale chiama la funzione della libreria printf per la stampa, data in sequenza di caratteri. Barra (\n) - newline letterale, transizione a newline.

Per eseguire il programma su PVEM, è necessario effettuare le seguenti operazioni:

1) Scrivere un programma in un linguaggio di programmazione.

2) Trasmettilo nello standard di questa lingua.

3) Associarlo ai programmi e alle funzioni necessari.

4) Carica nella RAM.

5) Corri e ottieni il risultato.


SCHEMA DI COMPILAZIONE

Un traduttore è un programma per computer che traduce un programma scritto in un linguaggio di programmazione in una forma che un computer può comprendere. L'output del compilatore è un file con estensione obj. Un file eseguibile o un modulo di caricamento è un file che contiene un programma compilato e pronto per l'esecuzione. Borland C++ è un ambiente di sviluppo per programmi che includono sia un compilatore che altri strumenti.

Struttura di un programma C.

Qualsiasi programma C è costituito da una o più funzioni ed elementi. Diverse funzioni possono essere assegnate a qualsiasi nome. Le funzioni contengono istruzioni (comandi) che prescrivono azioni in una determinata fase dell'esecuzione e la variabile memorizza i valori utilizzati nel corso di queste azioni. Tali azioni possono essere l'assegnazione di valori a variabili, il controllo di alcune condizioni. La funzione denominata main. L'esecuzione di qualsiasi programma inizia con la funzione principale.

a) La struttura generale di un programma C senza fare riferimento a una subroutine:

b) La struttura generale di un programma C con riferimento ai sottoprogetti:

Gli argomenti sono uno dei meccanismi di interazione tra le funzioni. L'elenco degli argomenti tra parentesi segue il nome della funzione. Le parentesi graffe incorniciano l'inizio e la fine di un programma. Istruzioni che compongono il corpo dei programmi di operatori e operandi. In C, ogni istruzione e ogni riga di chiamate di funzione termina con un punto e virgola. L'eccezione sono i comandi del preprocessore e i nomi delle funzioni che appaiono all'inizio di un'unità di programma. L'obiettivo della maggior parte dei programmi è risolvere il problema attraverso varie trasformazioni dei dati di origine. Per questo è necessario.

Si prega di mettere in pausa AdBlock su questo sito.

Spero che tu abbia già installato dell'IDE sul tuo computer e abbia imparato a compilare programmi al suo interno. Se no, allora

Tutti i programmi scritti in C hanno una struttura comune. Di cui parleremo in questa lezione. Il nostro primo programma scritto nel passaggio precedente ci aiuterà in questo.

Compiliamo una semplice mappa. Al momento sappiamo che i programmi esistono, ma non sappiamo come siano disposti all'interno. Pertanto, la nostra mappa sarà simile a questa.

Fig.1 Mappa "Struttura dei programmi C". Primo livello.

Durante il corso, torneremo su questa mappa, la perfezioneremo, la integreremo con nuovi elementi e blocchi.

Ora attenzione. Non aver paura! Di seguito è riportato il codice sorgente di tre semplici programmi. Il tuo compito è guardarli attentamente e cercare di trovare uno schema nel loro codice (qualcosa che è comune in ogni programma).

Listato 1. Programma 1. Stampa "Hello, World!"

#includere

Listato 2. Programma 2

int main(void) ( int a, b, c; a = 5; b = 10; c = a+b; return 0; )

Listato 3. Programma 3

#includere int main(void) ( FILE *fp; fp = fopen("input.txt", "w"); fprintf(fp, "Questa è Sparta!"); fclose(fp); return 0; )

Prenditi il ​​tuo tempo per guardare la continuazione della lezione e la risposta corretta a questo problema. Per prima cosa, prova a rispondere a te stesso. Successivamente, fai clic sul pulsante "Guarda la continuazione!"

Quindi, la risposta è: in tutti i programmi sopra, c'è la seguente costruzione:

Listato 4. La funzione principale di qualsiasi programma C è la funzione principale.

int main(void) (restituisce 0; )

Che tipo di design è questo. Questa è la dichiarazione della funzione principale. Ogni programma scritto in C ha una tale funzione. Che si tratti di un programma grande o piccolo, di un gioco per computer o di un programma "Hello, World!" scritto da te o da Bill Gates -- se il programma è scritto in C - - ha una funzione principale. Questa è la funzione principale del nostro programma, per così dire. Quando eseguiamo un programma, possiamo pensare a noi stessi come all'esecuzione della funzione principale del programma.

Fermiamoci un secondo. Sembra che abbiamo già capito qualcosa sulla struttura dei programmi in linguaggio C. Qualsiasi programma C deve contenere una funzione principale. Mostriamo questo fatto sulla nostra mappa della conoscenza "Struttura dei programmi C".

Fig.2 Mappa "Struttura dei programmi C". funzione principale.

Ora la mappa non ci disturba con il suo vuoto spalancato. Continuiamo la nostra ricerca.

Vorrei parlare un po' della funzione principale e delle funzioni in generale.

Int è scritto prima del nome della funzione, questa è l'abbreviazione della parola intero, che è tradotto dall'inglese come "intero". Tale notazione significa che quando la funzione principale completa il suo lavoro, deve restituire un numero intero al programma chiamante (nel nostro caso, questo è il sistema operativo). Di solito, per la funzione principale, questo è il numero zero, che notifica al sistema operativo: "Dicono che va tutto bene. Non ci sono stati incidenti".

Hai mai visto messaggi di errore sullo schermo del tuo computer? Di solito scrivono qualcosa come "Il programma si è bloccato... bla bla bla... Codice -314". Qui è più o meno lo stesso. La differenza è che quando si verificano problemi, il sistema operativo ci avvisa di questo e quando tutto va bene, non ci disturba più.

Dopo il nome della funzione, la parola void viene scritta tra parentesi. In generale, gli argomenti delle funzioni sono generalmente scritti tra parentesi, ma nel nostro caso, quando void è scritto tra parentesi, significa che la funzione non ha argomenti. In altre parole, la funzione principale non necessita di alcun input aggiuntivo dall'esterno per iniziare. Parleremo di tutto questo in modo più dettagliato, ma per ora, ricorda solo che la parola void invece di argomenti di funzione significa che non sono richiesti argomenti per questa funzione.

Tra parentesi graffe c'è la descrizione della funzione principale, ovvero esattamente ciò che questa funzione dovrebbe fare.

Prima della parentesi graffa di chiusura, vediamo il comando di ritorno. È questo comando che è responsabile della restituzione del valore dalla funzione. Quelli. guarda, se il programma ha raggiunto questo punto, è andato tutto bene e non si sono verificati errori, il che significa che puoi restituire il valore zero.

Potresti chiedere, perché esattamente zero? E il diavolo lo sa! È solo il modo in cui lo fanno di solito. In linea di principio, puoi restituire un altro numero intero, come 100 o -236. Sempre che sia un numero intero. Ricordi int? Pertanto, il tutto.

Quindi abbiamo capito la funzione principale. Ancora un momento. Ciò che è scritto tra parentesi graffe è solitamente chiamato "corpo della funzione" (o descrizione della funzione) e la prima parte, quella prima delle parentesi graffe, è chiamata intestazione della funzione.

Torniamo al nostro primo programma "Hello, World" e vediamo cosa è cosa.

Listato 5. Programma "Hello, World".

#includere int main(void) ( printf("Hello, World!\n"); return 0; )

Qualcosa che ora comprendiamo in questo programma. Rimangono poco chiare solo due righe, andiamo con ordine.

Listato 6. La direttiva include

#includere

Questa riga è un messaggio per il compilatore. Questi messaggi, che iniziano con il carattere #, sono chiamati direttive del compilatore. Letteralmente: "collega il file stdio.h". Durante la compilazione, al posto di questa riga verrà inserito il contenuto del file stdio.h. Ora parliamo un po' di questo file. stdio.h (da STanDart Input Output) è un file di intestazione che descrive varie funzioni standard relative all'input e all'output.

Sorge una domanda ragionevole: "Perché abbiamo bisogno di scrivere questa riga? Perché abbiamo anche bisogno di inserire questo file qui?" Ciò è necessario affinché nel nostro programma possiamo utilizzare la funzione di output dello schermo printf() standard.

Il punto è questo. Prima di utilizzare qualcosa nel nostro programma, dobbiamo prima descriverlo. Immagina la situazione, ti è stato chiesto di portare un lampadario, ma non sai cosa sia. Non è chiaro cosa fare.

Così è il compilatore. Quando incontra una funzione, cerca la sua descrizione (cioè cosa dovrebbe fare e cosa significa) all'inizio del programma (dall'inizio fino al momento in cui viene utilizzato nel programma). Quindi, la funzione printf() è descritta nel file stdio.h. Ecco perché lo colleghiamo. Ma quando lo colleghiamo, il compilatore sarà in grado di trovare la funzione printf(), altrimenti darà un errore.

A proposito, è tempo di integrare la nostra mappa della conoscenza. Prima della funzione principale, aggiungiamo un altro blocco, il blocco per la connessione dei file di intestazione.

Fig.3 Mappa "Struttura dei programmi C". Blocco di connessione dei file di intestazione.

Continuiamo con il nostro programma.

Listato 7. funzione printf()

Printf("Ciao mondo!\n");

In questa riga, chiamiamo la funzione standard printf() per la visualizzazione sullo schermo. In questo caso più semplice gli passiamo un parametro, una stringa tra virgolette, che deve essere visualizzata sullo schermo, nel nostro caso è Hello, World! \n Ma aspetta, cos'è questo \n? Non c'era \n sullo schermo quando il programma è stato avviato. Perché allora lo abbiamo scritto qui? Questa sequenza è un carattere speciale che è un comando per passare alla riga successiva. È come premere il tasto Invio in MS Word. Esistono molti di questi caratteri speciali, tutti scritti usando il carattere "\" - una barra rovesciata. Questi caratteri speciali sono chiamati caratteri di controllo. Poi te li mostro. In caso contrario, sullo schermo apparirà esattamente ciò che hai scritto tra virgolette.

A proposito, nota che ogni comando C termina con un ";" (punto e virgola). È come un punto alla fine di una frase in russo. In un linguaggio normale, separiamo le frasi con un punto e nel linguaggio di programmazione C, un punto e virgola separa i comandi l'uno dall'altro. Pertanto, un punto e virgola è obbligatorio. In caso contrario, il compilatore giurerà e darà un errore.

Per chiamare una funzione, devi scriverne il nome e specificare tra parentesi i parametri che le sono passati. Una funzione può avere uno o più parametri. Oppure potrebbe non esserci alcun parametro, nel qual caso non è necessario scrivere nulla tra parentesi. Ad esempio, sopra abbiamo chiamato la funzione printf() e le abbiamo passato un parametro, la stringa da stampare sullo schermo.

A proposito, buon consiglio. Poiché ogni programma ha sempre una funzione principale, e letteralmente in ogni programma abbiamo bisogno di visualizzare qualcosa sullo schermo, ti consiglio di creare immediatamente un file con il seguente spazio vuoto in modo da non scrivere la stessa cosa ogni volta.

Listato 8. Modello standard per i programmi C.

#includere int main(void) (restituisce 0; )

Bene, sembra essere tutto. Questa prima lezione può considerarsi completata. Anche se no, c'è un'altra cosa.

La cosa più importante in questa lezione è, ovviamente, la struttura generale del programma. Ma in aggiunta, abbiamo imparato come visualizzare sullo schermo del testo arbitrario. Sembra che non abbiano imparato niente, ma basta anche questo per fare, ad esempio, un piccolo regalo a tua madre l'8 marzo.


Il codice sorgente del programma cartoline è nell'archivio con i codici sorgente di questa lezione. Sperimentare! Avrai successo.

Articoli correlati in alto