Inscription / Connexion Nouveau Sujet
Niveau Licence-pas de math
Partager :

informatique

Posté par
KNO3
23-09-18 à 19:59

Bonjour,

Voici l'enonce

Ecrire une suite d'instructions pour remplacer les variables x,y, par respectivement x+y, z+x, x+y+z en utilisant au plus une variable auxiliaire

Posté par
Leile
re : informatique 23-09-18 à 20:13

bonjour,

que proposes tu ?

Posté par
carpediem
re : informatique 23-09-18 à 20:19

salut

l'énoncé est-il exact ?

Posté par
Leile
re : informatique 23-09-18 à 20:23

bonjour carpediem,
je crois qu'il manque juste z dans l'énoncé :
"remplacer les variables x,y, z  par respectivement x+y, z+x, x+y+z en utilisant au plus une variable auxiliaire"
à cela près, ça me semble exact..

Posté par
KNO3
re : informatique 23-09-18 à 20:30

on note k=x+y,  i= x+y,  j=z et l = x+y+z

x=x
y=y
z=z
k=x+y
i=x+z
j=z
l=k+j

Posté par
KNO3
re : informatique 23-09-18 à 20:31

en effet il manque le z

Posté par
Leile
re : informatique 23-09-18 à 20:34

ce que tu écris est juste, mais t'oblige a definir i, j et k  : soit 3 variables...  

que penses tu de :

z =  x+ y + z
a = y
x = x+a
y = z-a

Posté par
KNO3
re : informatique 23-09-18 à 20:39

en effet c bcp moins long

Posté par
Leile
re : informatique 23-09-18 à 20:40

et ca n'utilise qu une seule variable auxiliaire...

Posté par
KNO3
re : informatique 23-09-18 à 20:41

merci par ailleurs

Posté par
Leile
re : informatique 23-09-18 à 20:41

Posté par
carpediem
re : informatique 23-09-18 à 22:00

Leile : certes ... mais donc l'énoncé est inexact quand il est incomplet ...

Citation :
remplacer les variables x, y et z par respectivement x + y, z + x, x + y + z
(pour moi)

z = x + y + z   (x + y + z)
y = z - y            (x + z)
x = z - y            (y)
x = ....

ouais difficile de ne pas avoir x ou y dans une variable intermédiaire ...

Posté par
Leile
re : informatique 23-09-18 à 22:03

oui, il faut une variable auxiliaire, c'est ce que dit l'énoncé :
"en utilisant au plus une variable auxiliaire"

je ne vois pas  ce qui te chiffonne..

Posté par
carpediem
re : informatique 23-09-18 à 22:09

le plaisir d'essayer sans variable auxiliaire ... mais est-ce possible ?

Posté par
Leile
re : informatique 23-09-18 à 22:17

pour moi, ça n'est pas possible avec des instructions élémentaires (d'assembleur).

Posté par
carpediem
re : informatique 23-09-18 à 22:25

oui je le pense aussi

Posté par
Leile
re : informatique 23-09-18 à 22:49

bonne nuit

Posté par
carpediem
re : informatique 23-09-18 à 23:00

merci et à toi aussi

Posté par
jsvdb
re : informatique 23-09-18 à 23:53

Bonsoir

Je pense qu'il est possible de réaliser l'opération sans variable auxiliaire :

Etape 1 : x devient x + y

Etape 2 : z devient x + z

Etape 3 : y devient z - y

Exemple x = 1; y = 2 et z = 3. On veut que x = 3; y = 4 et z = 6

Etape 1 : x = 1 devient x = x + y = 1 + 2 = 3 OK

Etape 2 : z = 3 devient z = x + z = 3 + 3 = 6 OK

Etape 3 : y = 2 devient y = z - y = 6 - 2 = 4 OK

Posté par
Leile
re : informatique 24-09-18 à 11:56

très joli !

Posté par
carpediem
re : informatique 24-09-18 à 14:18

il aurait été plus clair de le rédiger tel que je l'ai fait

la suite d'instruction et entre parenthèse la valeur de la variable

au départ :

x = x
y = y
z = z

x = x + y     (x + y)
z = x + z      (x + y + z)
y = z - y       (x + z)


ok ... et même très simple ...

la transformation étant bijective je pensais que ça marchait mais parti trop compliqué (et Leile ne m'a pas aidé ) je ne n'y croyais plus !!

Posté par
jsvdb
re : informatique 24-09-18 à 15:24

carpediem @ 24-09-2018 à 14:18

il aurait été plus clair de le rédiger tel que je l'ai fait
la suite d'instruction et entre parenthèse la valeur de la variable

Oui carpi, ça s'appelle déboguer un programme avec des fenêtres-espion pour montrer les valeurs des ... euh ! oui, enfin bon ! bref !



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !