Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices pour débutants en C (suite)

Venez vous entrainer!

    22 juin 2011 à 0:52:18

    Ce n'est pas le bon endroit pour présenter ce genre de problème. Normalement tu devrais faire un nouvaeu topic.
    • Partager sur Facebook
    • Partager sur Twitter
    🍊 - Étudiant - Codeur en C | Zeste de Savoir apprenez avec une communauté | Articles  - ♡ Copying is an act of love.
    Anonyme
      6 juillet 2011 à 2:25:02

      EDIT : je remettrais le code quand je l'aurais améliorer.
      • Partager sur Facebook
      • Partager sur Twitter
        20 juillet 2011 à 13:25:51

        Citation : greg95

        si paraze j'avais compris pour le topic, je repondais à sa question sur les exo :)



        Bon, on arrête la discussion ici, je ne parlais pas des exercices du tutoriel, mais des exercices de ce topic. Ou alors j'ai sauté un épisode. On est à la limite du HS, merci. :)

        Citation

        Edit : Lucas, il y a zRom : http://www.siteduzero.com/forum-83-660136-p1-zrom.html ! Au fait, j'aimerai bien qu'on commente mon code. :-°



        Merci. :)
        • Partager sur Facebook
        • Partager sur Twitter
        Staff désormais retraité.
          29 juillet 2011 à 13:45:12

          Salut,

          Dans le but d'augmenter la visibilité des règles et de la FAQ, j'ai enlevé ce sujet des post-its.

          Cependant, il y a un (gros !) lien qui permet de le retrouver dans le post-it de bienvenue pour les nouveaux membres. Je vous conseille d'ajouter ce post à vos bookmarks. Je pense qu'il sera suffisamment vivant pour rester une grande partie du temps en première page. :)

          Bonne continuation !
          GuilOooo
          • Partager sur Facebook
          • Partager sur Twitter
          J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
            29 juillet 2011 à 17:36:04

            C'est dommage de ne plus l avoir en post it il finira a mon humble avis aux oubliettes. Même si pas beaucoup de monde poste leur solution les débutants comme moi jette un œil...... Alors les nouveaux?
            • Partager sur Facebook
            • Partager sur Twitter
              29 juillet 2011 à 21:04:59

              Salut,

              Personnellement, je trouve aussi qu'il serait mieux que ce sujet reste en post-it, malgré le lien depuis le post-it de bienvenue. ;)
              • Partager sur Facebook
              • Partager sur Twitter
              Bla bla bla
                29 juillet 2011 à 22:24:54

                Je pense qu'un topic fermé où seul les modos (et ceux ayant un grade plus élevé) posterai dedans pour mettre les exos (à peut près comme dans la FAC C = que l'info' importante, pas de messages inutiles) aurait bien sa place dans les post-it.
                Et ce topic servirai d'échange, de lieu de discutions autour des exos présentés.

                Mais bon, ce n'est qu'une idée. ^^
                • Partager sur Facebook
                • Partager sur Twitter
                  30 juillet 2011 à 14:32:15

                  Ne vous inquiétez pas pour autant. J'ai bien l'intention de maintenir ce topic en vie et régulièrement en première page.

                  Je bûche actuellement pour écrire une série de 52 exercices : 26 en SDL et 26 en console. C'est ambitieux, je verrai jusqu'où je tiendrai. Une fois que je les aurai, je serai donc en mesure d'envoyer un exercice par semaine aux organisateurs de ce topic.

                  Par contre, je ne compte pas fournir de solutions. Il y aura donc toujours une discussion à avoir. :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                  J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
                    30 juillet 2011 à 14:35:16

                    Wahou ! Bonne idée !

                    Tu es un modo SUPER ACTIF chapeau .
                    • Partager sur Facebook
                    • Partager sur Twitter
                      30 juillet 2011 à 14:36:00

                      Beau travail ces derniers jours bravo. Et chapeau si tu arrives à faire tout ces exos.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Titi04 anciennement Chriskas
                      Anonyme
                        30 juillet 2011 à 14:38:41

                        Bonne idée, surtout des exos en SDL c'est rare.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          30 juillet 2011 à 14:44:49

                          Il y a eu un topic exo SDL il y a quelques années... avec 3 exos (assez marrant mais extrèmement simple et rapide à réaliser).
                          J'espère vraiment que les exos SDL ne seront pas tous aussi simple que ceux présentés il y a un bon bout de temps. :)
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Anonyme
                            30 juillet 2011 à 14:48:10

                            Si tu veux t'amuser en SDL, tu n'a qu'à faire un éditeur de texte. ^^
                            • Partager sur Facebook
                            • Partager sur Twitter
                              30 juillet 2011 à 14:50:30

                              Pourquoi pas un logiciel de traitement de texte : toujours plus haut, toujours plus fort !

                              Sinon, bonne chance GuilOooo. ;)
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Anonyme
                                30 juillet 2011 à 14:52:12

                                Citation : paraze

                                Pourquoi pas un logiciel de traitement de texte : toujours plus haut, toujours plus fort !

                                Sinon, bonne chance GuilOooo. ;)



                                C'est réalisable, mais en SDL, c'est pas le plus pratique.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Anonyme
                                  30 juillet 2011 à 14:54:27

                                  Tu comptes faire des exercices de quel genre (je ne parle pas de la SDL) ? Plutôt orientés algo ou "langage" (genre les trucs de Mateo), voire un peu type prog' système ?
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    30 juillet 2011 à 14:58:56

                                    Moi personnelement, je préférerai qu'il fasse un peu des trois, avec un petit plus niveau algo'. :)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      30 juillet 2011 à 15:18:28

                                      Je vais d'équilibrer entre « points du langage » et « algo ». Par contre, je vais éviter la programmation système, car ça risque de poser problèmes entre linuxiens et windowsiens. Enfin, pour la difficulté, je vise des trucs assez ouverts, avec un exo de base costaud, mais abordable, et des améliorations possibles « vers l'infiniiiii » comme tu dis.

                                      Si vous avez des idées d'exos, n'hésitez surtout pas à les mentionner ici ou à me contacter. Votre aide ne sera sans doute pas de trop. :-°

                                      Le premier en date est de faire un SGBD ultra-minimaliste, qui stocke les données dans des fichiers textes. On doit pouvoir faire SELECT et INSERT INTO, avec des conditions WHERE de la forme {colonne}{opérateur}{colonne} et une syntaxe plus rigide que SQL.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
                                        30 juillet 2011 à 15:19:45

                                        Oula ça promet ...
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Titi04 anciennement Chriskas
                                        Anonyme
                                          30 juillet 2011 à 15:44:53

                                          J'attends impatiemment, ça a l'air très bien ce que tu fais :)

                                          Image utilisateur
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            30 juillet 2011 à 16:13:14

                                            Très intéressant :)
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            🍊 - Étudiant - Codeur en C | Zeste de Savoir apprenez avec une communauté | Articles  - ♡ Copying is an act of love.
                                              30 juillet 2011 à 16:38:40

                                              Citation : GuilOooo


                                              Je bûche actuellement pour écrire une série de 52 exercices : 26 en SDL et 26 en console. C'est ambitieux, je verrai jusqu'où je tiendrai. Une fois que je les aurai, je serai donc en mesure d'envoyer un exercice par semaine aux organisateurs de ce topic.



                                              Chapeau pour l'initiative ;)
                                              Et après les 52 exercices, il y aura quoi? :-°

                                              Citation : GuilOooo


                                              Si vous avez des idées d'exos, n'hésitez surtout pas à les mentionner ici ou à me contacter. Votre aide ne sera sans doute pas de trop. :-°



                                              J'avais pensé il y a pas longtemps à un exercice consistant à reproduire un éditeur de texte en ligne de commande du type ed. L'idée est de faire travailler les listes chaînées qui sont la structure principale de l'éditeur (chaque noeud représente une ligne de texte) ainsi que les fichiers. Histoire de ne pas faire trop compliqué, on se contenterait d'implémenter les commandes de bases: ajout/suppression de texte et enregistrement.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                30 juillet 2011 à 17:24:03

                                                Salut,

                                                Je viens de jeter un coup d'oeil aux idées d'exercices de GuilOooo et ça a l'air plutôt difficile ! ;)
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Bla bla bla
                                                  30 juillet 2011 à 17:24:34

                                                  Citation : Taurre

                                                  J'avais pensé il y a pas longtemps à un exercice consistant à reproduire un éditeur de texte en ligne de commande du type ed. L'idée est de faire travailler les listes chaînées qui sont la structure principale de l'éditeur (chaque noeud représente une ligne de texte) ainsi que les fichiers. Histoire de ne pas faire trop compliqué, on se contenterait d'implémenter les commandes de bases: ajout/suppression de texte et enregistrement.



                                                  Super, je note ça. J'ai tendance à faire des exercices trop difficiles, mais celui-ci a l'air bien. Merci ! :)

                                                  EDIT : J'essaie de mettre un peu la liste en forme avant de vous la faire parvenir.

                                                  EDIT 2 : tenez. Je ne sais absolument pas dans quelle mesure ces exercices sont réalisables, adaptés au public du SdZ, ou quoi. Les énoncés seront naturellement très détaillés, afin de guider les gens pour les exercices les plus difficiles.


                                                  Console pure, aspect « algorithmiques »


                                                  Pour tous les algorithmes, une petite mise en situation sera écrite.

                                                  Facile


                                                  Les exercices d'algo sont faciles lorsqu'il suffit d'implémenter un algorithme bien connu, trouvable sur wikipédia, pour les résoudre.
                                                  Solver de sudoku
                                                  • En console. Brute-force envisageable.

                                                  Solver de labyrinthe
                                                  • Algorithme de Dijkstra ou A*.

                                                  Solveur de 2-SAT
                                                  • Brute-force ou méthode classique (on ne demande pas un algo polynomial),
                                                  • Mise en situation : un groupe de gens vont s'installer dans la nouvelle rue du village. Certains ne veulent pas être du même côté de la rue que d'autres...

                                                  Solveur du problème du voyageur de commerce
                                                  • Petites instances, algo factoriel envisageable,
                                                  • Mise en situation : le voyageur de commerce, pardi.

                                                  Recherche d'une sous-chaîne dans une chaîne
                                                  • Algo rapide, probabiliste (Knuth-Morris-Prat ?),
                                                  • Mise en situation : cherche un gène dans une séquence ADN.

                                                  Problème du flot maximal
                                                  • N'importe quel algo,
                                                  • Mise en situation : on veut transférer des données d'un point A à un point B sur le réseau, comment maximiser le débit ?

                                                  Filtre de bloom
                                                  • Pour des chaînes de caractères,
                                                  • Les fonctions de hachage sont fournies, sauf quelques unes,
                                                  • Mise en situation : vérificateur orthographique.

                                                  Problème du trajet à l'aéroport
                                                  • Voir le livre « Learn yourself some Haskell »

                                                  Projet complet


                                                  Ceci vise à faire implémenter un algorithme en trois étapes. Il faudra parfois chercher des points d'algorithmique par soi-même.
                                                  Analyseur d'expressions mathématiques simples
                                                  • Analyseur qui parse une expression comprenant des nombres, + \- / * ^ et « x », une variable,
                                                  • La priorité des opérateurs doit être la bonne,
                                                  • Pour aller plus loin : gérer les parenthèses,
                                                  • Calcule ensuite le résultat (si on donne une valeur pour la variable x),
                                                  • Il est cependant important (pour d'autres exercices) de produire un arbre de syntaxe.

                                                  Structure pour gérer les nombres arbitrairement grands et précis
                                                  • Code une structure de données pour gérer tous les nombres, quelque soit le nombre de chiffres,
                                                  • Gère les opérations + \- / * et ^,
                                                  • Permet de convertir une chaîne en nombre et un nombre en chaîne,
                                                  • Utilise l'analyseur précédent pour faire des calculs précis.

                                                  Évaluateur de polynômes
                                                  • Grâce aux deux entrées précédentes, implémenter l'algorithme randomisé disant si un polynôme est nul ou non.

                                                  Simulateur de canon
                                                  • L'utilisateur entre l'angle avec le sol formé par le canon, l'accelération initiale, et la masse du boulet,
                                                  • le programme répond à combien de mètres le boulet est tombé.

                                                  Analyseur d'unités
                                                  • Modifier l'analyseur d'expressions pour qu'il comprenne les valeurs avec unités, du genre 30km,
                                                  • Faire un programme qui donne l'unité totale d'une expression, si elle existe.

                                                  Il manque une idée dans cette section.

                                                  Console pure, applications pratiques


                                                  Facile


                                                  Les exos « facile » sont accessibles à ceux en cours de lecture de la partie 2 du cours, pour pratiquer. Les notions allant au-delà du cours seront rappelées.
                                                  Chronomètre
                                                  • L'utilisateur appuie sur « entrée » pour démarrer le chrono,
                                                  • Il appuie à nouveau pour arrêter,
                                                  • Grâce à time.h, on affiche le temps écoulé le plus précisément posssible,
                                                  • Pour aller plus loin : gérer les tours, afficher le chrono en temps réel, etc.

                                                  Les fonctions de time.h seront introduites dans l'énoncé.
                                                  Un test de vitesse
                                                  • Demande à l'utilisateur de recopier une phrase dans la console,
                                                  • Mesure le temps mis pour recopier,
                                                  • Calcule des statistiques sur la vitesse de frappe,
                                                  • les phrases de test sont stockées dans un fichier.

                                                  Un crypteur de fichier
                                                  • Lit l'entrée standard, écrit une version cryptée sur la sortie standard,
                                                  • Plusieurs algos possibles : Rot13 pour les débutants, DES pour les cadors,
                                                  • Possibilité d'écrire dans un fichier.

                                                  Un logiciel d'envoi de mails (protocole SMTP)
                                                  • Demande un expéditeur, un destinataire, un objet et un contenu dans la console,
                                                  • envoie la requête à la machine indiquée après le '@' dans l'adresse de l'expéditeur (pas de MX ni rien).

                                                  Cet exo est facile car la partie « réseau » sera guidée. On pourra même imaginer simplement écrire la bonne requête sur la sortie standard.

                                                  Moyen


                                                  Les exercices « moyen » sont destinés à ceux qui ont fini la partie 2 du cours, et qui cherchent à pratiquer pour progresser et aller plus loin.
                                                  Calculateur de masse molaire
                                                  • Étant donnée la formule brute d'une molécule et un fichier comprenant la masse molaire de chaque élément, calcule la masse molaire de la molécule.

                                                  Visualisateur de fichier maildir
                                                  • Montre un mail (encodés comme dans un mbox ou un mdir) sous une forme jolie,
                                                  • Vire les en-têtes et décode les séquences d'échappement, style =E42,
                                                  • Pour aller plus loin : parse certaines en-têtes (expéditeur, objet, etc).

                                                  (Dé)codeur de Base64
                                                  • Lit l'entrée standard,
                                                  • écrit l'équivalent (dé)codé en base64 sur la sortie standard.

                                                  La commande Unix « wc »
                                                  • Lit l'entrée standard.
                                                  • Compte le nombre de caractères, de mots & de lignes qui passent.
                                                  • Affiche le résultat sur la sortie standard.

                                                  Un mini-cowsay
                                                  • Lit un fichier texte dans lequel un dessin en ascii-art est stocké,
                                                  • Demande à l'utilisateur de taper une phrase dans la console,
                                                  • Affiche la phrase, dans une bulle, au dessus du dessin en ascii-art,
                                                  • Pour aller plus loin : centrer le dessin par rapport à la bulle.

                                                  Commande Unix « units »
                                                  • Demande à l'utilisateur de rentrer un nombre et une unité,
                                                  • Demande ensuite de rentrer une autre unité,
                                                  • Donne la valeur dans la nouvelle unité si pertinent,
                                                  • Les échelles de conversion sont stockées dans un fichier,
                                                  • Échelles affines seulement (ax+b).

                                                  Difficile


                                                  Les exercices difficiles sont destinés à ceux qui veulent aller plus vraiment loin. Ils ressemblent plus à des projets complets qu'à de petits exercices.
                                                  Recoder printf et scanf
                                                  • Niveau basique : utilisation d'un tableau de pointeurs, le format est du genre "%d", "%f" ou "%s",
                                                  • Amélioration : gérer les formatteurs multiples, séparés par une chaîne,
                                                  • Amélioration : faire une fonction variadric,

                                                  Recoder l'éditeur ed
                                                  • Seulement les commandes ouvrir un fichier, enregistrer, ajouter/supprimer une ligne.

                                                  Un mini SGBD
                                                  • Stockage dans des fichiers texte, un fichier/table, une ligne/entrée
                                                  • Un seul type de données : chaîne (suite de caractères alphanumériques, pas de ponctuation)
                                                  • Requêtes SELECT {col} FROM {table} WHERE {col}{opérateur}{col}, INSERT INTO {table} VALUES {val},{val},... et ALTER TABLE {table} SET {col}={val} WHERE {col}{opérateur}{col},
                                                  • Syntaxe ultra-simplifiée et très rigide par rapport à SQL,
                                                  • Requêtes de 200 caractères max (pour simplifier les entrées/sorties).

                                                  Un mini proxy HTTP
                                                  • Ignore tous les en-têtes qui ne sont pas indispensables,
                                                  • Requête réponse ultra-simplifiée,
                                                  • Pas de requêtes de plus de 2000 caractères.

                                                  Un nano-serveur DNS
                                                  • Correspondances IP <-> nom stockées dans un fichier
                                                  • Aucune interrogation d'un autre serveur.

                                                  Testeur de Regex
                                                  • Lit une regex et une phrase sur l'entrée standard,
                                                  • Teste si la phrase match la regex,
                                                  • Syntaxe regex ultra-simplifiée.

                                                  SDL


                                                  Facile


                                                  Les exercices faciles permettent de pratiquer les différentes fonctions de base de la SDL, de SDL_Image et SDL_TTF. Il n'y a pas - ou très peu - de gestion des événements à faire.
                                                  Une jolie animation
                                                  • L'animation est encore à décider,
                                                  • J'imaginais un truc dans le style « visualisation spectrale » ou « écran de veille »,
                                                  • S'inspirer du post de Knarf2 sur CodArt ?

                                                  Un quizz graphique
                                                  • Les questions & réponses sont lues dans un fichier,
                                                  • On affiche la question et les réponses,
                                                  • l'utilisateur doit cliquer sur la bonne réponse le plus vite possible,
                                                  • attribution de points en fonction de la rapidité,
                                                  • peut être entièrement statique (facile) ou animé (moyen) avec un chrono, etc.

                                                  Visualisateur de polices
                                                  • Montre tous les caractères affichables avec une police passée en argument de ligne de commande.

                                                  Montre à aïguilles
                                                  • Affiche l'heure système sur une montre à aiguilles,
                                                  • Utiliser des images avec transparence + SDL_Gfx pour la rotation
                                                  • Ou bien tracer les aiguilles pixel par pixel.

                                                  Planisphère
                                                  • Afficher un planisphère (fourni en .png),
                                                  • Indiquer dessus, en fonction de l'heure système, les zones du globe où il fait jour,
                                                  • Idée : éclaircir la zone de jour et assombrir la zone de nuit (travail pixe/pixel),
                                                  • Se baser sur l'heure du système.

                                                  Jeu de l'assome-rat (wak-a-rat)
                                                  • Afficher un (ou plusieurs) rats aléatoirement sur l'écran,
                                                  • Le joueur doit cliquer dessus le plus vite possible,
                                                  • Plus il est rapide, plus il gagne de points.

                                                  Jeu 1... 2... 3... Soleil !
                                                  • Le joueur clique sur la case de départ (à gauche de l'écran) pour commencer,
                                                  • Il doit alors cliquer sur la case de fin (à droite de l'écran) pour gagner,
                                                  • Mais interdiction de bouger la souris quand le loup se retourne !
                                                  • Pour aller plus loin : mode gaucher (inverser gauche/droite dans le jeu au choix).

                                                  Balle rebondissantes
                                                  • Afficher des balles rebondissantes, entre elles et sur le bord de l'écran,
                                                  • Coordonnées et impulsions initiales aléatoires.

                                                  Moyen


                                                  Jeu M. Patate
                                                  • On peut choisir un fond parmi plusieurs,
                                                  • Ensuite, le fond est dessiné, et l'utilisateur peut placer des éléments dessus (œil, oreille, nez),
                                                  • Idée : faire de ce programme un éditeur de smileys.

                                                  Équivalent de Paint
                                                  • Outils pour tracer une ligne à main levée, tracer une ligne droite, gommer,
                                                  • Sélection parmi une liste de couleurs prédéfinie,
                                                  • Pour aller plus loin : outils avancés : certes, spray, etc.

                                                  Jeu de hasard (black-jack)
                                                  • Un jeu de black-jack simple en SDL.
                                                  • Possibilité de simplifier les règles ou enlever les animations au besoin.

                                                  Afficheur de dessins
                                                  • Lit une description géométrique dans un fichier : « carré(0,0,14,28); cercle(0,4,5); ... »
                                                  • Affiche la figure correspondante dans une fenêtre SDL,
                                                  • Pour aller plus loin : gérer des formes plus compliquées,
                                                  • Encore plus loin : faire un éditeur, en lien avec le paint.

                                                  Afficheur d'avatars du SdZ
                                                  • L'utilisateur entre un pseudo,
                                                  • Le programme va chercher l'avatar du membre avec une requête HTTP,
                                                  • Puis il affiche le résultat,
                                                  • Utilisation de fichiers temporaires (tmpname etc),
                                                  • Utilisation éventuelle d'une bibliothèque pour la requête HTTP.

                                                  Affichage d'une fractale
                                                  • On a l'embarras du choix.

                                                  Hash visuel
                                                  • Faire programmer une fonction de hachage simple, dont le résultat soit une image et non une suite de bits.
                                                  • Permettre à l'utilisateur de hacher un fichier et d'afficher le résultat à l'écran.
                                                  • Éventuellement utiliser une vraie fonction de hachage, puis convertir le résultat en dessins.

                                                  Jeu de la vie
                                                  • Touche espace pour lancer/arrêter la simulation,
                                                  • Clic sur une case la [dés]-active,
                                                  • Optionnel : pouvoir changer la vitesse de simulation (avec '+' et '-').

                                                  Difficile


                                                  Raycaster
                                                  • Lit un plan stocké dans une image monochrome (noir=mur, blanc=passage),
                                                  • Permettre à l'utilisateur de se ballader dans le monde ainsi défini, en 3D, avec une hauteur de mur constante,
                                                  • Rendu effectué grâce à la technique du Raycasting (Doom, Duke Nukem 3D).

                                                  NB : à ne pas confondre avec le raytracing.
                                                  Émulateur de terminal
                                                  • Permet d'entrer une commande (SDL_TTF),
                                                  • Exécute la commande grâce à system(),
                                                  • Affiche le résultat de la commande dans la fenêtre,
                                                  • Gère le scrolling,
                                                  • Passer par une matrice de caractères avant le rendu.

                                                  Interface pour le solveur de labyrinthes
                                                  • Permet à l'utilisateur de dessiner un labyrinthe 2D (tiles taille constante),
                                                  • Appelle le solveur déjà codé pour trouver une solution.

                                                  Plotter
                                                  • Trace la courbe d'une fonction dans une fenêtre SDL,
                                                  • Possibilité de stocker les valeurs prises par la fonction dans un fichier,
                                                  • En utilisant l'analyseur d'expressions, permettre de plot n'importe quel polynôme.

                                                  Il manque six idées pour la SDL
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
                                                    31 juillet 2011 à 11:00:10

                                                    Peut-être que mon post ne sert à rien et qu'il va être supprimé, mais je ne peux m'empêcher de fournir les remerciements les plus sincères à GuillOoo. Toutes ces idées d'exercices, ça a l'air génial ! Franchement, chapeau bas, parce que sinon le topic tombait en ruine...

                                                    Édit : juste une petite critique à propos de l'émulation de terminal. D'une part, on entre plus ou moins dans la prog système, ce qui engrange conflits entre linuxiens et windowsiens... D'autre part, tu parles de system. Pour Windows , ok, il suffit juste de s'en sortir avec de la compilation conditionnelle. Mais pour Linux, system est une fonction qui comporte de grosses failles de sécurité..
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    Staff désormais retraité.
                                                      31 juillet 2011 à 11:15:21

                                                      Ce ne sont que des idées en l'air. Je pense qu'au moins la moitié des exercices que tu vois là seront irréalisables, trop compliqués, pas assez intéressants...

                                                      Quant à system, le but n'est pas de faire un programme ultra-sécurisé. Je vais au plus simple -- on pourrait faire de la compilation conditionnelle, utiliser fork & exec, mais ça deviendrait franchement lourd. L'essentiel sera de bien expliquer dans l'énoncé qu'il s'agit d'un jouet, et pas d'un programme qu'on utiliserait dans la vraie vie.
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
                                                        31 juillet 2011 à 11:25:52

                                                        Personnellement, je trouve que les idées sont intéressantes. C'est vrai que certains exercices sont compliqués, et le titre du sujet étant "Exercices pour débutants en c"...
                                                        Ce qui m'embête avec system, c'est que j'explique (là : http://www.siteduzero.com/tutoriel-3-385546-executer-un-programme.html#ss_part_3) qu'il ne faut jamais l'utiliser, et après on leur demande de l'utiliser dans les exos...
                                                        Au passage, c'était mon idée de Tp pour le tuto sur la prog système ! :p
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        Staff désormais retraité.
                                                          31 juillet 2011 à 11:32:55

                                                          Dans le pire des cas, nous pouvons recoder « notre » fonction system, et la distribuer dans l'énoncé, en disant d'utiliser celle-ci plutôt que celle de la lib standard. Après, on s'arrange à coups de ifdef et de prog système louche. :-°

                                                          Oui, j'ai grapillé des idées un peu partout. Merci à toi ! :)
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
                                                            31 juillet 2011 à 12:05:57

                                                            Citation : GuilOooo

                                                            Dans le pire des cas, nous pouvons recoder « notre » fonction system, et la distribuer dans l'énoncé, en disant d'utiliser celle-ci plutôt que celle de la lib standard. Après, on s'arrange à coups de ifdef et de prog système louche. :-°



                                                            Bonne idée. :)
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                            Staff désormais retraité.
                                                              31 juillet 2011 à 12:45:50

                                                              Citation : lucas-84


                                                              Ce qui m'embête avec system, c'est que j'explique (là : http://www.siteduzero.com/tutoriel-3-385546-executer-un-programme.html#ss_part_3) qu'il ne faut jamais l'utiliser, et après on leur demande de l'utiliser dans les exos...



                                                              Il ne faut pas diaboliser cette fonction non plus, elle est potentiellement dangereuse si le programme est exécuté avec les privilèges d'administration. Pour un exercice du type recoder un shell de manière simple, elle suffit amplement.
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              Exercices pour débutants en C (suite)

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown