praegune kellaaeg 19.06.2025 01:15:22
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
vottak
HV vaatleja
liitunud: 25.10.2013
|
25.10.2013 13:21:00
Algaja palub abi |
|
|
Nimelt on mul vaja funktsioon tabuleerida, kuid olen selles alles algaja. Koodis näitab ta selles kohas viga: rida koodist: if(sqrt(4 - x^3) == 0 && 4 - x^3 == 0) ning selle veateade: error: invalid operands to binary - (have 'int' and 'float *').
Sama error on ka siin: y[i] = (x+4/(x^2-x)^1/2) - x^2*sqrt(4-x^3);
x[i+1] = x[i]+C*H+i*(C^(i))*N*H);
Mida peaksin siin parandama? Ise ei ole hetkel seda veel suutnud välja mõelda..
|
|
tagasi üles |
|
 |
Batdog
HV vaatleja
liitunud: 21.06.2012
|
25.10.2013 14:13:33
|
|
|
Eeldan, et ^ operaatoriga tahad astendamist teha, aga ^ on hoopis bitwise xor tehte operaator.
x^3 asemel peaks olema pow(x,3)
|
|
tagasi üles |
|
 |
vottak
HV vaatleja
liitunud: 25.10.2013
|
25.10.2013 14:47:41
|
|
|
Batdog kirjutas: |
Eeldan, et ^ operaatoriga tahad astendamist teha, aga ^ on hoopis bitwise xor tehte operaator.
x^3 asemel peaks olema pow(x,3) |
peale selle muutmist ütleb ta ikka siin x[i+1] = x+C*H+i*pow(C,i)*N*H); veaks: [i]expected ';' before ')' token ning error: expected statement before ')' token
|
|
tagasi üles |
|
 |
yeah1000
HV kasutaja

liitunud: 09.02.2005
|
25.10.2013 14:51:13
|
|
|
vottak kirjutas: |
Batdog kirjutas: |
Eeldan, et ^ operaatoriga tahad astendamist teha, aga ^ on hoopis bitwise xor tehte operaator.
x^3 asemel peaks olema pow(x,3) |
peale selle muutmist ütleb ta ikka siin x[i+1] = x+C*H+i*pow(C,i)*N*H); veaks: [i]expected ';' before ')' token ning error: expected statement before ')' token |
Sulud ei ole tasakaalus ju, kus ; ees olev sulg algama peaks?
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
3 |
|
tagasi üles |
|
 |
Sold OUT
no credit

liitunud: 30.07.2002
|
25.10.2013 15:01:02
|
|
|
vottak kirjutas: |
Batdog kirjutas: |
Eeldan, et ^ operaatoriga tahad astendamist teha, aga ^ on hoopis bitwise xor tehte operaator.
x^3 asemel peaks olema pow(x,3) |
peale selle muutmist ütleb ta ikka siin x[i+1] = x+C*H+i*pow(C,i)*N*H); veaks: [i]expected ';' before ')' token ning error: expected statement before ')' token |
x[i+1] = x[i]+C*H+i*pow(C,i)*N*H;
_________________ People have been calling for a month and we've been sold out for a week or so.
|
|
Kommentaarid: 92 loe/lisa |
Kasutajad arvavad: |
   |
:: |
5 :: |
1 :: |
79 |
|
tagasi üles |
|
 |
vottak
HV vaatleja
liitunud: 25.10.2013
|
25.10.2013 15:35:24
|
|
|
See sulg jäi jah kahe silma vahele, aitäh.
Aga selle rea kohta arvutamine (A, N, C, H, x, y); annab ta ikka veel mitu errorit, ehkki enne on koodis selline rida olemas: void arvutamine (float A, int N, float H, float C, float x[], float y[]). Äkki oleks keegi nõus minu koodi üle vaatama, kui saadan selle sõnumina? Ning isegi mõnda minu viga seletama, et seda enam ei korduks?
viimati muutis vottak 25.10.2013 16:42:32, muudetud 1 kord |
|
tagasi üles |
|
 |
Fukiku
Kreisi kasutaja

liitunud: 06.11.2003
|
25.10.2013 16:28:02
|
|
|
Võid ju oma koodi ka tervenisti siia panna. Rohkem silmapaare on ehk ikka abiks. Samuti soovitan koodi postitamisel kasutada [syntax] tage koodi ümber - see muudab programmikoodi märksa paremini loetavaks.
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
vottak
HV vaatleja
liitunud: 25.10.2013
|
25.10.2013 16:44:20
|
|
|
#include <stdio.h>
#include <math.h>
void sisestus(float *A, float *C, float *H, int *N ) // algandmete sisestus
{
printf("Sisestage argumendi algvaartus A:\n");
scanf("%f", A);
printf("Sisestage sammude arv N:\n");
scanf("%d", N);
printf("Sisestage sammu algvaartus H:\n");
scanf("%f", H);
printf("Sisestage sammu koefitsient C:\n");
scanf("%f", C);
}
void arvutamine (float A, int N, float H, float C, float x[], float y[])
{
int i = 0;
x[i] = A;
if(4 - pow(A,3) == 0)
printf("Vastus puudub\n");
else
for(i = 0; i<=N; i++)
{
y[i] = (x[i]+4/pow(x[i],2)-pow(x[i],1/2)) - pow(x[i],2)*sqrt(4-pow(x[i],3));
x[i+1] = x[i]+C*H+i*pow(C,i)*N*H;
}
}
void v2ljastus (float *x, float *y, int N)
{
int i = 0;
printf("x \t y\n");
for(i = 0; i<=N; i++)
{
printf("%f \t %f\n", x[i], y[i]);
}
}
int main(void)
{
int N;
float A, C, H;
sisestus ( &A, &H, &C, &N);
arvutamine (A, N, C, H, x, y);
v2ljastus (x, y, N);
printf("Vajutage enter v2ljumiseks\n");
getchar();
return 0;
}
|
Olen kindel, et selles on veel palju vigu. Olen õppimisega alles alguses ning varasemalt enne ülikooli polnud progemisega kokkupuudet ka. Lisaksin veel ka, et selle koodi panin kokku näidete põhjal, mida ise ka vastavalt enda ülesandele kohandasin.
|
|
tagasi üles |
|
 |
guest1902
Kreisi kasutaja

liitunud: 05.11.2005
|
26.10.2013 16:13:41
|
|
|
Sul x ja y initsialiseerimata. Lükka mingi
c:
|
float* x=(float*)malloc(N*sizeof(float)); float* y=(float*)malloc(N*sizeof(float));
|
main()'i. malloc tahab vist #include <stdlib.h>
edit: vaata üle oma for-loopid. Nt, kui sa tahad N-pikkusega array'd, siis indeksid on 0...N-1. Vaata üle, et indeksid tsüklis ei läheks üle nende piiride.
_________________ assumption is the mother of all fuck ups
,,think before you print and save a ROOT::TTree''
viimati muutis guest1902 26.10.2013 17:42:11, muudetud 1 kord |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
Dealer14
HV vaatleja
liitunud: 09.02.2004
|
26.10.2013 16:17:14
|
|
|
arvutamine (A, N, C, H, x, y); |
x ja y on määramata.
Ehk aitab.
int main(void)
{
int N;
float A, C, H;
float x [] = { 0 };
float y [] = { 0 };
x[0] = 0;
sisestus(&A, &H, &C, &N);
arvutamine(A, N, C, H, x, y);
v2ljastus(x, y, N);
printf("Vajutage enter v2ljumiseks\n");
getchar();
return 0;
} |
|
|
Kommentaarid: 22 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
22 |
|
tagasi üles |
|
 |
vottak
HV vaatleja
liitunud: 25.10.2013
|
27.10.2013 18:36:47
|
|
|
Nüüd peale vigade parandamist sain programmi kompileeritud ning kui käima panen, ei arvuta ta õigeid vastuseid..
|
|
tagasi üles |
|
 |
guest1902
Kreisi kasutaja

liitunud: 05.11.2005
|
27.10.2013 19:26:56
|
|
|
Ei noh, ega me ju ei tea, mida su kood tegema peaks. Ja idee poolest ei peagi teadma.
Vaata hoolikalt üle oma algoritm, et sul nulliga jagamisi, algväärtustamata muutujatega opereerimist jms jama pole. Kui väga häda, võta või paber ja pastakas ning proovi ise järgi.
Kui kasutad mingit ide't nagu dev-c++, siis katsu debug'imisega tutvust teha: http://bit.ly/HaGhbp
_________________ assumption is the mother of all fuck ups
,,think before you print and save a ROOT::TTree'' |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
Batdog
HV vaatleja
liitunud: 21.06.2012
|
27.10.2013 21:44:32
|
|
|
vottak kirjutas: |
Nüüd peale vigade parandamist sain programmi kompileeritud ning kui käima panen, ei arvuta ta õigeid vastuseid.. |
Sedasi juhtub, kui proovid võtta negatiivsest arvust ruutjuurt. Sul ei ole funktsioon nende x väärtuste korral lihtsalt määratud.
|
|
tagasi üles |
|
 |
vottak
HV vaatleja
liitunud: 25.10.2013
|
28.10.2013 13:05:05
|
|
|
Nonii, leidsin veel ühe apsaka. Kuidas ma peaksin selle valemi koodi kirjutama?
See tuleks selle asemele kirjutada:
y[i] = (x[i]+4/pow(x[i],2)-pow(x[i],1/2)) - pow(x[i],2)*sqrt(4-pow(x[i],3)); |
Kas topelt-pow'ga saab kuidagi?
|
|
tagasi üles |
|
 |
napoleon
Unknown virus

liitunud: 08.12.2008
|
28.10.2013 13:51:15
|
|
|
Üks näpuks on jätuvalt peaks olema:
(x[i]+4) / pow(pow(x[i],2)-x[i],0.5) - pow(x[i],2)*sqrt(4-pow(x[i],3));
|
|
|
Kommentaarid: 77 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
60 |
|
tagasi üles |
|
 |
Batdog
HV vaatleja
liitunud: 21.06.2012
|
28.10.2013 15:25:22
|
|
|
Ma teeks nii:
y[i] = ((x+4) / sqrt(x*(x-1)) - (x*x)*sqrt(4-pow(x,3))
|
|
tagasi üles |
|
 |
vottak
HV vaatleja
liitunud: 25.10.2013
|
29.10.2013 18:49:35
|
|
|
Aitäh, parandasin ka selle vea, kuid programm ei arvuta endiselt vastuseid välja. Mida ma peaksin koodis veel parandama?
Ülesanne on muidu selline: On antud argumendi algväärtus A, sammude arv N, sammu algväärtus H ning sammu koefitsient C. Funktsiooni väärtust arvutatakse N punktis A, A + H, A + H + C*H, A + H + C*H + C2*H, …, A + H + C*H + … + CN*H (st samm võetakse iga kord teguriga C). Ning peab selle valemi, mille eespool postitasin, x ja y väärtused välja arvutama
|
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|