tablice, Ebooks, Informatyka, języki i metody programowania C2
[ Pobierz całość w formacie PDF ]
Tablice, podstawowe algorytmy operujące na tablicach Przykład 2 – odpowiednikiem tablicy 5-ciu elementów typu int jest pięć zmiennych typu int: a, b, c, d, e. Jest to jednak niewłaściwe rozwiązanie dla większej liczby zmiennych, jeśli powtarza się na nich takie same operacje. Właściwym rozwiązaniem są wtedy zmienne indeksowane. Przykład 1 - tablica składa się z pięciu elementów typu int zawierających kolejno wartości wylosowane. Można ją zdefiniować jako: int tablica [5]. Program liczy sumę elementów tablicy i podaje wartość średnią elementów tablicy. Przykłady 1 i 2 pokazują rozwiązanie z użyciem 5 · zmiennych indeksowanych, zdefiniowanych za pomocą tablicy int tab[5] i dostępnych jako tab[i] dla i=0,..,4 · zmiennych int a, b, c, d, e; indeksy elementy 0 2 1 0 2 67 3 6 4 #include <stdio.h> #include <stdlib.h> #include <conio.h> void main() { int a, b, c, d, e, p=5; float suma=0; srand(1); a=random(200); b=random(200); c=random(200); d=random(200); e=random(200); suma+=a; suma+=b; suma+=c; suma+=d; suma+=e; suma/=p; printf("srednia wartosc " "%i elementow jest rowna %f\n", p, suma); getch(); } 71 #include <stdio.h> #include <stdlib.h> #include <conio.h> void main() { int tab[5], i, p=5; float suma=0; srand(1); //generowanie powtarzalnego //ciągu liczb losowych: 2, 0, 67, 6, 71 for (i=0; i<5; i++) tab[i] = random(200); for (i=0; i<5; i++) suma += tab[i]; suma /= p; printf("Srednia wartosc" "%i elementow jest rowna %f\n", p, suma); getch(); } Tablica jako adres swojego pierwszego elementu Z tego punktu widzenia tablica jest traktowana jako tablica jednowymiarowa.Tablica int tab [5] jest tablicą 5-u elementów typu int i jednocześnie adresem 1-go elementu, czyli ma wartość tab = 8FC0 : 0FF6, czyli jest stałą wskaźnikową typu int* - wskaźnik na int Adresy elementów tablicy typu wskaźnik na int czyli int* Elementy typu int Indeksy
&tab[0]=tab+0=8FC0 : 0FF6
2 0
&tab[1]=tab+1=8FC0 : 0FF8
0 1
&tab[2]=tab+2=8FC0 : 0FFA
67 2
&tab[3]=tab+3=8FC0 : 0FFC
6 3
&tab[4]=tab+4=8FC0 : 0FFE
71 4 Przykład programu z wskaźnikową notacją w odwołaniu do elementów tablicy – tablica jako stała wskaźnikowa typu wskaźnik na typ elementu #include <stdio.h> #include <stdlib.h> #include <conio.h> void main() { int tab[5]; int i, p=5; float suma=0; clrscr(); srand(1); for (i=0; i<5; i++) *(tab+i)=random(200); printf("\ntablica jako adres pierwszego elementu tab: %p\n\n",tab); printf("\nwartosc indeks adres wartosc adresu \n"); for (i=0; i<5; i++) printf("tab[%i]=%2i %i &tab[%i]: %p \n", i, tab[i], i, i, &tab[i] ); printf("\nwartosc indeks adres wartosc adresu \n"); for (i=0; i<5; i++) printf("*(tab+%i)=%2i %i tab+%i: %p \n", i, *(tab+i), i, i, tab+i ); for (i=0;i<5;i++) suma+=*(tab+i); //tab[i] suma/=p; printf("\nsrednia wartosc %i elementow jest rowna %f\n",p,suma); getch(); } Przykład programu przetwarzającego tablicę z wyborem operacji #include <stdio.h> #include <stdlib.h> #include <conio.h> void main() { int tab[5]; int i, p=0; float suma=0; char opcja; srand(1); do { clrscr(); printf("1 - generowanie losowego ciagu danych do tablicy\n"); printf("2 - wyswietlanie tablicy\n"); printf("3 - obliczenie wrtosci sredniej elementow tablicy\n"); printf("k - koniec programu\n"); opcja=getch(); //odczyt klawisza naciśniętego również w pętli while(!kbhit()); switch(opcja) {case '1' : p= random(5)+1; //losowanie liczby elementów for (i=0; i<p; i++) tab[i]=random(200); //wypełnianie tablicy break; case '2' : if (p==0) break; printf("\nwartosc indeks adres wartosc adresu\n"); for (i=0; i<p; i++) printf("*(tab+%i)=%3i %i tab+%i: %p\n", i,*(tab+i), i, i, tab+i ); break; case '3' : if (p==0) break; for (i=0, suma=0;i<p;i++) suma+=tab[i]; suma/=p; printf("\nsrednia wartosc %i elementow jest rowna %f\n", p,suma); break; case 'k' : printf("Koniec programu\n"); getch(); return; default : printf("Zla opcja\n"); } ...
[ Pobierz całość w formacie PDF ] zanotowane.pldoc.pisz.plpdf.pisz.plmement.xlx.pl
|