Programozás C-ben függvényes feladat?
f(x)= sin^5(3x-sqrtx)(1,3-arccosx) Meg van adva ez a függvény és egy adott intervallumban egymástól egyenlő távolságokra levő x változókra kellene kiszámolni. Valamint ahol nincs értelmezve ott egy hibaüzenetet kellene kidobnia. Eddig ezt sikerült összehozni:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
float fuggveny(float a, float b, float c);
int main()
{
float a,b,c,x;
a = pow(sin(b*c),5);
b = (3*x-sqrt(x));
c = (1,3-acos(x));
printf("Adja meg az 'x' valtozo erteket!\n");
scanf("%f" , &x);
printf("A fuggveny erteke : %f\n",fuggveny(a,b,c));
return 0;
}
float fuggveny(float a, float b, float c)
{
return a*b*c;
}
Elég kezdő vagyok, szóval valószínűleg több sebből is vérzik a dolog :D Valaki meg tudná mondani, hogy mik a hibák benne és a feladatnak azt a részét, hogy lehetne megoldani, hogy egymástól egyenlő távolságra lévő x változókra számolja ki az intervallumon amit bekérek?
Előre is köszönöm!
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Ez a sor is gyanús, mert a számítástechnikában tizedespont használatos:
c = (1,3-acos(x));
A fordító jelzi is a warningok között, hogy a vessző operátorral nem tud mit kezdeni, de, talán az x körüli bizonytalanság okán, mégis hagyja lefordulni. Amúgy javaslom, hogy fordításkor olvasd el a figyelmeztetéseket, amelyek itt is korrektül jelezték a beállítatlan változókat. Később, amikor már tudod, mit csinálsz, megteheted, hogy figyelmen kívül hagyod azokat, amelyek valami speciális szándékodból következnek. Most még ne elégedj meg azzal, ha a programod egyáltalán lefordul, törekedj arra, hogy semmit ne kifogásoljon a fordító.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Alábbi:
a képlet?
De egyébként egyetértek tabaki kollegával: legelőször kérd be az x értékét, majd az így bekért számot add tovább a függvénynek.
Nem kell semmi a,b,c.
Illetve egy dologra ügyelj: programozásnál a lebegőpontos számok ábrázolásánál tizedespontot alkalmazunk.
Szóval valahogy ekképpen:
"és a feladatnak azt a részét, hogy lehetne megoldani, hogy egymástól egyenlő távolságra lévő x változókra számolja ki az intervallumon amit bekérek?"
1. Bekéred az intervallum kezdetét.
2. Bekéred az intervallum végét (amíg kisebb mint az intervallum kezdetének értéke kérjük be újra).
3. Kérjük be a lépések számát.
4. Az intervallum végének és kezdetének különbségéből határozzuk meg az intervallum méretét.
5. Az intervallum méretének és a lépések számának hányadosa megadja a lépésközt.
6. Az x értékét iteráljuk az intervallum kezdetétől az intervallum végéig a lépésközzel haladva.
7. A ciklusmagban pedig az x értékét felhasználva számoljuk ki a függvény értékét, és írjuk ki mind az x-et, mind a függvény értékét.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
„Nem kell semmi a,b,c.”
Hát igen, éjszaka még babráltam a programmal, és én is hamar erre lyukadtam ki, mellesleg a függvényem is betűhíven ugyanaz lett, mint a kollégáé -- ami nem túl nagy csoda, mert csak összeraktam egyetlen zárójeles kifejezésbe a háromfelé szalámizott számításodat, az meg eléggé adja magát. Aztán rájöttem, hogy a kérdésleírásban bemutatott formája alapján nem értem a képletet, úgyhogy inkább elfáradtam és lefeküdtem...
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Amikor ez lefut, a változóknak még nincs értékük.
a = pow(sin(b*c),5); // mi b és c értéke??
b = (3*x-sqrt(x)) // mi x értéke??
c = (1,3-acos(x)); // ugyancsak x ??
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
#6:
Igen, igen... ez szúrja ki az ember szemét legelőször, de ezen egy ideje már átléptünk. Szerintem a következő probléma az, hogy egyáltalán mi az eredeti képlet -- legalábbis én nem tudom felírni a magyarázó szöveg alapján. Szerencsésebb lenne, ha Kérdező fogná a Paintet, a szokásos matematikai formában fölkaparná egy képre, és egy képmegosztó oldalra (imgur.com, vagy csak a kepkezelo.com) feltöltve belinkelné. Ezenkívül a kérdés másik része is érdekelne, vagyis az értelmezési tartományon kívülre eső rész kezelése, amihez az én ügyefogyott okoskodásom már kevés.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!