Lucrări de laborator

Partea 1. Noțiuni de bază privind crearea de programe în C

Sarcina 1 Aplicația "Hello World!"

Este dată o reprezentare a unei funcții elementare.

#include #include / *

** Imprimați un mesaj simplu. * /







int principal (int argc, char * argv [])

printf ("Hello World! \ n"); printf ("Apăsați o tastă. \ n"); getch ();

Apoi, fișierul de cod rezultat trebuie să fie compilat pentru a obține executabilul

Pe primele laboratoare pentru compilare vom folosi cel mai simplu compilator DJGPP, distribuit sub o licență GNU deschisă.

Mai întâi, verificați disponibilitatea apelului la comenzile compilatorului din linia de comandă. Introduceți următoarele în linia de comandă:

Următoarele informații vor apărea în fereastră:

Specificațiile de citire din c: / djgpp / lib / specs

Aceasta înseamnă că compilatorul este disponibil.

Lucrări de laborator

Noțiuni de bază privind crearea de programe în C

Revenind la fișierul programului Hello.c, compilam conținutul acestui fișier în executabilul Hello.exe. Mai întâi, trebuie să setați directorul curent pe linia de comandă la D: \ Student, pentru aceasta vom folosi comanda de schimbare a discului curent și a directorului său "cd":

Comanda de schimbare a discului este pur și simplu numele discului:

Comanda pentru a schimba directorul pe unitatea curentă D:

Deci, fiind în directorul curent (D: \ Student), puteți apela comenzile compilatorului pentru fișierele de cod C din acest director. Metoda de a apela comanda are următoarea formă generalizată:

> gcc filename.c -o filename_executable.exe

Pentru exemplul nostru, primim următoarea comandă:

> gcc Hello.c -o HelloApp.exe

După apăsarea tastei ENTER, compilatorul va începe să funcționeze. Dacă nu există erori în programul nostru, atunci codul programului executabil va fi creat în fișierul .exe HelloApp. Pentru execuția sa este suficient să tastați în linia de comandă:

> HelloApp .exe

Rezultatul va fi următorul:

Dacă eroarea a intrat în cod, compilatorul o va raporta, de exemplu:

D: \ Student> gcc Hello.c -o HelloApp.exe

Hello.c: În funcția `main ':

Hello.c: 10: eroare de analiză înainte de 'printf'

Acest lucru indică faptul că codul nu poate fi analizat înainte de a apela funcția 'printf' pe linia 10. În acest caz, punct și virgulă a fost omisă după primul apel al funcției 'printf':

printf ("Apăsați o tastă. \ n");

În conformitate cu regulile sintaxei limbajului: Fiecare operator din corpul funcției se termină cu un punct și virgulă

Elemente ale celui mai simplu program

Programul nostru, lansat în Windows din consola (în fereastra "MS-DOS"), a tipărit salutul "Hello World!", Pe următoarea linie "Apăsați o tastă. "Și după ce a apăsat o tastă aleatorie, a revenit la sistem. Acesta este algoritmul muncii sale. Cum se întâmplă ... Primele două rânduri:

Lucrări de laborator






Se spune să funcționeze prototipuri care permit compilatorului să verifice parametrii transmisiei este corectă (care, în paranteză) și a reveni tipurile de valoare corectă (acestea sunt indicate pe stânga numelui funcției, aici ambele funcții, dacă nu intra în detalii, returnează valori de tip int, adică valori întregi).

Apoi urmează linia

Această linie a programului nu are prea mult sens. În general, directivele #garmma, deși se referă în mod formal la directivele preprocesor, sunt de fapt adresate compilatorului însuși și nu au o relație specială cu preprocesorul. Există o mulțime de directive #pragma și sunt diferite pentru compilatoare diferite. Această directivă ar trebui să însemne că compilatorul nu trebuie să emită mesaje de avertizare (nu mesaje de eroare) că parametrii funcției principale din interiorul acestuia nu sunt utilizați în nici un fel.

Ar fi posibil să scrieți un titlu de funcție principal și astfel:

Lucrări de laborator

Noțiuni de bază privind crearea de programe în C

Și asta ar fi corect, deoarece putem seta funcția principală aici așa cum doriți. Acești parametri care sunt specificați în codul original sunt argumente ale liniei de comandă, opțional transferate în program sau comandă sau în direcția sistemului de operare.

Privind în perspectivă puțin, int argc în antetul principal este numărul de argumente ale liniei de comandă, iar char * argv [] este matricea celor mai multe argumente din formularul caracter (char *). Cu toate acestea, funcția principal () ne permite să vorbim despre funcții în general.

Funcția principal ()

După toate directivele din program, este localizată definiția funcției principale (). După cum sa menționat deja, într-un sens strict, orice program din C conține această funcție, care este punctul său de intrare. Cu toate acestea, în mediul Windows, în loc de main (), winMain () este adesea folosit.

Funcția principal () este, desigur, un caz special al funcției în general. Funcțiile sunt principalele "blocuri" ale programului sau ale subrutinelor. Ele, la rândul lor, sunt construite de la operatorii care alcătuiesc corpul funcției. Fiecare declarație se termină cu un punct și virgulă (;).

În general, funcția este definită după cum urmează:

return_type nume_funcțional (listă parametru)

// Bretelele curly conțin corpul funcției,

// compus din operatori separați. Funcțiile corpului

În cazul nostru, corpul funcției este alcătuit din patru operatori, primele trei dintre ele fiind, la rândul lor, apeluri funcționale. Valorile returnate prin funcții sunt ignorate aici. Așa cum este utilizat aici, funcțiile conținute în standardul (executiv) biblioteca C afișează mai întâi un mesaj și convertește șirul de consolă, iar al doilea - solicitările (fără a lua linia), iar al treilea, getch (), așteaptă ca utilizatorul să apăsați orice tastă.

Când se întâmplă acest lucru, getch () returnează controlul la main (), iar instruciunea return returnează controlul sistemului de operare:

variabile

O unitate de date separată trebuie să aibă în mod necesar un anumit tip. Pentru a le stoca în timp ce programul se execută, trebuie să alocăm mai întâi locul corespunzător în memorie și, în al doilea rând, să-l identificăm atribuindu-i un nume. O unitate denumită de memorie pentru stocarea datelor se numește o variabilă.

Fiecare variabilă și fiecare expresie (un set de operații cu variabile) trebuie să aibă un tip. Acesta este tipul care definește operațiile care pot fi efectuate pe ele. De exemplu, în int int;

Se spune că variabila numită inch este de tip int, adică inch este o variabilă întreagă.

Lucrări de laborator

Tipurile principale, cele mai apropiate de "realitatea hardware" a mașinii, sunt: ​​char

Sunt numere întregi. Următoarele tipuri sunt: ​​float

dublu dublu lung

sunt numere cu virgulă mobilă. O variabilă de tip char are dimensiunea necesară pentru a stoca un caracter pe această mașină (de obicei un octet sau 8 biți). Variabila int are dimensiunea necesară pentru întreaga aritmetică a mașinii date (de obicei un cuvânt de 2 octeți sau 16 biți).

Tipurile de date încorporate sunt prezentate în Tabelul 1 de mai jos:

Tabelul 1 Tipuri de date încorporate

Următoarele operații aritmetice pot fi utilizate pentru orice combinație de tipuri listate:

+ (plus, unar și binar) - (minus, unar și binar) * (multiplicare)







Articole similare

Trimiteți-le prietenilor: