Exercices pratiques
1
.
Recherchez les types de données de Java et C++. Rédigez un résumé décrivant leurs différences et leurs similitudes.
2
.
Expliquez les différences entre la compilation pure, l'interprétation pure et les approches hybrides des deux. Indiquez les avantages et les inconvénients de chaque méthode.
3
.
La programmation pour iPhone et la programmation pour Android nécessitent des HLL (langages de haut niveau) différents, axés sur des objectifs spécifiques. Énumérez les HLL utilisés pour chacun et résumez certaines de leurs différences.
4
.
Quels sont certains des critères de sélection parmi les différents HLL ? Décrivez ces critères.
5
.
Décrivez l'objectif d'une API et expliquez comment l'utilisation des API peut conduire à un développement plus rapide, une lisibilité accrue et une complexité réduite.
6
.
Le langage Python utilise de manière controversée une indentation d'un nombre uniforme d'espaces pour construire des blocs de code dans les instructions de contrôle et d'autres structures. Quels sont les arguments et les avantages et inconvénients de l'utilisation de cette technique plutôt que des accolades habituelles ? Pour illustrer votre réponse, veuillez écrire un court extrait de programme qui démontre les avantages et les inconvénients de l'indentation (en Java) par rapport aux accolades (en Python).
7
.
Écrivez une instruction conditionnelle pour déterminer si une variable se trouve dans une limite numérique spécifique, et si c'est le cas, multipliez le nombre par 2, sinon, multipliez le nombre par lui-même.
8
.
Recherchez ce que sont les nombres de Fibonacci. Écrivez un programme récursif qui trouve le Nième nombre de la suite de Fibonacci.
9
.
Interprétez l'extrait de programme suivant. Que retournera la fonction ?
int main()
{
int x = 1;
int y = 7;
if (x == 1 && y > 10)
{
return 0;
}
else if (x < 0 || y == x)
{
return 1;
}
else if (x != 0 && y == x)
{
return 2;
}
else if (x > 0 && (x != y || y > x))
{
return 3;
}
else
{
return 4;
}
}
10
.
Écrivez une boucle do while qui s'exécutera cinq fois.
11
.
L'encapsulation est l'un des trois composants fondamentaux de la programmation orientée objet. Rédigez un résumé qui définit le terme et en explique les avantages. Veuillez fournir un extrait de code qui démontre une mauvaise utilisation de l'encapsulation et l'améliorer pour mettre en évidence les avantages d'une encapsulation appropriée.
12
.
Écrivez un court programme en JavaScript qui demande à l'utilisateur de saisir la base et la hauteur d'un triangle. Calculez l'aire du triangle et affichez-la.
13
.
L'une des caractéristiques clés de la POO est l'héritage. Recherchez l'héritage multiple et comment Java et C++ diffèrent en matière d'héritage multiple. Pourquoi restreindre l'héritage multiple serait-il une bonne idée ?
14
.
Recherchez le mot-clé synchronized en Java. Implémentez une section critique de code en Java en utilisant le mot-clé synchronized.
15
.
Le dorsal d'un compilateur conventionnel diffère de celui d'un compilateur JIT. Énumérez les façons dont ils diffèrent. Leur conception contribue-t-elle à leurs différences ?
16
.
Implémentez un bloc de code en C++ qui n'est « activé » que lorsque nous déboguons l'application à l'aide d'une définition de préprocesseur.
17
.
Exécutez le programme que vous avez écrit ci-dessus dans GDB. Explorez la définition de points d'arrêt et de points de surveillance sur les variables à mesure qu'elles changent. Vous pouvez soit télécharger et installer GDB sur votre ordinateur, soit utiliser le site web gratuit en ligne qui exécute GDB pour vous.