Funcții utilizator și clase de memorie.
Tip String în aplicațiile consolei.
B) Conversia de la String la o variabilă simplă de tip char.
A) Conversia de la o matrice de caractere la String și invers.
Așa cum am menționat mai sus, pentru a converti o matrice de caractere într-un tip de String, pur și simplu asignați-o unei variabile de tip String:
Transformarea inversă nu se face automat. Pentru implementarea sa, se utilizează metoda c_str () de tip String. Creează un caracter temporar de matrice, care este creat numai pentru durata executării operatorului. care conține această metodă:
// WinExec - porniți programul cu numele dat
// Funcția WinExec necesită ca numele să fie o matrice de caractere
Dacă doriți să utilizați matricea de caractere recepționate în programul următor, trebuie să o copiați în matricea de caractere "permanentă" (declarată):
Astfel, pentru a introduce matrice de caractere în aplicații ferestre, trebuie să utilizați funcția strcpy și metoda c_str ():
Cu această alocare, trebuie să specificați numărul de caractere în rândul care va fi atribuit:
Analiza inversă nu cauzează dificultăți:
c) Conversia tipurilor de coarde și numerice.
Funcțiile de conversie au fost descrise mai sus în subiectul "Funcții I / O, intrare / ieșire în aplicații ferestre":
String IntToStr (int x); - int à șir
int StrToInt (String S); - String à int
dublă StrToFloat (String S); - String à dublu
String FloatToStr (dublu x); - dublu à șir
String FloatToStrF (dublu x, Format, int p, int d);
- dublu à String cu format și precizie.
int i = StrToInt (i); // i = 123; automat
// Nu se întâmplă conversia șirului la tipul int
// (deși se întâmplă contrariul)
Exemplul 2: Exportați variabilele N1 și N2 de tip int într-o singură linie Memo1, separându-le cu un spațiu:
// este necesară conversia de tip explicit,
// altfel semnul + nu ar fi interpretat ca String
Într-o aplicație consola, folosirea unui tip de String necesită biblioteci de conectare (suficiente din biblioteca VCL):
(Această linie poate fi adăugată automat).
Pentru consolă I / O, șirul trebuie transformat într-o matrice de caractere și / sau invers (vezi mai sus). În mod special, intrarea din consola se face mai întâi în caracterele auxiliare și deja de acolo (dacă este cazul) - în String.
Sarcina 9. În linia de pe consolă, înlocuiți toate spațiile cu subliniere folosind tipul String.
pune ("Vvedite stroku s probelami:");
pentru (i = 1; i<=t.Length(); i++)
Odată cu creșterea programului, codul său devine mai complex. O modalitate de a combate complexitatea oricărei sarcini este aceea de ao descompune în părți.
În C, ca în orice limbaj de programare la nivel înalt, o sarcină poate fi împărțită în sub-sarcini mai simple folosind funcțiile de subrutine. După aceea, programul poate fi văzut într-o formă mai integrată - la nivelul interacțiunii dintre subprogramele create. Utilizarea subprogramelor în codul programului duce la o simplificare a structurii sale.
Separarea programului în subtascuri permite, de asemenea, evitarea redundanței codului, deoarece funcția este scrisă o singură dată și poate fi apelată în mod repetat din diferite puncte ale programului. În plus, procesul de depanare a unui program care conține subrutine este simplificat. Funcțiile frecvent utilizate pot fi plasate în biblioteci separate.
Următorul pas poate fi gruparea funcțiilor și a datelor conexe în fișiere separate (module) care sunt compilate separat. Modulele de obiect rezultate sunt combinate într-un program executabil cu ajutorul unui linker (Linker). Distribuirea modulelor reduce timpul de recompilare și facilitează procesul de depanare, ascunzând detalii neesențiale din spatele interfeței modulului, ceea ce vă permite să debugați programul în părți. Pentru a utiliza modulul, este suficient să cunoaștem numai interfața sa (numele funcțiilor și parametrii lor) și nu toate detaliile implementării acestuia.
Separarea programului în părțile maxime izolate (subrutine) este o sarcină destul de dificilă, care ar trebui rezolvată în faza de proiectare a programului.
Spre deosebire de alte limbi de programare la nivel înalt în C, nu există nicio împărțire în rutinele și funcțiile de subrutine, aici orice subrutină este o funcție.
O funcție este o secvență numită de instrucțiuni care efectuează o anumită acțiune care poate fi accesată prin trecerea datelor originale prin parametrii și prin obținerea unuia sau mai multor rezultate ale funcționării acesteia.
"Corpul principal" al unui program în C este, de asemenea, considerat o funcție - principala (principală, principală) funcție, cu care începe programul. Funcțiile sunt și manipulatoare de evenimente (de exemplu, Button1Click) în aplicațiile ferestre. Astfel, orice program în limbajul C constă din funcții.