[C++] Alokacja n-elementowego wektora i wypełnienie go

madziula1784
Użytkownik
Użytkownik
Posty: 218
Rejestracja: 12 sty 2011, o 17:05
Płeć: Kobieta
Lokalizacja: Polska

[C++] Alokacja n-elementowego wektora i wypełnienie go

Post autor: madziula1784 »

Napisz program w c++ który zaalokuje N-elementowy wektor liczb o podwójnej precyzji (N - liczba podana przez użytkownika)
Wypełnij wektor wartościami funkcji \(\displaystyle{ f(x) = \frac{x ^{2} }{2}}\) dla dla x=1,...,N (napisać i wykorzystać funkcję o następującym prototypie void f(double x, double *y), gdzie x - argument, y - zwracana wartość funkcji )
Ostatnio zmieniony 21 cze 2011, o 11:12 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C++] Alokacja n-elementowego wektora i wypełnienie go

Post autor: Afish »

W którym momencie zaczynasz mieć problem?
madziula1784
Użytkownik
Użytkownik
Posty: 218
Rejestracja: 12 sty 2011, o 17:05
Płeć: Kobieta
Lokalizacja: Polska

[C++] Alokacja n-elementowego wektora i wypełnienie go

Post autor: madziula1784 »

w ogóle nie wiem jak zacząć
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C++] Alokacja n-elementowego wektora i wypełnienie go

Post autor: Afish »

To zacznij od alokacji. Poczytaj o liczbach podwójnej precyzji, dynamicznych tablicach, operatorze new.
Awatar użytkownika
Pneumokok
Użytkownik
Użytkownik
Posty: 48
Rejestracja: 2 sty 2011, o 14:29
Płeć: Mężczyzna
Lokalizacja: Małopolska
Podziękował: 11 razy
Pomógł: 1 raz

[C++] Alokacja n-elementowego wektora i wypełnienie go

Post autor: Pneumokok »

Jeśli nadal aktualne:

Kod: Zaznacz cały

#include <iostream>
#include <conio.h> 
 
using namespace std; //przestrzen nazw, bedziemy uzywac okreslonych wiec
                     // musimy je ,,zaimportowac"

double zwroc_wartosc(double liczba) //nasza funkcja - zwracamy obliczona wart.
{
      double wartosc=(liczba*liczba)/2;
      return wartosc;
}

int main()
{
    // double - liczba podwojnej precyzji
    double* tablica=NULL; //wskaznik na liczbe podwojnej precyzji, 
                          //z tego zrobimy tablice
    int N;
    cout <<"Podaj rozmiar tablicy: "; //pobieramy rozmiar tablicy
    cin >> N;
    if (N<=0)
    {
         cout <<"Rozmiar musi byc wiekszy od zera!"; 
         getch();
         return -1; //return konczy program
                    //wychodzimy z programu poniewaz dostal zle dane
    }
    tablica=new double[N]; //przydzielamy do wskaznika 
                           //tablice double o N elementach
    if ( (tablica==NULL) )//sprawdzamy czy udala sie alokacja pamieci
    {                     // w razie bledu wskaznik bedzie nadal mial wartosc
                          // NULL (lub zwroci NULLa - nie wiem dokladnie )
         cout << "Alokacja sie nie powiodla!";
         getch();
         return -1; //return konczy program
                    //wychodzimy z programu poniewaz nie udala sie 
                    //alokacja pamieci
    }
    for (unsigned i=0; i<N; ++i)
    {
        tablica[i]=zwroc_wartosc( (i+1) ); //wypelniamy tablice
    }
    cout <<"Tablica:"<<endl;
    for (unsigned i=0; i<N; ++i)
    {
        cout <<tablica[i]<<" ";
    }
    delete[] tablica; //zwalniamy pamiec zajmowana przez zalokowana tablice
    tablica=NULL; //NULLujemy wskaznik
    getch();
    return 0;
}
Tak mógłby wyglądać kod, jesli dobrze zrozumiałem treść zadania
Komentarze powinny Ci wszystko wyjaśnić.
ODPOWIEDZ