tablice, Ebooks, Informatyka, języki i metody programowania C2

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • danasoch.xlx.pl
  • Podobne

     

    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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • mement.xlx.pl
  • Designed by Finerdesign.com