Gość: as 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! Link Zgłoś 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. Link Zgłoś
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"); } } Link Zgłoś
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. Link Zgłoś
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 ;-) Link Zgłoś
m.gregor Re: Na trójkąt paskala przepis niezawodny. 22.10.04, 19:34 Ty polonistyka a nie informatyka zajmowac sie powinienes... Link Zgłoś
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 Link Zgłoś
Gość: as Re: Na trójkąt paskala przepis niezawodny. IP: 213.134.139.* 25.10.04, 19:10 dzieki za pomoc :) Link Zgłoś