Aide projet :langage C

Discutez d'informatique ici !
Anonyme

Aide projet :langage C

par Anonyme » 29 Nov 2005, 14:27

Salut,

j'aimerais savoir si quelqu'un connait très bien le C et pourrais m'aider dans mon projet.
Je lui enverrais le projet et ce que j'ai fait

Merci d'avance



moroccan
Membre Relatif
Messages: 197
Enregistré le: 30 Nov 2005, 11:00

par moroccan » 02 Déc 2005, 11:02

Bonjour,
J'ai étudié le langage C peandant 2 ans, mais depuis je ne travaille plus avec.. Ceci dit, tu peux toujours essayer de m'expliquer un peu plus à propos de ton projet.

Anonyme

par Anonyme » 02 Déc 2005, 17:33

moroccan a écrit:Bonjour,
J'ai étudié le langage C peandant 2 ans, mais depuis je ne travaille plus avec.. Ceci dit, tu peux toujours essayer de m'expliquer un peu plus à propos de ton projet.

Salut,
je bloque sur l'evaluation des fonctions et sur les fonctions avec intervalle.
Je te mets l'enoncé du projet:

Le but du projet est d'écrire une calculatrice "en ligne",on tape des expressions et des définitions des symboles au clavier,et la calculatrice est capable d'évaluer les expressions.
Pour faciliter l'analyse syntaxique des expressions dans le projet,on écrira les expressions en notattion préfixée.

Voici un exemple de ce que pourrait donner l'interface utilisateur du projet pour une session:
lien

les lignes qui commencent par set dans l'exemple définissent des symboles

I Environnement
L’environnement est l’objet (qui devra etre représenté par une structure)qui contient les noms des symboles et leurs definitions.
Les symboles peuvent etre de 2 types :
-des variables,qui possedent un nom et dont la valeur est nécessairement une constante réelle(type double).
-des fonctions,qui possedent aussi un nom,ont zero,un ou plusieurs paramètres(les parametres sont reelles),et qui sont definies par des expressions,dont nous parlerons en details plus loin .Les expressions dans le corps des fonctions peuvent le cas échéant contenir des symboles qui ne sont pas encore dans l’environnement au moment de la définition de la fonction.
Les commandes agissant sur l’environnement sont les suivantes :
-set = ,qui permet d’ajouter un symbole et sa définition dans l’environnement.
-unset ,qui permet de retirer un symbole et sa definition de l’environnement.
-env ,qui affiche le contenu de l’environnement,c’est à dire chaque symbole qu’il contient et sa definition.
-load ,qui permet de lire des symboles et leurs definitions à partie d’un fichier binaire.
-save ,qui sauvegarde chaque symbole et sa definition dans un fichier binaire
L’environnement contient 2 symboles prédéfinis et dont la valeur est fixe :
-MIN,qui est la plus grande valeur négative que la calculatrice puisse manipuler
-MAX,qui est la plus grande valeur positive que la calculatrice puisse manipuler

II Commandes
Il existe 2 commandes en plus de celles agissant sur l’environnement,qui sont détaillées dans la section 1 :
-eval ,qui evalue l’expression qui lui est fournie en argument.L’évaluation est partielle si tous les symboles contenus dans l’expression ne sont pas définis au moment de l’évaluation.Si c’est le cas ,la commande a pour effet d’afficher une expression dans laquelle les seuls symboles restant sont ceux qui ne sont pas définis.Si ça n’est pas le cas,la commande affiche la valeur réelle de l’expression.
-quit,qui permet de quitter le programme.

III Expressions
Les expressions sont construites à partir de symboles,d’opérateurs et de constantes.
Les constantes sont toutes des réels(type double)
Les symboles sont des chaines de caractères,qui font référence par exemple à des symboles définis dans l’environnement.
Les opérateurs sont les suivants :
- + est la somme binaire
- - est la différence binaire
- / est le quotient binaire
- * est le produit binaire
- @ est le plus unaire (un caractère différent de celui employé pour la somme binaire est utilisé pour faciliter l’analyse syntaxique des expressions)
- ~ est le plus unaire(meme remarque)
-l’opérateur d’application d’une fonction à des arguments,qui n’est représenté par aucun caractère.Bien que cet opérateur soit "invisible",il existe néamoins.Ainsi ,si f est un symbole de fonction qui à x associe x+1 alors l’expression f 3,qui signifie "applique f à 3" vaut 4
Les expressions sont évaluées "au mieux" .Ainsi par exemple,+ 1 2 donne 3.De meme,si x est un symbole défini dans l’environnement avec pour valeur 3,alors + 1 x donne 4.S’il n’est pas défini,alors + 1 x vaut + 1 x .D’une manière générale,l’évaluation d’une expression donne soit une constante,soit une expression plus complexe construite à partir d’un opérateur et d’autres expressions.

IV Définitions des fonctions
Il est possible de spécifier un "branchement" dans la définition des fonctions.Un branchement est repéré par le caractère | dans les définitions de fonctions.En voici un exemple simple :
set fact(x) = | x:[0,0] 1 x: default * x fact – x 1
La signification de l’exemple est :
-si x appartient à [0,0] alors fact(x) vaut 1
-sinon,fact(x) vaut x*fact(x-1)
La syntaxe [a,b] spécifie un intervalle de valeurs.
On peut en spécifier plusieurs,qui ne comprennent pas forcément leurs bornes comme dans l’exemple précédent,qui sont nécessairement disjoints,et dont l’union contient toutes les valeurs réelles possibles :
set f(x) = | x:[0,1[ 0 x:[1,2[ 1 x:[2,10] + x 1 x:]10,MAX] * 2 + 1 x x: default –1
L’exemple définit une fonction f qui vaut :
- 0 si x appartient à [0,1[
- 1 si x appartient à [1,2[
- x+1 si x appartient à [2,10]
- 2*(1+x) si x appartient à ]10,MAX]
- -1 sinon
Le calculateur affiche une erreur s’il existe des intersections entre les intervalles.
Le calculateur affiche une erreur s'il existe des intersections entre les intervalles.
Dans le cas ou la fonction a plusieurs parametres il est possible de faire des tests d'intervalles sur chaque paramètre,et de les combiner:
set g(x,y) = | x:[0,1] 0 x,y:[1,2[]-2,-1] 1 x,y:[2,10][-10,-2] + x y
x,y:]10,MAX][-MAX,-10[ * 2 + y x x,y: default * x y

L'exemple définit une fonction f qui vaut:
- 0 si x appartient à [0,1]
- 1 si x appartient à [1,2[ et y à]-2,-1]
- x+y si x appartient à [2,10] et y à [-10,-2]
- 2*(y+x) si x appartient à ]10,MAX] et y à [-MAX,-1[
- x*y sinon

Notons que dans le cas de fonctions à plusieurs parametres,il est possible de faire les tests d'intervalles sur un nombre quelconques d'arguments : dans l'exemple précédent ,le premier test ne porte que sur le premier argument de la fonction,alors que les autres portent sur les deux.
Les définitions de fonctions peuvent contenir des symboles,qui appartiennent à l'environnement au moment de la définition ou non,et qui peuvent etre des fonctions.Ainsi,une fonction peut en appeler une autre,comme dans l'exemple suivant:
Calc> set f(x) = | x:[0,2[ x x: default + f@1 - x 1 g@1 - x 2
qui doit afficher f(x) =
x:[0,2[ -> x
x: default -> f(x-1)+g(x-2)


Calc> set g(x) = | x:[0,2[ x x: default + g@1 - x 1 f@1 - x 2
qui doit afficher g(x) =
x:[0,2[ -> x
x: default -> g(x-1)+f(x-2)
Calc> eval g 4
g(4) = 3

Il est nécessaire,pour que l'analyse syntaxique puisse etre réalisée correctement,de spécifier l'arité de chacun des symboles utilisés dans les expressions.Par défaut,cette arité est 0: le symbole représente alors une valeur.Dans le cas ou elle n'est pas nulle,elle doit etre précisée après le caractère @ collé au nom du symbole.Ainsi dans l'exemple précédent,les symboles f et g sont des symboles d'arité 1:ce sont des fonctions,qui prennent un argument.

Dominique Lefebvre
Membre Légendaire
Messages: 8005
Enregistré le: 03 Déc 2005, 12:00

par Dominique Lefebvre » 03 Déc 2005, 15:30

Bonjour,
Si tu as toujours besoin d'aide, décrits moi ton projet. En cas exactement puis-je t'aider?
Je fais du C (et du C++) depuis... je ne sais plus.. 15 ans :-)
C'est une appli de calcul, autre?

Anonyme

par Anonyme » 05 Déc 2005, 08:19

Dominique Lefebvre a écrit:Bonjour,
Si tu as toujours besoin d'aide, décrits moi ton projet. En cas exactement puis-je t'aider?
Je fais du C (et du C++) depuis... je ne sais plus.. 15 ans :-)
C'est une appli de calcul, autre?

Salut,
je t'ai exposé mon problème et envoyé le sujet en message privé
Le sujet porte sur la réalisation d'une calculatrice

Anonyme

dames

par Anonyme » 05 Jan 2006, 17:05

j'aurais besoin d'aide pour creer un jeu de dames en C (voir C++).
sachant que nous n'avons pas le droit aux fonctions seul int main() :-(
donc si quelqu'un pouvait m'aider...
merci d'avance

kruso
Membre Naturel
Messages: 12
Enregistré le: 28 Jan 2006, 23:54

par kruso » 29 Jan 2006, 00:35

snake a écrit:j'aurais besoin d'aide pour creer un jeu de dames en C (voir C++).
sachant que nous n'avons pas le droit aux fonctions seul int main() :-(
donc si quelqu'un pouvait m'aider...
merci d'avance


Incroyable! L'antithèse même de ce qu'il faut pour une bonne programmation en C. T'es sûr d'avoir bien compris ce que veux ton prof ? Sinon vas le voir et dis lui que c'est pas comme ça qu'on prend des bons réflexes...

Pour C++ t'en auras pas besoin, puisque t'auras qu'un main :D

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite