Forum INFOMATH
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -29%
PC portable Gamer ERAZER DEPUTY P60 – ...
Voir le deal
999.99 €

Exercice: Approximation de SINUS(X) + factoriel + suite

2 participants

Aller en bas

Exercice: Approximation de SINUS(X) + factoriel + suite Empty Exercice: Approximation de SINUS(X) + factoriel + suite

Message par Napoléon Lun 23 Fév - 2:07

EXTRAIT DE BAC TUNISIEN

Sachant que sin(x)= x/1!-x^3/3!+x^5/5!-x^7/7!+x^9/9!-..........;

Pour x trés proche de zéro.

Écrire un programme Pascale intitulé SIN(X) qui permet de calculer sin(x) en utilisant la formule ci-dessus.

Le calcul s'arrête lorsque la différence entre deux termes consécutifs devient inférieure ou égale à 10^-4. La dernière somme calculer est une valeur approché de sin(x).

Vous pourrez utiliser la fonction FACT(a) suivante qui permet de calculer le factorielle a (a!).

Code:
1.DEFFN FACT(a :entier) : entier

2.F<--1

3.Si (a>0) alors Pour i de 1 à a répeter

F<--F*i

Fin pour

FinSi

4.Fact<--F

5.Fin FACT

NB:
La solution doit comporter au moins une fonction et une procédure.
Napoléon
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7633
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
Exercice: Approximation de SINUS(X) + factoriel + suite Left_bar_bleue999/1000Exercice: Approximation de SINUS(X) + factoriel + suite Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

Revenir en haut Aller en bas

Exercice: Approximation de SINUS(X) + factoriel + suite Empty Re: Exercice: Approximation de SINUS(X) + factoriel + suite

Message par Napoléon Lun 23 Fév - 2:08

Une solution possible :

Code:
Program SIN(X);

uses wincrt;

var

i,a:integer;

s,a;real;

 

procedure saisie(var x:real);

begin

repeat

writeln('Introduire x');

readln(x);

until (x>=-1) and (<=1);

end;

 

function factoriel(x:integer):integer;

var

i,f:integer;begin

f:=1;

for i:=1 to x do

f:=f*i;

factoriel:=f

end;

 

function puissance(x:real;n:integer):real;

var

i:integer;

p:real;

begin

p:=1;

for i:=1 to n do

p:=p*x;

puissance:=p;

end;

 

begin

saisie(x);

i:=1;

a:=1:

s:=0;

repeat

s:=s+a*puissance(x,i)/factoriel(i);

i:=i+2;

a:=-a;

until abs(puissance(x,i-2)/factoriel(i-2)-puissance(x,i)/factoriel(i))<=0.0001;

writeln('sin(',x,')=',s);

end.
Napoléon
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7633
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
Exercice: Approximation de SINUS(X) + factoriel + suite Left_bar_bleue999/1000Exercice: Approximation de SINUS(X) + factoriel + suite Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

Revenir en haut Aller en bas

Exercice: Approximation de SINUS(X) + factoriel + suite Empty Re: Exercice: Approximation de SINUS(X) + factoriel + suite

Message par Dr X Mar 23 Avr - 4:16

Bonsoir,
Pour mon premier post sur le forum je me présente:
Moi c'est Amine étudiant en L1 mathématique-informatique.
J'ai cet exercice à faire pour demain, je pense que ma façon de l'avoir écrit est bonne, d'ailleurs elle se rapproche de celle de Napoléon, tout de même j'ai une erreur affichée au premier Read(x) de type : Runtime error 200 at 0001:0123.
& je ne comprend pas d'ou ça vient.
A noter que j'ai testé le code proposé par Napoléon, & y avait des erreurs, qui empechaient l'execution, que j'ai eu la flemme d'essayer de retrouvés une a une.
Bref, voila mon code :

Code:
program exo5;
uses wincrt;
var sinx,x: real;
procedure saisie(var x:real);
begin
repeat
clrscr;
writeln('calcul de sinus(x) ');
write('donner une valeure à x : ');
readln(x);
until (x>=-1) and (x<=1);
end;
function factorielle(n: integer): integer;
var f: integer;
begin
f := 1;
while (n > 1) do
begin
f := f * n;
n := n - 1;
end;
factorielle := f;
end;
function puissance(x: real; n: integer): real;
var i: integer; p: real;
begin
p := 1;
for i := 1 to n do
p := p * x;
puissance := p;
end;
function somme(x: real):real;
var i,n: integer; som,s: real;
begin
somme := 0;
s := 0;
repeat
for i := 3 to 100 do
begin
som := som + s;
if ((i mod 2)<> 0) then n := i;
s := (puissance(x,n) / factorielle(n));
end;
until (s <= 0.0001);
somme := som;
end;
begin
writeln('Calcul de Sin(x) ');
saisie(x);
sinx := x - somme(x);
write(sinx);
end.
Merci d'essayer de m'aider.

Dr X
Entier Naturel
Entier Naturel

Masculin
Nombre de messages : 1
Localisation : Tizi Ouzou
Réputation : 0
Points : 3994
Date d'inscription : 23/04/2013

Revenir en haut Aller en bas

Exercice: Approximation de SINUS(X) + factoriel + suite Empty Re: Exercice: Approximation de SINUS(X) + factoriel + suite

Message par Napoléon Dim 28 Avr - 14:02

Quelles étaient les erreurs que tu as trouvées dans la solution de Napoleon?
Napoléon
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7633
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
Exercice: Approximation de SINUS(X) + factoriel + suite Left_bar_bleue999/1000Exercice: Approximation de SINUS(X) + factoriel + suite Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

Revenir en haut Aller en bas

Exercice: Approximation de SINUS(X) + factoriel + suite Empty Re: Exercice: Approximation de SINUS(X) + factoriel + suite

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum