Kezdőoldal » Számítástechnika » Programozás » Masodik nekifutasra Epsilon,...

Masodik nekifutasra Epsilon, c nyelv?

Figyelt kérdés

valaki segítene megírni a gépi epszilon programot?



Irjon programot ami megnezi es kiirja a gepi epszilont a float a double tipusra. Vegul kiirja oket __FLT_EPSILON__ a __DBL_EPSILON__) definialt float.h ban.


Definício:

Gepi epszilon a legkisebb szam,ami a hozzaadas utan egyeshez valmi elterot ad az egyestol.


Mas definicio:

Gepi epsilon tavolsag az 1 es szám kozott es annak kozvetlen jobb szomszedjatol.


Vysvetlenie: Realis szamok ugy vannak definialva h azok nem vegtelenek.Egyes szamok kozott helyek vannak. Ha elkezdunk szamolni

1 + 0,1 = 1,1

1 + 0,01 = 1,01

1 + 0,001 = 1,001


egy meghatarozott ido utan 1 + 0,0...001 = 1 /ez a szam 0,0...01 az epsilon. Mas mas gepen mas szam jon ki.


Tip 1:

Ne 10 es hanem 2vel osztjuk/szamoljunk,mivel 2s szamrendszerben dolgozunk.


Tip 2:

hasonlitsatok ossze a konstansokkal ami FLT_EPSILON a DBL_EPSILON, (alebo __FLT_EPSILON__ a __DBL_EPSILON__) definialva van limits.h float.h ban



[link]



valaki tudna segiteni elindulni,hogy mit kenne ...csinalni?/a szoveg furi mivel én forditottam at idegen nyelvrol /



talaltam megoldast elozo evekbol...de nekem el is kell magyaraznom...es persze megcsinalni,megerteni


Lehet ebbol jobban fogjatok tudni mit is akarnak:



#include <stdio.h>

#include <float.h>


int main(void)

{


double epsilon=1;

while ((1.0+epsilon/2.0)!=1.0)

{

epsilon/=2.0;

}

printf("szamitogepes epsilon a kiszamolas szerint je: %e\n",epsilon);

printf("szamitogepes epsilon definialva ennyi: %e\n",FLT_EPSILON);

getchar();

return 0;


}



egy masik verzio



#include <float.h>

#include <stdio.h>


int main()

{

float f=1.0;

double d=1.0;


while((f+1)!=1)

f/=2;

printf(" Float epsilon : %E\n",f);

printf(" Z float.h : %E\n\n",FLT_EPSILON);


/**************************************************/


while((d+1)!=1)

d/=2;

printf("Double epsilon : %E\n",d);

printf(" Z float.h : %E\n",DBL_EPSILON);


getchar();

return 0;

}



a harmadik viszont nem tuti h pontossan ez a feladat volt megoldva



#include <cstdlib>

#include <iostream>

#include <stdio.h>

#include <float.h>


using namespace std;


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


{

float strEPS=1.0f;


printf( "sucasne epsilon, 1 + sucasne epsilon \n" );


while(1)

{

printf( "%g\t%.20f\n", strEPS, (1.0f + strEPS) );

strEPS /= 2.0f; // ak dalsie epsilon postupi o 1, potom zastane, pretoze sucasne epsilon je strojove epsilon

if ((float)(1.0+(strEPS/2.0))==1.0 )

break;

}


2012. febr. 29. 21:49
 1/1 anonim ***** válasza:

Az epszilon a hibatűrési tartomány, a pontos értéket adó függvény epszilon sugarú környezete. [f(x) - f'(x)| < Epszilon

Ahol f(x) a pontos értéket adó függvény, f'(x) pedig a közelített értéket adó függvény.

2012. febr. 29. 21:59
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!