MAROC ZAIN ACADEMY Learn • Train • Succeed

CNC Informatique — MZA Prépa Excellence.

“`html
MZA PRÉPA EXCELLENCE • CNC INFORMATIQUE

Informatique
CNC

Algorithmique, Python, structures de données, récursivité, complexité, graphes, logique, bases de données et stratégie de résolution : un espace conçu pour raisonner vite et produire des algorithmes corrects.

CNC INFORMATIQUE MASTER MAP

Les blocs essentiels.

01 • Algorithmique

Variables, conditions, boucles, fonctions et invariants.

02 • Python

Listes, tuples, dictionnaires, fonctions et traitement de données.

03 • Complexité

Temps, mémoire, ordre de grandeur et notation O.

04 • Récursivité

Cas de base, appels récursifs, terminaison et coût.

05 • Structures de données

Piles, files, tableaux, listes et ensembles.

06 • Recherche & tri

Recherche dichotomique, insertion, sélection et fusion.

07 • Graphes

Sommets, arêtes, parcours, connexité et plus courts chemins.

08 • Bases de données

Tables, clés, SQL, sélection, jointures et agrégation.

09 • Stratégie CNC

Compréhension du problème, preuve de correction et tests.

MZA CNC CODE ENGINE

Six réflexes avant d’écrire du code.

01ENTRÉES
02SORTIES
03MODÈLE
04ALGORITHME
05COMPLEXITÉ
06TESTS
MÉTHODE

Ne pas coder avant de savoir ce que l’algorithme doit garantir.

Spécification

Quelles sont les données d’entrée et la sortie attendue ?

Invariant

Quelle propriété doit rester vraie pendant l’exécution ?

Terminaison

Pourquoi l’algorithme finit-il ?

Complexité

Combien d’opérations et quelle mémoire supplémentaire ?

CODE LAB

Problèmes type CNC Informatique.

ALGORITHMIQUE

Mission 1 — Maximum d’une liste

Écrire un algorithme qui détermine le maximum d’une liste non vide.

def maximum(L): m = L[0] … return m
  1. compléter l’algorithme ;
  2. identifier un invariant de boucle ;
  3. justifier la correction ;
  4. déterminer la complexité temporelle ;
  5. déterminer la complexité mémoire.
Après avoir traité les k premiers éléments, m doit être le maximum de cette portion de liste.
RECHERCHE

Mission 2 — Recherche dichotomique

On recherche une valeur x dans une liste triée.

  1. décrire l’intervalle de recherche ;
  2. choisir l’indice médian ;
  3. réduire l’intervalle ;
  4. justifier la terminaison ;
  5. déterminer la complexité.
À chaque étape, la taille de la zone de recherche est approximativement divisée par deux.
GRAPHES

Mission 3 — Parcours d’un graphe

On représente un réseau par un graphe non orienté.

  1. choisir une représentation adaptée ;
  2. parcourir les sommets accessibles depuis une source ;
  3. éviter les visites multiples ;
  4. tester la connexité ;
  5. discuter la complexité du parcours.
Utilisez un ensemble de sommets déjà visités et une pile ou une file selon le parcours choisi.
SPEED LAB

10 minutes — 6 réflexes informatiques.

TEMPS RESTANT
10:00

01

Une boucle parcourt n éléments une seule fois : complexité typique ?

02

Une recherche dichotomique divise le problème par deux : ordre de complexité ?

03

Une fonction récursive sans cas de base présente quel risque ?

04

Quel parcours utilise naturellement une file : profondeur ou largeur ?

05

Une clé primaire sert principalement à quoi ?

06

Un algorithme passe tous les exemples donnés : est-il forcément correct ?

COMPLEXITÉ

Reconnaître immédiatement les grands ordres.

O(1)

Temps indépendant de la taille de l’entrée.

O(log n)

Réduction multiplicative du problème, comme la recherche dichotomique.

O(n)

Parcours simple d’une structure de taille n.

O(n²)

Deux boucles imbriquées parcourant n éléments dans le cas typique.

CONCOURS BLANC 01

Gestion intelligente d’un réseau de transport.

Partie A — Données

  1. modéliser les stations et connexions ;
  2. choisir une structure de données ;
  3. charger un réseau simple ;
  4. tester l’existence d’une station ;
  5. calculer son nombre de voisins.

Partie B — Parcours

  1. écrire un parcours en largeur ;
  2. maintenir l’ensemble des sommets visités ;
  3. calculer les distances en nombre d’arêtes ;
  4. tester la connexité ;
  5. analyser la complexité.

Partie C — Optimisation

  1. identifier les chemins possibles ;
  2. définir une fonction de coût ;
  3. proposer un algorithme adapté ;
  4. justifier son choix ;
  5. discuter les limites du modèle.

Partie D — Base de données

  1. définir les tables Station et Liaison ;
  2. choisir les clés ;
  3. écrire une requête de sélection ;
  4. écrire une jointure ;
  5. produire une agrégation par station.
Séparez toujours représentation des données, algorithme, preuve et analyse de complexité.
Traitez d’abord les fonctions élémentaires, puis réutilisez-les pour construire les traitements plus complexes.
ERROR DNA

Les erreurs classiques en concours.

Indice hors limites

Confusion entre longueur n et dernier indice n-1.

Cas vide oublié

Un algorithme échoue sur une entrée particulière non testée.

Récursion infinie

Cas de base absent ou problème qui ne diminue pas.

Mutation involontaire

Une structure passée en argument est modifiée sans que cela soit voulu.

Complexité sous-estimée

Une opération coûteuse est cachée dans une boucle.

Tests insuffisants

Un exemple réussi ne constitue pas une preuve générale.

MZA CODE CHECK

Avant de valider un algorithme.

AENTRÉE
BCAS LIMITES
CINVARIANT
DTERMINAISON
ECOMPLEXITÉ
FTESTS
DIAGNOSTIC CNC INFORMATIQUE

Testez vos réflexes algorithmiques.

Le score s’affiche sans correction détaillée.

1. Une boucle simple parcourant n éléments est typiquement :
2. La recherche dichotomique nécessite notamment :
3. Une fonction récursive doit posséder :
4. Le parcours en largeur utilise naturellement :
5. Une clé primaire :
6. Un programme correct sur trois exemples :

CNC Informatique — Mode Concours

L’objectif est de transformer un problème en données, algorithme, preuve, complexité et tests, avec une rédaction suffisamment claire pour être évaluée rapidement.

“`