[ steelboy86 @ 03.10.2011. 12:03 ] @
Naime dobio sam dva zadatka da uradim za ispit, ali problem je u tome sto ovakav tip zadataka nismo radili u skoli. Pa bih zato molio za pomoc.

1. Zadatak je sinus puta eksponecijalna funkcija, ovde mi konkretno samo nije jasno kako da napisem formuli, sve ostalo bi trebalo da znam (bar mislim da znam ). Ja cu recima da opisem formulu, a vas bi zamolio da mi objasnite kako se ona pise u DEV-C++. Forumula glasi: y= e(pa gore iznad e (-x(na kvadrat))* sin (x). Nadam se da sam bio jasan, ako nisam okacicu screenshoot pa cete videti o cemu se radi.

2.Zadatak je spirala, a on glasi ovako (simbol fi) se manja od 0 do 20, sa korakom 0,5. r=0,1*(simbol fi)
x=r*cos(simbol fi), y=r*sin(simbol fi)

Ono sto je meni potrebno ovde jeste to kako se pisu te formule u DEV-C++, ostalo mislim da znam

Hvala unapred.
[ Mihajlo Cvetanović @ 03.10.2011. 13:18 ] @
Dev-C++ je vrlo staro razvojno okruženje, i ne treba ga koristiti (ozbiljno, zaboravi na njega). Novo i standardnije okruženje je Code::Blocks.

1.
Code:
y = exp(-x*x) * sin(x)


2. Pretpostavka je da je vrednost fi u radijanima:
Code:
r = 0.5 * fi_rad;
x = r * cos(fi_rad);
y = r * sin(fi_rad);


Ako je fi dato u stepenima onda ga treba prvo prebaciti u radijane:
Code:
fi_rad = PI * fi_deg / 180;


Sve tri funkcije (exp, sin, cos) se nalaze u hederu #include <math.h> (ili po novom standardu #include <cmath>). Konstanta PI je takođe tamo, ali se možda javlja kao M_PI. Nije važno ni ako je nema, možeš i sam da je definišeš:
Code:
const double PI = 3.1415926535897932;
[ steelboy86 @ 03.10.2011. 14:01 ] @
Mihajlo hvala ti veliko na odgovoru, ali mislim da me nisi bas najbolje razumeo sta meni nije jasno, zato cu postaviti screenshoot da vidis sta meni konkretno treba.

Uploaded with ImageShack.us


Naime treba mi kako se pisu ove jednacine u DEV-C++. Inace ovo su krajnji razultati koje ja treba da dobijem prilikom pravljenja programa, datoteke i excel chart dijagrama.

Ukoliko si u mogucnosti bio bih ti zahvalan ako bi mi pomogao oko ovog.

Inace sto se tice koriscenja razvojnog okruzenja Dev-c++ , na to sam primoran jer na njemu radimo u skoli. Tako da izbor nemam, hocu-necu moram da radim u njemu sve.

Hvala jos jednom. Veliki pozdrav.
[ Mihajlo Cvetanović @ 03.10.2011. 14:11 ] @
Pa ja sam upravo dao odgovor na pitanje kako se pišu jednačine. Da li pitanje treba da bude kako da nacrtaš krivu na ekranu? Ili kako da napraviš CSV fajl koji bi posle eksportovao u Excel?
[ steelboy86 @ 03.10.2011. 15:00 ] @
Procedura koju moram da ispostujem je sledeca, da napisem program u DEV-C++, da zadam ime datoteke u .txt formatu, pa onda da tu datoteku importujem u Excel.

Krenucu ja sa radom, pa ako mi negde zaskripi eto mene po neki savet.

Mihajlo hvala ti puno, bas si mi pomogo.

Izvini nisam bio lepo procitao tvoje objasnjene vezano za formule pa sam zato postavio sc, a kad sam dobro pogledao onda sam shvato da sam se zeznuo

[ steelboy86 @ 03.10.2011. 16:18 ] @
Gde sam pogresio u vezi prvog zadatka?!

Radim 1. zadatak i nikako da dodjem do adekvatnog resenja.
Citat:
Evo sta sam ja napisao

#include <fstream>
#include <iostream>
#include <cmath>
using namespace std;

int main (int argc, char *argv[])
{

float x,y;

ofstream fout("expon.txt");

for(x=0;-20<x<15;x=x+0.5)
{
y = exp(-x*x)*sin(x);
fout<<x<<","<<y<<endl;
}
fout.close();

system("PAUSE");
return EXIT_SUCCESS;
}


[ Mihajlo Cvetanović @ 03.10.2011. 17:10 ] @
Nije problem kod tebe nego kod postavljača zadatka. Jednačina koju je postavljač dao nije u skladu sa slikom. Funkcija koju je postavljač zadao je , ali slika prikazuje funkciju . Na sajtu http://graphsketch.com/ možeš da proveriš funkcije exp(-x^2)*sin(x) i exp(-sqrt(abs(x)))*sin(x) i vidiš i sam. Postavi X range -40,40 i Y range -1,1.

[Ovu poruku je menjao Mihajlo Cvetanović dana 03.10.2011. u 18:21 GMT+1]
[ steelboy86 @ 05.10.2011. 13:22 ] @
Jel mogu da zamolim clanove foruma da mi pomognu oko resavanja 2. zadatka?! (sto vidite na slici).

Naime, imam problem oko postavke (postavljanje glavnih formula za dobijanje ovog chart dijagrama).

Hvala.
[ Mihajlo Cvetanović @ 05.10.2011. 13:28 ] @
Opiši problem. Šta dobijaš trenutno kao rezultat, a šta želiš da dobiješ. Postavi i kod.

EDIT: Uzgred, klikni na link da vidiš kako funkcija izgleda na GraphSketch

Podaci koje tvoj program bude napravio ne mogu da daju ovako lepu spiralu, jer su tačke predaleke. Po zadatku korak je 0.5fi, to jest pola radijana, što je nekih triesetak stepeni. Razmak između svake dve tačke biće otprilike 30 stepeni, što znači da će spirala biti sva izlomljena.



[Ovu poruku je menjao Mihajlo Cvetanović dana 05.10.2011. u 14:55 GMT+1]
[ steelboy86 @ 06.10.2011. 11:01 ] @
Moj glavni problem je taj sto ne znam da definisem glavne formule u zadatku. U DEV-C++ sam upisao ono sto si mi ti gore naveo vezano za formule 2. zadatka, ali DEV to ne prihvata, prijavljuje mi neku gresku. Zato sam sad zbunjen i ne znam odakle da krenem i sta da radim... Mucim se vec 2 dana, udaram glavu od sto ali nikako da uradim kako valja. Konkretno moj problem je uopste kako napisati ovaj program, znaci od "A" do "Š". Ako je neko u mogucnosti da mi pomogne bio bih mu zahvalan.
[ djoka_l @ 06.10.2011. 11:27 ] @
Prvo, ovo ne valja:

Code (c):

for(x=0;-20<x<15;x=x+0.5)
 


umesto toga treba:

Code (c):

for(x=-20;x<=15;x=x+0.5)
 


Drugo, ja bih radije napisao:

Code (c):

y = exp(-(x*x))*sin(x);
 


nego
Code (c):

y = exp(-x*x)*sin(x);
 


Ovaj drugi zapis nije neispravan, jer su operatori unarni minus i množenje istog prioriteta i izraz se izračunava s desna u levo, ali je sa zagradama jasnije šta se htelo.

Na kraju, daj program koji ne može da se kompajlira i daj poruku o grešci, pa da vidimo šta se dešava...
[ steelboy86 @ 06.10.2011. 12:02 ] @
Djoko,

Pomoc oko prvog zadatka mi je vec bio dao Mihajlo, u svakom slucaju hvala ti, ali taj zadatak sam resio. Ostao mi je ovaj drugi zadatak, kao sto vidis na slici (sprirala), e on mi dusu jede. Ako mozes oko njega da mi pomognes bio bih ti zahvalan. Iskreno ja ne znam ni kako da krenem, a kamoli da ga uradim ceo.
[ djoka_l @ 06.10.2011. 12:18 ] @
Ma šta nije jasno.

Evo, na osnovu tvog programa, samo mala modifikacija:

Code (c):

#include <fstream>
#include <iostream>
#include <cmath>
using namespace std;

int main (int argc, char *argv[])
{

float x,y,fi;

ofstream fout("expon.txt");

for(fi=0;fi<=15;fi=fi+0.5)
{
x = 0.1*fi*cos(fi);
y = 0.1*fi*sin(fi);
fout<<x<<","<<y<<endl;
}
fout.close();

system("PAUSE");
return EXIT_SUCCESS;
}
 
[ Mihajlo Cvetanović @ 06.10.2011. 12:51 ] @
Citat:
djoka_l: Prvo, ovo ne valja:

Code (c):

for(x=0;-20<x<15;x=x+0.5)
 



Opa, ovo nisam ni video. Da, to mora da se ispravi.
[ Mihajlo Cvetanović @ 06.10.2011. 12:52 ] @
Citat:
djoka_l:
Code (c):

for(fi=0;fi<=15;fi=fi+0.5)
 


Mislim da fi treba da ide do 20 umesto do 15.
[ djoka_l @ 06.10.2011. 13:01 ] @
U pravu si, klasična copy/paste greška
[ steelboy86 @ 06.10.2011. 13:15 ] @
Ljudi HVALA VAM puno od srca, puno ste mi pomogli. Nemam reci za Vas, svaka cast i HVALA jos jednom!!!