Bonjour, j'aurais quelques questions à vous poser à propos d'un concours que je dois passer.
D'abord, je voudrais savoir si quelqu'un peut m'expliquer ce qu'est un type ordinal ?
Puis, je sais que ça se rapporte à des type de données telle que chaîne de caractères, réel, énuméré, enregistrement mais lequel est du type ordinal ?
Question à propos des compilateurs : lesquelles sont vrais ?
a) Un compilateur permet de réduire la taille d'un programme et ainsi d'optimiser la place sur le disque dur
b) Un compilateur peut permettre de produire des programmes pour un ordinateur différent de celui sur lequel il s'éxécute
c) Le résultat issu d'un compilateur n'est en général pas directement exécutable
a mon avis, est vrai seulement b)
en fait, je me demande si c) n'est pas aussi vrai, car je sais que certains compilateur comme celui de visual basic, génère une entension en .exe après compilation. En cherchant sur internet, j'ai vu que cela s'appelait l'éditions de liens quand un .exe est généré, donc que cela ne ferait pas partie du terme compilation.
Donc au final, je ne sais pas si la véritable définition d'un compilateur n'est pas seulement de produire un programme en langage machine ou encore assembleur.
Soit un entier a codé sur 32 bits en représentation non signée ; on suppose que l'on éxecute le programme suivant :
a <- 1
for i = 1 to 16 do
a <- a*4
done
print a
Que va afficher ce programme ?
a) toujours 0, quel que soit le langage
b) toujours 1, quel que soit le langage
c) toujours 4249967296, quel que soit le langage
d) ce programme va générer un dépassement de capacité pour a qui sera ou ne sera pas détecté en fonction du langage utilisé
e) aucune des 4 réponses proposés
A mon avis, ce sera c) car 2^32 = 4249967296, donc a pourra prendre les valeurs comprises entre 0 et 2^32 - 1 soit 4249967295, mais je me demande si quand il y a dépassement, on ne recommence pas à compter, ce qui donnera 0 si on ajoute 4249967295 à 1 si a est codé sur 32 bits en non signé, cela est possible ?
Sur une machine disposant d'entiers signés et d'un processeur 32 bits, que va donner la multiplication de 123456789*123456789 :
a) 15241578750190521
b) -1757895751
c) 2537071545
d) cela va générer une erreur
e) cela dépend du langage employé pour effectuer l'opération
A mon avis, cela ne dépend pas du type de processeur car sous un intel 32 bits et avec la calculatrice windows, on obtient a) alors je dirais réponse a) est je raison ?
Merci beaucoup
PS : désolé, j'ai posté 2 fois
Partager