Proszę o pomoc w napisaniu programu

2015-01-29 22:00
0

Witam wszystkich. Mam do napisania 2 zadania na zaliczenia i nie wiem jak to napisać. Zaczynam dopiero przygodę z programowaniem i proszę o pomoc w napisaniu bo nie wiem co to będzie ... :/
Oto treść zadań:
1.
Policzyć wyrazy ciągu geometrycznego.
Ciąg geometryczny - co najmniej trójelementowy ciąg liczbowy skończony bądź nieskończony, w którym każdy wyraz począwszy od drugiego, powstaje z przemnożenia poprzedniego przez pewną stałą liczbę różną od zera (q), którą nazywamy ilorazem ciągu. Każdy wyraz ciągu geometrycznego, prócz pierwszego (i dla ciągów skończonych – ostatniego) jest średnią geometryczną wyrazów sąsiednich. Np. ciąg : (1,3,9,27,81,243,...) jest ciągiem geometrycznym o ilorazie q=3. Napisać program wczytujący za pomocą funkcji scanf() q (iloraz) oraz liczbę n (ilość wyrazów ciągu). Następnie wyliczyć i wyświetlić pierwszych n wyrazów ciągu oraz podać ich sumę.
Zmodyfikować program zapisując kolejne wyrazy ciągu do tablicy. Po wygenerowaniu wyświetlić wyrazy ciągu od ostatniego do pierwszego.

2.
Policzyć wyrazy ciągu arytmetycznego.
Ciąg arytmetyczny – to ciąg liczbowy, w którym każdy wyraz można otrzymać dodając wyraz bezpośrednio go poprzedzający oraz ustaloną liczbę r, zwaną różnicą ciągu. Np. ciąg: (1,3,5,7,9, ...) jest ciągiem arytmetycznym (jego różnicą r jest 2). Napisać program wczytujący zza pomocą funkcji scanf() r (różnicę) oraz liczbę n (ilość wyrazów ciągu). Następnie wyliczyć i wyświetlić pierwszych n wyrazów ciągu oraz podać ich sumę.
Zmodyfikować program zapisując kolejne wyrazy ciągu do tablicy. Po wygenerowaniu wyświetlić wyrazy ciągu od ostatniego do pierwszego.

Z góry dziękuje za pomoc!

Pozostało 580 znaków

2015-01-29 22:14
0

I jak ci pomóc ?
Bo jeśli chodzi o napisanie tych programów nikt za ciebie tego nie zrobi, chyba że za opłatą. Jakkolwiek skąpo by to nie brzmiało, ktoś musi poświęcić jakąś ilość czasu na napisanie tego i zwykłe dziękuje za to raczej nie wystarczy.
Jeżeli chodzi o porady, to może powiedz czego nie wiesz ?

edytowany 3x, ostatnio: MoorfoxD, 2015-01-29 22:15

Pozostało 580 znaków

2015-01-29 22:17
0

Wiem mniej więcej jak to napisać nie wiem jak wykonać to polecenie "Zmodyfikować program zapisując kolejne wyrazy ciągu do tablicy. Po wygenerowaniu wyświetlić wyrazy ciągu od ostatniego do pierwszego."

Pozostało 580 znaków

2015-01-29 22:19
1

Stwórz tablicę o rozmiarze n
I przypisuj jej kolejne wyrazy ciągu w pętli


for(int i=0;i<n;i++)
tab[i] = pow(q,i)*a // q^(n-1) * a malo wydajne ale proste
edytowany 5x, ostatnio: MoorfoxD, 2015-01-29 22:55

Pozostało 580 znaków

2015-01-29 22:24
0

Spróbuje i dam odpowiedź co wyszło z tego. Dziękuje

Znaczy scanf tam był po prostu dla przykładu ty musisz przecież obliczyć kolejne wyrazy ciągu i zapisać tam do tablicy - MoorfoxD 2015-01-29 22:50
i odznacz to zielone gówno bo oznacza to - temat wyczerpany - MoorfoxD 2015-01-29 22:51
Poprawiłem tamto xd - MoorfoxD 2015-01-29 22:53

Pozostało 580 znaków

2015-01-30 16:15
0

Robię 2 zadanie i jak na razie zatrzymałem się w takiej fazie nie wiem jak usprawnić ten kod ...

#include<stdio.h>
#include<conio.h>
int main()
{
    int a1,n,q;
    printf("Program rozwiazujacy ciąg geometryczny");
    printf("Podaj pierwszy wyraz ciagu: ");
    scanf("%d%d%d",&a1);
    printf("Podaj iloraz ciągu geometrycznego ");
    scanf("%d%d%d",&q);

    if (n==0 && q==0)
       printf("Błędne dane");
    for(int i=0;i<n;i++)
    tab[i] = pow(q,i)*a1;

    return 0;

}

Ktoś pomoże?

edytowany 1x, ostatnio: Sinres, 2015-01-30 16:16

Pozostało 580 znaków

2015-01-30 16:20
0

Wyrzucić i napisać od nowa poprawnie.

Ciąg geometryczny ma taką własność, że a_{n+1} = a_n \cdot q
A ty w każdym kroku liczysz q do potęgi i...

Nie licząc tego, że masz tam jeszcze z 5 innych błędów związanych z samą składnią, weź przeczytaj jakiś kurs.

edytowany 1x, ostatnio: some_ONE, 2015-01-30 16:23

Pozostało 580 znaków

2015-01-30 16:25
0

To jak mam to napisać?

Pozostało 580 znaków

2015-01-30 16:30
0
  1. Tablica nie jest zadeklarowana.
  2. n nie jest zainicjalizowane przed pierwszym użyciem.
  3. pow wymaga dołączenia odpowiedniego nagłówka.
  4. scanf("%d%d%d",&a1); co to robi według ciebie?
  5. Jak już napisałem wcześniej twoje rozwiązanie nie jest optymalne.

Pozostało 580 znaków

2015-01-30 16:34
0
  1. A jak mam ją zadeklarować?
  2. Już to robię.
  3. W jaki sposób mam go dołączyć?
  4. Miało prosić o podanie a1
  5. Na razie chce żeby program działał a nie był optymalny :/
Wystarczy że przeczytasz kilka pierwszych stron dowolnego kursu. - some_ONE 2015-01-30 17:11

Pozostało 580 znaków

2015-01-30 19:35
1
  1. Nie znasz wielkości tablicy przed rozpoczęciem programu - więc funkcja malloc
  2. n musisz wczytać
  3. nic nie dołączaj - tylko stdio i stdlib
  4. nie, nie miało prosić o podanie a1, tylko ilość wyrazów ciągu i q (więc domyślam się że pierwszy wyraz ciągu to 1)
  5. to dobre podejście w nauce programowania

Do czego Twoim zdaniem idzie pętla for? czym jest n? Nie potrzebujesz w ogóle potęgowania.

edytowany 2x, ostatnio: zadroozyn, 2015-01-30 19:44

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0