CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

C - Fonction puissance sous Linux

The_Brain
The_Brain
Niveau 6
28 novembre 2005 à 14:26:52

Je dois faire un projet en C et j´ai besoin d´une fonction qui calcule une puissance, j´avais trouvé la fonction pow mais on ne peut pas l´utiliser sous Linux (tout du moins à mon établissement) donc en existe-t-il une autre qui est utilisable sous Linux ?
Merci

guyver2
guyver2
Niveau 10
28 novembre 2005 à 16:13:26

tien en voila une faite a la main et en direct

double puissance(double n, int p)
{
if (p==0) return 1;
else return n*puissance(n,p-1);
}

elle est recursive et te donne n^p (avec n un reel et p un entier)

godrik
godrik
Niveau 30
28 novembre 2005 à 17:08:24

jai pow dans math.h moi...
man 3 pow

sinon guyver, c´est pas genial genial comme expression de l´exponentiel...
ce qui est mieux (polynomial en fait, parceque ca c´est exponentiel)
c´est de calculer les carrées
n*n => n^2
n^2*n^2 => n^4
n^4 * n^4 => n^8

tu decompose p en puissance de 2 et tu multiplie les facteurs
par exemple n^197 = n^128*n^64*n^4*n^1

guyver2
guyver2
Niveau 10
28 novembre 2005 à 17:12:19

godrik

desolé mais j´ai fait ça tres vite sans y penser...

dnob700
dnob700
Niveau 10
28 novembre 2005 à 18:28:25

de toute manière math.h existe partout (et parfois les fonctions se trouvent dans stdlib.h à la place, mais elles y sont quand même).

Sinon une version ASM x86 (donc presque portable, mais il faut le réécrire dans le style gcc car là c´est intel) de la fonction pow :

http://rafb.net/paste/results/kLpAbG34.html

The_Brain
The_Brain
Niveau 6
28 novembre 2005 à 20:53:55

Merci !
Pour pow j´inclus bien math.h dans mon fichier d´ailleurs aucun problème sous Windows mais sous Linux ça ne passe pas...

godrik
godrik
Niveau 30
28 novembre 2005 à 21:05:18

qu´est ce qui ne passe pas ?
la compilation, l´edition de lien ?
quel est le message d´erreur ?

guyver2
guyver2
Niveau 10
28 novembre 2005 à 21:56:16

il me semble que sous linux il faut ajouter -lmath (ou -lmath.h) lors de la compilation en plus du #include <math.h>

godrik
godrik
Niveau 30
28 novembre 2005 à 22:08:18

je ne penses pas; la preuve en image:

mandan:~/test> cat toto.c

  1. include <math.h>
  2. include <stdio.h>

int main ()
{
int a = pow (3, 4);
printf ("%d\n", a);
return 0;
}
mandan:~/test> gcc toto.c
mandan:~/test> ./a.out
81

dnob700
dnob700
Niveau 10
28 novembre 2005 à 22:15:07

Dans le même temps, l´option -lmath est ajouté automatiquement en général par gcc. Ce qui veut dire que tout ce passe comme si elle était là. Mai sça ne supprime pas le fait qu´elle soit nécessaire.

Donc, si ça ne marche pas au linkage, essayé avec l´option -lmath. Et si c´est à la compilation essayer avec #include <stdlib.h> car je crois que sur certain vieux compilo (je me demande si c´est pas dans la "norme" K&R) c´est là que ce trouve les fonctions mathématiques de bases.

JeanYvesYves
JeanYvesYves
Niveau 10
28 novembre 2005 à 23:31:56

faut ajouter -lm sous Linux sous certaines distrib (Debian)

JYY n´aime pas Linux.

guyver2
guyver2
Niveau 10
29 novembre 2005 à 13:37:54

JYY n´aime pas Linux.

bizard, dans ma petite tete d´ivrogne je pensai que tout ceux qui programment a un niveau avancé préfere linux.

godrik
godrik
Niveau 30
29 novembre 2005 à 13:53:14

guyver2, non pas forcement,
ca depend de ce qu´ils font par exemple, je me fous completement de la plateforme sur laquelle je travaille. Je connais mieux les plateformes a base NT mais tant que j´ai de la doc, je peux travailler partout...

dnob700
dnob700
Niveau 10
29 novembre 2005 à 16:17:35

"bizard, dans ma petite tete d´ivrogne je pensai que tout ceux qui programment a un niveau avancé préfere linux."

Et il y en a même pour qui c´est le contraire.
J´avouerais que j´ai une nette tendance à préférer les technologie disponible sous windows que celle disponible sous linux.
C´est peut-être que je ne connait pas suffisement le fonctionnement des technologie équivalentes sous linux.

Mais ça va de truc comme une préférence pour GDI face à X. ou à un système de fichier à base de volume physique, plutot qu´une arborescence virtuelle, etc.

Globalement, je trouve que la volonté que l´on retrouve à tout les niveau sous linux de s´astreindre des problèmes matériels en créant quelque chose d´absolument uniforme nuit aux performances et à la simplicité du système.
A l´opposé, sous windows, comme il n´y a qu´une seul architecture (ou presque), sans cette abstraction on a quand même quelque chose d´uniforme, et parfois même quelquechose de supérieur comme avec les DIB (device independant bitmap) de GDI, dont le simple concept ferait frémir un programmeur pour X : "Oui, mais si jamais l´utilisateur n´a qu´un moniteur monochrome, on fait comment ?" sous windows on s´en fiche, on sait bien que tout le monde peut afficher 24bits de couleurs.
Bon c´est un exemple imagé, mais globalement j´ai ´impression que c´est ça pour tout.

Bigloo
Bigloo
Niveau 10
29 novembre 2005 à 18:28:54

"Globalement, je trouve que la volonté que l´on retrouve à tout les niveau sous linux de s´astreindre des problèmes matériels en créant quelque chose d´absolument uniforme nuit aux performances et à la simplicité du système. "
-> Dieu sait qu´il serait facile de faire un troll particulièrement juteux là dessus.

J´espère que tout le monde note que je me la ferme.

godrik
godrik
Niveau 30
29 novembre 2005 à 18:31:44

et tout le monde t´en remercie! :)

Kouic
Kouic
Niveau 9
29 novembre 2005 à 18:49:52

Il y a effectivement moyen de troller de long jours la dessus, mais ce qui reste sur c´est que la concurrence Windows/Linux donne au deux camps la possibilité de pouvoir choisir.
Un Linux sans un Windows, ce serait pas pareil. Sans competition peut etre que les choses n´avancerait pas aussi vite.

De toute facon, beaucoups de programmeur utilisent des lib protables, donc programmation sous Windows ou Linux peuvent etre compatibles.
Apres c´est question de gout, de philosophie, d´argent, de temps...

JeanYvesYves
JeanYvesYves
Niveau 10
29 novembre 2005 à 23:02:54

">> bizard, dans ma petite tete d´ivrogne je pensai que tout ceux qui programment a un niveau avancé préfere linux."

Les autres t´ont bien répondu.
Je ne vais pas rerentrer dans ce débat sans fin.
tu sauras qu´il y a des programmeurs de niveau avancés (lol je me la pete) qui preferent Windows, j´en connais plein :) Mais bon, apres, comme dit Kouic, les gouts et les couleurs, tout ça ! :)

guyver2
guyver2
Niveau 10
30 novembre 2005 à 19:04:37

merci j´en demandais pas tant...

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment