Exercice unix
meryema92
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je veux résoudre un exercice qui demande qu'on écrive un script shell qui calcule la somme
S=1^p+2^p+3^p+....n^p
avec n et p deux entiers entrés en argument
voici le code que j'ai proposé
S=0
n=1
m=1
while [ $n -le $1 ]
do
p=1
while [ $p -le $2 ]
do
m='expr $m \* $n'
p='expr $p + 1'
done
n='expr $n + 1'
S='expr $S + $m'
done
echo $S
je veux résoudre un exercice qui demande qu'on écrive un script shell qui calcule la somme
S=1^p+2^p+3^p+....n^p
avec n et p deux entiers entrés en argument
voici le code que j'ai proposé
S=0
n=1
m=1
while [ $n -le $1 ]
do
p=1
while [ $p -le $2 ]
do
m='expr $m \* $n'
p='expr $p + 1'
done
n='expr $n + 1'
S='expr $S + $m'
done
echo $S
3 réponses
salut,
et? ça fonctionne?
à mon avis, sans avoir essayé, ça ne devrait pas fonctionner :
si n et p sont des paramètres du script (c'est-à-dire respectivement $1 et $2), pourquoi les assigner à 1 dans le script? Leurs valeurs ne doivent pas être modifiées.
Par contre, il doit effectivement y avoir une incrémentation d'une variable supplémentaire (disons m), jusqu'à qu'elle soit égale à $n;
Il n'y a donc qu'une seule boucle qui incrémente $m, et calcule $S.
et? ça fonctionne?
à mon avis, sans avoir essayé, ça ne devrait pas fonctionner :
si n et p sont des paramètres du script (c'est-à-dire respectivement $1 et $2), pourquoi les assigner à 1 dans le script? Leurs valeurs ne doivent pas être modifiées.
Par contre, il doit effectivement y avoir une incrémentation d'une variable supplémentaire (disons m), jusqu'à qu'elle soit égale à $n;
Il n'y a donc qu'une seule boucle qui incrémente $m, et calcule $S.
en fait a l'aide de la première boucle on fixe un n et puis a l'aide de la deuxième boucle on calcule la puissance du n fixé en se servant de la variable m , a chaque fois qu'on sort de la boucle on incrémente le n jusqu'à ce qu'on atteint le $1
en fait quand j'exécute le programme il m'affiche une valeur très grande par rapport a ce que je dois avoir
le problème c'est que j'arrive pas a repérer l'erreur
en fait quand j'exécute le programme il m'affiche une valeur très grande par rapport a ce que je dois avoir
le problème c'est que j'arrive pas a repérer l'erreur