Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programmēšanas valodas Valoda C++

Similar presentations


Presentation on theme: "Programmēšanas valodas Valoda C++"— Presentation transcript:

1 Programmēšanas valodas Valoda C++
Simbolu virkņu apstrāde funkcijās Doc. Dr. Sc. Comp. Edgars Rencis, Rīgas Tehniskās universitātes Cēsu filiāle, Datorzinātnes un informācijas tehnoloģijas fakultāte

2 Kā funkcijai nodot masīvu caur parametru?
Nav jēgas nodot visus elementus Jānodod pēc iespējas mazāk informācijas, no kuras var iegūt pilnu informāciju par masīvu norāde uz pirmo elementu pārējiem elementiem var piekļūt, ejot uz priekšu pa atmiņas šūnām masīva garums lai zinātu, kur apstāties, ejot uz priekšu pa masīva šūnām no pirmā elementa ja masīvs ir simbolu virkne, garumu nodot nav nepieciešams!

3 Piemērs simbolu virknes nodošanai caur parametru
Simbolu virknes garuma noteikšanas funkcija int len(char * s) { int i=0; while (s[i]!='\0') i++; return i; }

4 Uzdevums 1 Uzrakstīt funkciju, kas aizstāj dotajā simbolu virknē visus lielos latīņu alfabēta burtus ar atbilstošajiem mazajiem, bet mazos – ar lielajiem void replace(char * s) { for (int i=0;s[i]!='\0';i++) if (s[i]>='A' && s[i]<='Z') s[i]+='a'-'A'; else if (s[i]>='a' && s[i]<='z') s[i]+='A'-'a'; }

5 Uzdevums 2 Lietotājs ievada simbolu virkni, kas nepārsniedz 100 simbolus. Noskaidrot, vai tā beidzas ar ciparu. #include <iostream> using namespace std; int main() { char s[101]; cin.getline(s,101); int i=0; while (s[i]!='\0') i++; if (i==0) cout <<"Nekas netika ievadīts!\n"; else { i--; if (s[i]>='0' && s[i]<='9') cout <<"Beidzas ar ciparu!\n"; else cout <<"Nebeidzas ar ciparu!\n"; } return 0;

6 Statisku vairākdimensiju masīvu nodošana funkcijai caur parametru
Pirmajai dimensijai var lietot jebkuru no abām notācijām masīvu specifisko  s[] norāžu vispārīgo, lietojot iekavas  (*s) Pārējām dimensijām jānorāda dimensijas izmērs char s[][4] char (*s)[4]

7 Piemērs – izdrukāt statiska divdimensiju masīva saturu
void printStrings(const char s[][4], int count) { for (int i=0; i<count; i++) cout << s[i] << ' '; cout << endl; }; int main () { char arr[2][4] = {{'t', 'h', 'e', '\0'}, {'p', 'i', 'g', '\0'}}; printStrings(arr, 2); return 0; }

8 Piemērs – izdrukāt statiska divdimensiju masīva saturu
void printStrings(const char (*s)[4], int count) { for (int i=0; i<count; i++) cout << s[i] << ' '; cout << endl; }; int main () { char arr[2][4] = {{'t', 'h', 'e', '\0'}, {'p', 'i', 'g', '\0'}}; printStrings(arr, 2); return 0; }

9 Piemērs – izdrukāt statiska divdimensiju masīva saturu
void printStrings(const char (*s)[4], int count) { for (int i=0; i<count; i++) cout << s[i] << ' '; cout << endl; }; int main () { char arr[2][4] = {"the", "pig"}; printStrings(arr, 2); return 0; }

10 Dinamiski vairākdimensiju masīvi
Atmiņas izdalīšana jāveic katrai dimensijai atsevišķi Deklarējot masīvu, dimensiju skaitu norāda zvaigznīšu skaits char ** s; dinamisks divdimensiju masīvs (“masīvs no char tipa elementu masīviem” jeb “norāde uz norādi uz char tipa elementu”) Darbs ar dinamisku masīvu atmiņas izdalīšana dimensijām – no rupjākās uz smalkāko masīva izmantošana, lietojot parasto sintaksi atmiņas atbrīvošana pa dimensijām – no smalkākās uz rupjāko

11 Piemērs darbam ar dinamisku divdimensiju masīvu
void printStrings (char ** s, int count) { for (int i=0; i<count; i++) cout << s[i] << ' '; cout << endl; }; int main () { char ** arr = new char * [2]; for (int i=0; i<2; i++) arr[i] = new char [4]; strcpy (arr[0], "THE"); strcpy (arr[1], "COW"); printStrings (arr, 2); for (int i=0; i<2; i++) delete [] arr[i]; delete[] arr; return 0; }

12 Piemērs darbam ar dinamisku divdimensiju masīvu
void printStrings (char ** s, int count) { for (int i=0; i<count; i++) cout << s[i] << ' '; cout << endl; }; int main () { char ** arr = new char * [2]; for (int i=0; i<2; i++) arr[i] = new char [4]; strcpy (arr[0], "THE"); strcpy (arr[1], "COW"); printStrings (arr, 2); for (int i=0; i<2; i++) delete [] arr[i]; delete[] arr; return 0; }

13 Dinamisks divdimensiju masīvs atmiņā


Download ppt "Programmēšanas valodas Valoda C++"

Similar presentations


Ads by Google