Résoudre un "problème" de maths

Résolu
Signaler
Messages postés
13
Date d'inscription
vendredi 4 décembre 2009
Statut
Membre
Dernière intervention
24 décembre 2009
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonjour, j'ai un soucis, je ne comprends pas du tout comment résoudre ce problème :

[b]Soit le Tableau T suivant :
1 15 27 28 49
Quelles sont les valeurs affichées par la portion d'algorithme suivante :
Pour i = 2 à 4
Pour j = i+1 à 5
Ecrire i*j
Ecrire T(j-i)
Fin Pour
Fin Pour/b

Merci de votre aide.

Autre problème :
[b]Soit la partie d’algorithme suivante
i = 2
J = i+1
Pour k = i-1 à j+1
Ecrire (k)
Pour L = k+2 à 4
Ecrire (L)
FinPour
FinPour
Quelles sont les valeurs affichées par ordre d'apparition ? /b
J'ai la réponse :
K = 1
L = 3
L = 4
K = 2
L = 4
K = 3
K = 4
Mais je n'ai pas la moindre idée de comment on fait pour parvenir à ces résultats ?

Merci encore de votre aide, et passez de bonnes fêtes !

13 réponses

Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
T'as deux façons de résoudre ces problèmes. La première, coder un programme en VB (ou un autre langage comme le C, par exemple). La deuxième, noter sur une feuille tes données (le tableau et la valeur de chaque paramètre) et effectuer mentalement les opérations. Petite question : l'indice de ton tableau commence à 0 ou à 1 ?
---
VB.NET is good ... VB6 is better
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
salut,

bon du pseudo-code vers le code pour te donner le départ
te reste à comprendre le fonctionnement et l'énoncé lui même :)
(rappel, on est là pour donner un coup de main, pas pour faire vos devoirs)

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim T() As UInteger = {0, 1, 15, 27, 28, 49} '1 15 27 28 49 

        For i As Integer 1 To 5 'Pour i 2 à 4

            For j As Integer i + 1 To 5 'Pour j i+1 à 5

                Console.WriteLine("{0} * {1} = {2}", i, j, i * j) 'Ecrire i * j

                Console.WriteLine("T({0} - {1}) = {2}", j, i, T(j - i)) 'Ecrire T(j - i)

            Next j 'Fin(Pour)

        Next i 'Fin(Pour)
    End Sub


la concordance est sensée être quand i*j = T(j-i)

[hr]
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
... du coup çà se fait de tête, c'est une trace papier, je ne comprends pas bien ce que tu attends de nous dans ce cas
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
un algorithme c'est quoi...
un ensemble d'actions sous certaines conditions

donc que veut dire "Pour i = 2 à 4"
qu'on va faire une action plusieurs fois

la boucle POUR fait que la variable I va être incrémentée en fin de cycle
donc
pour i = 2 à 4
ecrire i
fin pour


on va avoir
2 
3
4



si "la madame" demande à Bart d'écrire 5 fois au tableau "je dois être attentif", le résultat sera bien :
je dois être attentif
je dois être attentif
je dois être attentif
je dois être attentif
je dois être attentif



l'algorithme correspondant serait
pour i = 1 à 5
ecrire "je dois être attentif"
fin pour



I est donc une variable dont la valeur va changer à chaque cycle
et à chaque cycle on fait l'action d'écrire

une boucle dans une boucle :
Pour i = 2 à 4
  Pour j = i+1 à 5
  Ecrire i et j
  Fin Pour
Fin Pour 


le résultat sera
2 et 3
2 et 4
2 et 5
3 et 4
3 et 5
4 et 5


pourquoi =>
en rentre dans la boucle I (le premier pour)
I vaut donc 2
action_2
I vaut 3
action_3
I vaut 4
action_4
sortie (puisque I vaut alors 5, on ne remplit plus les conditions pour continuer)


et l'action est ici une boucle

action_2
Pour j = i+1 à 5 donc de j= 3 à 5, donnera bien
i=2 et j=3
i=2 et j=4
i=2 et j=5



action_3
Pour j = i+1 à 5 donc de j= 4 à 5, donnera bien
i=3 et j=4
i=3 et j=5



action_4
Pour j = i+1 à 5 donc de j= 5 à 5, donnera bien
i=4 et j=5



tu sais maintenant ce que sont i et j



Les valeurs pour i*j sont elles 6 12 20

à chaque cycle (action), tu fais le calcul

quand tu entres dans la boucle,
i vaut 2 et j vaut 3
2*3 = 6 donc oui, "un moment donné" cette vérité est vérifiée
(revoir la trace ci-dessus si nécessaire)


Les valeurs T(j-i) sont elles 12 1 21 ?

exactement pareil

si c'est le concept du tableau qui ne t'est pas familier....
imagine un bloc de plusieurs post-it
tu écris sur chaque feuille une valeur
donc 5 feuilles
feuille (1) = 1 
feuille (2) = 15
feuille (3) = 27
feuille (4) = 28
feuille (5) = 49


tu ne gardes que ces 5 feuilles numérotées de 1 à 5 avec leur valeurs respectives

et dans ta boucle il suffit de vérifier

action_2
i =2 et j= 3, j-i = 1. la feuille 1 = 1
i=2 et j=4, j-i = 2. la feuille 2 = 15
i=2 et j=5, j-i = 3. la feuille 3 = 27



action_3
i =3 et j= 4, j-i = 1. la feuille 1 = 1
i=3 et j=5, j-i = 2. la feuille 2 = 15



action_4
i =4 et j=5, j-i = 1. la feuille 1 = 1


donc la valeur de la feuille 1 (qui est 1) est bien "un moment donné" le résultat de j-i


je ne vois pas comment faire pour mieux détailler
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
... j'ai peut-être mal dit la fin :

Les valeurs T(j-i) sont elles 12 1 21 ?

on a bien un moment donné une des feuilles du bloc de post-it (la première feuille) qui a pour valeur "12 ou 1 ou 21"

j-i = 1
feuille(1) = 1
Messages postés
13
Date d'inscription
vendredi 4 décembre 2009
Statut
Membre
Dernière intervention
24 décembre 2009

Salut, merci de vos réponses, mais mon problème constitue surtout de le faire à la main, et non en VB.
PCPT : ce ne sont pas mes devoirs, juste un sujet d'annale de l'an dernier et comme mes partielles sont à la rentrée, j'aimerais juste comprendre comment faire d'ici là.
Merci encore
Messages postés
13
Date d'inscription
vendredi 4 décembre 2009
Statut
Membre
Dernière intervention
24 décembre 2009

Pour précision en fait mon examen d'informatique est par écrit, et je dois réussir à effectuer à la main le travail d'un programme VB de base, seulement je ne comprends pas du tout la logique du machin....
Merci encore de vos lumières
Messages postés
13
Date d'inscription
vendredi 4 décembre 2009
Statut
Membre
Dernière intervention
24 décembre 2009

J'aimerais simplement que l'on m'explique si possible comment ça se fait, par quels "mécanismes".
Par exemple pour :
" Soit le Tableau T suivant :
1 15 27 28 49
Quelles sont les valeurs affichées par la portion d'algorithme suivante :
Pour i = 2 à 4
Pour j = i+1 à 5
Ecrire i*j
Ecrire T(j-i)
Fin Pour
Fin Pour "

Est ce que i = 2 3 4 ?
j = 3 4 5 ?
Les valeurs pour i*j sont elles 6 12 20 ?
Les valeurs T(j-i) sont elles 12 1 21 ?

Merci encore de votre aide
Messages postés
13
Date d'inscription
vendredi 4 décembre 2009
Statut
Membre
Dernière intervention
24 décembre 2009

Merci beaucoup PCPT tu m'aides bien là !
Si j'ai bien compris :
les valeurs de i et j seront :
2 et 3
2 et 4
2 et 5
3 et 4
3 et 5
4 et 5

T(j-i) donnera :
1
15
27
1
15
1

Donc si je déduis bien, mes valeurs qui apparaitront, par ordre, seront :
6 - 1 - 8 - 15 - 10 - 27 - 12 - 1 - 15 - 15 - 20 - 1

Je te remercie encore de prendre du tout pour m'expliquer.
Messages postés
13
Date d'inscription
vendredi 4 décembre 2009
Statut
Membre
Dernière intervention
24 décembre 2009

Et pour :
i = 2
J = i+1
Pour k = i-1 à j+1
Ecrire (k)
Pour L = k+2 à 4
Ecrire (L)
FinPour
FinPour
Quelles sont les valeurs affichées par ordre d'apparition ?

J'ai essayé, tu pourras me dire si mon raisonnement est bon ?

i=2 j=i+1
k i-1 à J+1> donc k = 1 à 4 (i+1+1)
L = K+2 à 4

k = 1
l = 3
l 4> On a atteint 4, on relance la boucle
k = 2
l 4> On relance la boucle
k = 3
k 5> On n'affichera donc pas ça car 5>4
k = 4
l 6> Même justification : 6>4 donc n'apparaitra pas

Donc les valeurs qui apparaitront seront, dans l'ordre : k=1 L=3 L=4 K=2 L=4 K=3 K=4
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
oui c'est bien çà

i	j	i*j	j-i	T(j-i)   
-------------------------------------- 
2	3	6	1	1
2	4	8	2	15
2	5	10	3	27
3	4	12	1	1
3	5	15	2	15
4	5	20	1	1
Messages postés
13
Date d'inscription
vendredi 4 décembre 2009
Statut
Membre
Dernière intervention
24 décembre 2009

D'accord, merci beaucoup de ton aide qui a été très précieuse !
Je te souhaites un bon réveillon et de bonnes fêtes de fin d'année !
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
PRESQUE

les résultats sont bons mais ton explication me gène un peu, c'est peut-être juste mal dit

l 4> On a atteint 4, on relance la boucle

L vaut 4 au moment où on l'écrit (c'est bien parce qu'on accepte le 4 que l'action se produit)

Pour L = k+2 à 4***
Ecrire (L)
FinPour ***

***à ce moment précis L passe à 5
on remonte en haut de boucle***
et comme seulement là le L est supérieur à 4 (plus exactement n'est pas compris entre 2 et 4 inclus) alors on quitte cette boucle

sinon c'est bon, çà semble compris