Dodaj do ulubionych

Programowanie w C - trójkat Pascala

IP: *.ftj.agh.edu.pl 22.10.04, 14:24
Pomocy!!! Mam zaprogramować "trójkat paskala" w C i nie wiem jak to zrobić.
Proszę o pomoc, pozdrawiam!
Obserwuj wątek
    • user0001 Na trójkąt paskala przepis niezawodny. 22.10.04, 15:39
      1. Weżmij że tablicę elemntów całkowitych, długą na jakieś 34 sztuki.
      1b. Weżmij drugą tablicę o takimż samym wymiarze
      2. Tablice obie te wyzeruj, a pierwszej element o pierwszym (nie zerowym!)
      indeksie uczyń jedynką.
      3. Po całej tablicy iterując dodawaj element (i-ty do i+1-szego), wpisuj w
      tablicę drugą w miejsce i+1-sze, bacz byś zakresu nie przekroczył, bo jeśli tak
      nieuważnym będziesz to kora się zdumpuje a projekt Twój obleją.
      4. Wypisz na pergamin numera z tablicy drugiej od elementu pierwszego ku
      ostatniemu który niezerowy pozostał.
      5. Przepisz skrupulatnie drugą z tablic na pierwszą, a tedy wracaj do trzeciego
      paragrafu.
      6. Dzieła te czyń aż tablica prawie cała zapełniona będzie.
      • user0001 Solucja owa, kodem zapisana. 22.10.04, 15:45
        To rozwiązanie nie jest zoptymalizowane, ale też nie zawiera żadnych
        niepotrzebnych komplikacji, po prostu działa.

        #include <stdio.h>

        #define ROZM 34

        int main(int argc, char *argv[])
        {
        int source[ROZM]; /* par. 1 */
        int dest[ROZM]; /* par. 1b */
        int i, j;

        for (i = 0; i < ROZM; i++) /* par. 2 */
        {
        source[i] = 0;
        dest[i] = 0;
        }
        source[1] = 1;

        for (i = 0; i < ROZM -1; i++) /* par. 6 */
        {
        for (j = 0; j < ROZM-1; j++) /* par. 3 */
        {
        dest[j + 1] = source[j] + source[j + 1];
        }

        for (j = 1; j <= i + 1; j ++) /* par. 4 zmodyfikowane*/
        {
        printf("%d ", source[j]);
        }

        for (j = 0; j < ROZM; j++) /* par. 5 */
        {
        source[j] = dest[j];
        }
        printf("\n");
        }
        }
        • tswiercz Re: Solucja owa, kodem zapisana. 22.10.04, 20:12
          Nie czytałem kodu, ale te rozwiązanie ma pewną wadę. Tj możesz co najwyżej wyliczyć (a+b)^33 czy jakiejkolwiek ustalonej potęgi. Najlepiej jakbyś tworzył dynamicznie tablice o długości których potrzbujesz i wymazywał je po użyciu - przy przejściu na kolejną potęge.
          • user0001 Re: Solucja owa, kodem zapisana. 22.10.04, 21:03
            Mógłbym, ale po co?
            I tak w następnej iteracji przekroczyłbym zakres int32_t (czyli rozmiaru int na
            mojej maszynie).

            Zrobiłbym to dynamicznie, ale utraciłbym prostotę rozwiązania, i musiałbym uzyć
            biblioteki takiej jak gmp, na to chyba by nie poszli na pierwszym semestrze
            programowania ;-)
      • m.gregor Re: Na trójkąt paskala przepis niezawodny. 22.10.04, 19:34
        Ty polonistyka a nie informatyka zajmowac sie powinienes...
        • user0001 Re: Na trójkąt paskala przepis niezawodny. 22.10.04, 21:07
          Przepraszam, czasem mi odbija <rotfl> ex w połowie nocy sygnałkiem mnie obudziła
          i od rana jakiś wkurzony jestem
          • Gość: as Re: Na trójkąt paskala przepis niezawodny. IP: 213.134.139.* 25.10.04, 19:10
            dzieki za pomoc :)
Inne wątki na temat:

Nie masz jeszcze konta? Zarejestruj się


Nakarm Pajacyka