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 )
[C++] Alokacja n-elementowego wektora i wypełnienie go
-
- 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
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.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
-
- Użytkownik
- Posty: 218
- Rejestracja: 12 sty 2011, o 17:05
- Płeć: Kobieta
- Lokalizacja: Polska
-
- 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
To zacznij od alokacji. Poczytaj o liczbach podwójnej precyzji, dynamicznych tablicach, operatorze new.
- Pneumokok
- 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
Jeśli nadal aktualne:
Tak mógłby wyglądać kod, jesli dobrze zrozumiałem treść zadania
Komentarze powinny Ci wszystko wyjaśnić.
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;
}
Komentarze powinny Ci wszystko wyjaśnić.