Bonjour, j'ai un petit problème avec un algorithme que je dois rendre.
L'algorithme:
Écrire un algorithme qui demande les coordonnées de 2 points et qui affiche l'équation de la droite joignant ces 2 points.
Je suis pas très doués en mathématiques
Merci d'avance
Bonjour,
avec Algobox , il faut déclarer des variables :
x_A
y_A
x_B
y_B
a
b
Début :
Demander les valeurs de x_A;y_A;x_B;y_B
Début algo (rédigé en langage courant):
Si x_A est égal à x_B alors
Afficher "La droite a pour équation x="
Afficher xA
Si y_A est égal à y_B alors
Afficher "La droite a pour équation y="
Afficher yA
Si x_A différent de x_B et y_A différent de y_B alors
a prend la valeur (y_B-y_A)/(x_B-x_A)
b prend la valeur y_A-a*x_A
Afficher "La droite (AB) a pour équation y="
Afficher a
Afficher"x+"
Afficher b
A vérifier avec Algobox !!
Voilà le programme fait avec Algobox et qui marche :
1 VARIABLES
2 x_A EST_DU_TYPE NOMBRE
3 y_A EST_DU_TYPE NOMBRE
4 x_B EST_DU_TYPE NOMBRE
5 y_B EST_DU_TYPE NOMBRE
6 a EST_DU_TYPE NOMBRE
7 b EST_DU_TYPE NOMBRE
8 DEBUT_ALGORITHME
9 LIRE x_A
10 LIRE y_A
11 LIRE x_B
12 LIRE y_B
13 SI (x_A==x_B) ALORS
14 DEBUT_SI
15 AFFICHER "La droite a pour équa x="
16 AFFICHER x_A
17 FIN_SI
18 SI (y_A==y_B) ALORS
19 DEBUT_SI
20 AFFICHER "La droite a pour équa y="
21 AFFICHER y_A
22 FIN_SI
23 SI (x_A!=x_B ET y_A!=y_B) ALORS
24 DEBUT_SI
25 a PREND_LA_VALEUR (y_A-y_B)/(x_A-x_B)
26 b PREND_LA_VALEUR y_A-a*x_A
27 AFFICHER "La droite a pour équa y="
28 AFFICHER a
29 AFFICHER "x+"
30 AFFICHER b
31 FIN_SI
32 FIN_ALGORITHME
J'explique :
ligne 13 et 18 : le double signe " = = " fait comparer 2 valeurs.
ligne 23 : "!= " veut dire "différent"
ligne 25 : on calcule le coefficient directeur de la droite.
ligne 26 : on calcule le "b" de : y=ax+b car cette droite passe par le point (x_A;y_A) donc on a :
y_A=a*x_A+b qui donne : b=y_A-a*x_A
Désolé de revenir à la charge mais je ne comprend pas trop la ligne 13 et 18 car je n'arrive pas à visualiser le signe qui compare 2 valeurs ( je connais ou
bien sûr )
Pour te répondre , je te fais un copier-coller du "manuel" d'utilisation d'Algobox :
Bonjour,
ça dépend ce qu'on te demande !
on te demande un algorithme apparemment, pas un programme en Algobox
bien faire la distinction entre les deux
un algorithme est la description plus ou moins codifiée (dite "en langage naturel") d'une méthode de calcul
un programme c'est la réalisation de cet algorithme sur une machine donnée avec une syntaxe de cette machine là
le même algorithme se traduira par des programmes différents sur Algobox, en Java, sur calculette TI, sur calculette Casio, etc etc
chacun ayant sa propre syntaxe.
en "langage naturel" (mathématiques) le contexte fait parfaitement la différence entre
si A = B (il s'agit de tester si A est égal ou pas à B)
et d'autres utilisations du signe "=" pour calculer par exemple x = -b/4
les programmes c'est abominablement bête, il s'agit d'expliquer ton algorithme à une machine, c'est à dire à un idiot.
contexte connait pas.
donc il faut lui écrire "= = " (sans espace entre les deux) pour dire "tester la condition"
parce que dans sa syntaxe il y a un autre truc qui est "=" (un seul signe =) et qui veut dire tout à fait autre chose, alors en tant que parfait idiot, cette machine si on lui écrit pareil, elle ne va rien y comprendre du tout.
c'est pour ça qu'il y a deux "signes" particuliers
le "==" qui sert à tester des conditions
le "=" qui sert à autre chose (normallement tu ne le rencontreras pas dans l'utilisation courante de Algobox celui là, il est "planqué" dans la syntaxe "PREND_LA_VALEUR")
sur calculette tu vas trouver aussi deux signes différents
le A <-- B (qui correspond à "l'affectation", résultat d'un calcul)
le A = B qui correspond au "==" de Algobox et qui s'utilise dans des tests (si, if, while etc)
En Pascal tu vas trouver
:= pour le "prend la valeur"
et un simple = pour les tests
autant de machines, autant de syntaxes
donc algorithme en langage naturel :
si A = B
si A B (écrit comme ça avec ce symbole là)
si A B (idem)
B = C+4 (pour B prend la valeur du calcul C+4) l'être humain fait parfaitement la différence avec l'autre "=" dans des tests !
ou
B <-- C+4
ou C+4 B
programme pour Algobox :
SI (A == B) ALORS
DEBUT SI
....
(filandreux, mais on s'adresse à une machine idiote)
SI (A >= B) ALORS
SI (A != B) ALORS
etc.
en respectant à la virgule près et la "casse" (majuscule/minuscule)
donc sur ta feuille, si on te demande un algorithme, c'est "en langage naturel" en l'absence d'autres précisions :
si A = B et X Y
(langage abstrait dit "naturel")
si on te demande un programme pour Algobox (appelé souvent à tort, ce qui entretient la confusion, "algorithme pour Algobox")
SI (A==B ET X!=Y) ALORS etc
(ce qu'il y a sur ta feuille doit être alors "opérationnel" simplement en le recopiant tel quel dans Algobox, caractère par caractère)
Bonjour je dois faire un programme pour demain et je n'y arrive pas.
L'énoncé: Écrire un algorithme qui demande les coordonnées de 2 points et qui affiche la droite d'équation de la droite joignant ces 2 points. Pour l'algorithme pas trop de soucis mais le professeur a rajouté le programme de cette algorithme et là je BUG!
Je vous remercie d'avance !
*** message déplacé ***
Bonjour,
va voir cette page avec un programme sur Algobox : Problème avec un algorithme
*** message déplacé ***
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :