Résoudre un "problème" de maths

Résolu
californiadreaming Messages postés 13 Date d'inscription vendredi 4 décembre 2009 Statut Membre Dernière intervention 24 décembre 2009 - 24 déc. 2009 à 10:19
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 24 déc. 2009 à 18:05
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

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
24 déc. 2009 à 12:59
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
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 déc. 2009 à 13:37
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]
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 déc. 2009 à 15:18
... 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
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 déc. 2009 à 16:05
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
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 déc. 2009 à 16:16
... 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
3
californiadreaming Messages postés 13 Date d'inscription vendredi 4 décembre 2009 Statut Membre Dernière intervention 24 décembre 2009
24 déc. 2009 à 15:05
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
0
californiadreaming Messages postés 13 Date d'inscription vendredi 4 décembre 2009 Statut Membre Dernière intervention 24 décembre 2009
24 déc. 2009 à 15:08
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
0
californiadreaming Messages postés 13 Date d'inscription vendredi 4 décembre 2009 Statut Membre Dernière intervention 24 décembre 2009
24 déc. 2009 à 15:32
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
0
californiadreaming Messages postés 13 Date d'inscription vendredi 4 décembre 2009 Statut Membre Dernière intervention 24 décembre 2009
24 déc. 2009 à 17:33
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.
0
californiadreaming Messages postés 13 Date d'inscription vendredi 4 décembre 2009 Statut Membre Dernière intervention 24 décembre 2009
24 déc. 2009 à 17:53
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
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 déc. 2009 à 17:53
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
0
californiadreaming Messages postés 13 Date d'inscription vendredi 4 décembre 2009 Statut Membre Dernière intervention 24 décembre 2009
24 déc. 2009 à 18:02
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 !
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 déc. 2009 à 18:05
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
0
Rejoignez-nous