Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Tablice dynamiczne C++

bart187 16 Jan 2006 18:00 17319 4
  • #1
    bart187
    Level 2  
    Witam! mam Takie zadanie."Napisz funkcję dokonującą zamian miejscami elementów o indeksach parzystych z elementami o indeksach nieparzystych(przykładowo:element 0 z 1, 1 z 2 , 2 z 3 , 4 z 5 itd)
    UWAGA Tablica powinna byc tworzona dynamicznie i nei moze byc deklarowana jako zmienna tylko jaka Wskaźnik." Przejrzałem instrukcje c++ i nigdzie nie znalazłem jak zrobic cos takiego wiec prosze o pomoc na forum jesli ktos wie to bede wdzieczny za napisanie takiej funkcji:)
    [/b]
  • #2
    bobbyAIR
    Level 20  
    Nie znalazles takeij funkcji w jezyku C++ z prostego powodu. Zaden prowadzacy zajecia nie jest takim debilem zeby kazac pisac komus qsort() albo printf(). Zabawa polega na zaalokowaniu jakiejs tablicy o danej dlugosci a potem w petli od zera o dlugosci tablicy skaczac co dwa wymieniasz element aktualny z nastepnym ( pamietajac ze nie robi sie tego:
    tab[i] = tab[j];
    tab[j] = tab[i];
    tylko porzez zmienna pomocnicza ). Najwiekrza "trudnosc to chyba pamietanie ze w tabblicy moze nei byc pazystej liczby elementow. Inna sprawa ze zanim wywolasz funkcje zamieniajaca to pewnie bedziesz musial zainicjowac tablice ale to pierola wiec nie ma co omawiac
  • #3
    bart187
    Level 2  
    No pewnie masz racje,ale mi to dalej nie wyjasnie bo dalej nei wiem co mam zrobic:( jesli wiesz to napisz jak to ma wygladac... albo jesli w ogóle ktos sie na tym zna i potrafi zrobic cos takiego... POzdrawiam
  • Helpful post
    #4
    krzkomar
    Level 25  
    bart187 wrote:
    Witam! mam Takie zadanie."Napisz funkcję dokonującą zamian miejscami elementów o indeksach parzystych z elementami o indeksach nieparzystych(przykładowo:element 0 z 1, 1 z 2 , 2 z 3 , 4 z 5 itd)
    UWAGA Tablica powinna byc tworzona dynamicznie i nei moze byc deklarowana jako zmienna tylko jaka Wskaźnik." Przejrzałem instrukcje c++ i nigdzie nie znalazłem jak zrobic cos takiego wiec prosze o pomoc na forum jesli ktos wie to bede wdzieczny za napisanie takiej funkcji:)
    [/b]


    W C by to tak wyglądało (w C++ zamiast maloc/free można uzyć new/del), oczywiście w C++ to też będzie działać:
    Code:

    #include <stdio.h>

    #define N       25   /* rozmiar tablicy */
    #define MT     char   /* typ danych w tablicy */

    void main()
    {
        MT *tablica;
        MT tmp;
        int i;

       /* rezerwacja pamięci na tablicę */   
       /* dla C++ chyba: tablica = new MT[N] */
        tablica = (MT *)malloc (N*sizeof(MT));
        if(!tablica) {
           printf ("Błąd alokacji\n"); /* cout << "Błąd alokacji" << eol;*/
           exit(1);
        }

      /* jakiś kod zapełniajacy tablicę danymi */
      for(i=0; i < N; i++) *(tablica+i) = i & 0xff;

      /*zamiana*/
      for(i=0;i < N-1;i+=2){
          tmp = *(tablica +i);
          *(tablica + i) = *(tablica + i +1);
          *(tablica + i +1 ) = tmp;
      }
     
      /* wyświetlenie zawartości*/
      for(i=0; i<N; i++) printf("tablica[%i]=%i\n",i,*(tablica+i));

     /* zwolnienie pamięci, dla C++ chyba: del MT; */
      free(tablica);
    }
  • #5
    bart187
    Level 2  
    Dzieki:) mam nadzieje ze bedzie to chodizc i bedzie ok:) jutro to wklepie i sprawdze:) najwyzej bede pytał jak by gdzies cos...