Page 8 sur 10

Re: Topic de l'informatique

Publié : 07 oct. 2012, 08:27
par Meuh
Ninban a écrit :Ce forum ne supporte pas les espaces multiples :lakitu:
Essaye avec la balise

Code : Tout sélectionner

, ça devrait mieux fonctionner nerdz .

Bon sinon, j'avoue, j'ai jamais vu ces instructions, mais j'ai fait que du MIPS, qui est par définition assez limité. Vous travaillez avec quelle architecture ?

Re: Topic de l'informatique

Publié : 07 oct. 2012, 13:28
par Seud
Meuh a écrit :Bon sinon, j'avoue, j'ai jamais vu ces instructions, mais j'ai fait que du MIPS, qui est par définition assez limité. Vous travaillez avec quelle architecture ?

Notre architecture à nous c'est du PROCSI mais j'ai jamais vu ces instructions non plus. Avec PROCSI c'est cool : Pour donner une instruction c'est mXX avec XX un nombre compris entre 0 et 22. Ca fait 23 instructions dont certaines sont en double pour que ça fasse joli lors des suites. nerdz

Re: Topic de l'informatique

Publié : 07 oct. 2012, 15:43
par Desmu
On a fait de l'assembleur MIPS dès le troisième mois de DUT Informatique, on devait comprendre le fonctionnement des registres grâce à lui.

Les résultats aux examens étaient tellement désastreux que les nouveaux arrivants en DUT font du C, et pas d'assembleur. nerdz

Re: Topic de l'informatique

Publié : 07 oct. 2012, 16:40
par Seud
Tu m'étonnes. Le langage assembleur c'est de l'intelligence pure, il faut bien visualiser son truc à l'avance en particulier avec les programmes auto-modifiables. Perso je me débrouille pas mal (Même si j'ai ramé un peu sur la compréhension des automates) mais je pense que c'est ma formation de taupin qui me donne ce pouvoir obscur de comprendre les r/wreg avec une barre et autres alu-op. nerdz

Re: Topic de l'informatique

Publié : 07 oct. 2012, 17:06
par Meuh
Disons que ça nécessite de voir les choses d'un niveau un peu plus bas, vu que des opérations qu'on pourrait considérer comme basiques dans la plupart des langages doivent être faits "à la main" en assembleur (même si ça dépend de l'architecture). Après, à partir du moment où tu sais dérouler ton programme, y'a rien de bien compliqué, c'est juste plus chiant à écrire : une boucle qui s'écrit en une ligne en C (ou autre langage de plus haut niveau) devra parfois en faire plusieurs en assembleur.

Re: Topic de l'informatique

Publié : 07 oct. 2012, 17:54
par Ninban
Meuh a écrit :
Ninban a écrit :Ce forum ne supporte pas les espaces multiples :lakitu:
Essaye avec la balise

Code : Tout sélectionner

, ça devrait mieux fonctionner nerdz .

Bon sinon, j'avoue, j'ai jamais vu ces instructions, mais j'ai fait que du MIPS, qui est par définition assez limité. Vous travaillez avec quelle architecture ?[/quote]
On travaille sur un PIC18F4680. Mais bon (et j'ai peut-être oublié de le mentionner), ce truc ne peut représenter les nombres qu'en integer, c'est pour ça que pour représenter des virgules flottantes il faut le faire à la main et que je pense que mon problème actuel est purement mathématique, car on parle de l'ajustement de la virgule. Parce qu'en gros si la partie fractionnaire est plus grande ou égale à 1000 0000, je dois pousser la virgule à gauche, ce qui incrémente l'exposant de 1, mais je sais pas pourquoi ça marche et du coup, je sais pas non plus si ça marche à tous les coups.

Re: Topic de l'informatique

Publié : 07 oct. 2012, 18:17
par Meuh
Ah bah si c'est des maths faut demander à Noob, c'est pas mon domaine :pac .

Re: Topic de l'informatique

Publié : 07 oct. 2012, 19:04
par Meuh
Pourquoi savoir compter quand j'ai un ordinateur qui peut le faire à ma place :eng101: ?

Re: Topic de l'informatique

Publié : 07 oct. 2012, 19:14
par Ninban
Pour l'apprendre à des ordinateurs qui le feront à ta place :eng101: .

Re: Topic de l'informatique

Publié : 07 oct. 2012, 19:19
par Meuh
Mes ordinateurs savent déjà compter, heureusement, sinon je pourrais pas faire grand chose avec :haw: .

(Mais ouais heureusement qu'une partie des informaticiens sont des matheux, on serait pas allé bien loin autrement.)

Re: Topic de l'informatique

Publié : 07 oct. 2012, 22:06
par Hydroxyde
Les ordis sont des matheux. Ils parlent en nombres.

Re: Topic de l'informatique

Publié : 15 nov. 2012, 21:48
par Desmu
Bon, bah, je reviens avec mes problèmes de PHP, désolé.

Tout d'abord, je vous présente rapidement le projet : avec deux collègues, on doit créer une sorte de Google Maps, mais pour les jeux vidéo. Via un site Internet, des utilisateurs pourront se connecter et uploader des cartes de jeux vidéo (qu'ils auront faites eux-mêmes avant, ou copiées avec l'accord préalable de l'auteur bien entendu nerdz ). Quels types de cartes ? Ça peut aller de la vue de dessus du circuit de Mario Kart à une map de Battlefield. Tant que c'est une image, ça reste possible.
Mais ce n'est pas tout, ces cartes pourront être partagées avec des clans, et annotées grâce à un système de calques. Ainsi, plusieurs personnes pourront se réunir autour des cartes, et élaborer une stratégie en temps réel, en déposant divers marqueurs, accompagnés de textes ... Cela peut s'avérer particulièrement utile à la veille d'une importante partie sur *insérez le nom de votre MMO préféré ici*, les membres de l'équipe peuvent se mettre d'accord entre eux sur la tactique à employer. Les calques pourront ensuite être lisibles à tout moment, il suffit d'en avoir le droit.

Passée la phase de la chouette description susceptible de donner envie, abordons maintenant la réalité. On arrive à uploader une carte, mais pas à afficher une listes des cartes présentes en base de données. Pas faute d'avoir fait plusieurs fois cette fonction pour d'autres exercices, l'erreur doit être minime, et nous est pourtant invisible.
Dans un premier temps, voici les différents fichiers susceptibles d'influer sur l'affichage de cette liste. Vous trouverez également le script de création de la base de données. Tout n'est pas nécessaire, il faut simplement ajouter des entrées sur les tables Carte, Membre, Jeu, Image et Type_Image. Placez également une image au hasard dans le dossier "images" au cas où, c'est dans ce dossier que sont stockées les cartes pour le moment. N'hésitez pas à signaler l'éventuel oubli d'un fichier, que je l'ajoute.
objet_du_delit.zip
(6.92 Kio) Téléchargé 13 fois
Le problème paraît simple : chaque fonction nécessaire à l'affichage de la liste a l'air d'être appelée (j'ai placé des "echo" un peu partout pour vérifier le bon déroulement du parcours des fichiers), pourtant, sur la page de la liste des cartes, on cherche juste à afficher le nom des cartes pour le moment, mais seules les puces apparaissent. Par exemple, j'ai deux entrées dans la table "Carte", je clique sur "Liste des cartes", et la page affichée doit alors contenir les deux "label_carte" correspondant aux champs de la base de données. Hors, je n'ai que ... deux puces.
J'ai tenté d'afficher d'autres champs, sans succès. Je suis remonté plusieurs fois dans le code en plusieurs jours. Mes collègues y ont jeté un oeil sans plus de succès, ... Il n'y a pas de date butoir pour la résolution du problème, toujours est-il qu'il reste encore pas mal de fonctions à coder, qu'il faut présenter une v1 début Décembre, et que ça fait une semaine que je suis coincé sur une liste, et que ça m'arrange pas.

Alors, si une âme charitable souhaite m'aider, je l'en remercie énormément d'avance. :)

Re: Topic de l'informatique

Publié : 16 nov. 2012, 20:43
par Meuh
Dieu que c'est chiant le MVC. 'comprendrai jamais à quoi ça sert à part compliquer les choses pour rien. M'enfin bon :pac .

Bon, déjà, passer les variables par $_SESSION alors qu'on est sur la même page, je trouve ça un peu bizarre, mais admettons. Dans ce cas, cependant, je conseille fortement que session_start(); soit la toute première ligne du fichier Index.php (et renommez le en index.php boudiou, la majuscule fait chier Apache). Avant tout le reste, avant les includes, avant les commentaires, en tout premier. Sinon les headers vont se chier dessus.

Ensuite, ligne 10 de views/ListeCartes.php :

Code : Tout sélectionner

if (isset($_SESSION['liste_cartes']))
La variable est forcément existante vu qu'elle est définie dans la fonction parente. Même si elle est vide, elle existe. Dans ce cas, il faut utiliser

Code : Tout sélectionner

if (!empty($_SESSION['liste_cartes']))
Ensuite, dans models/ModelBase.php :

Code : Tout sélectionner

			$method = 'set'.ucfirst($key);
			if(method_exists($this, $method)) 
			{
				$this->$method($value);
			}
Si j'ai bien suivi, ça vérifie que la méthode correspondant à la colonne dans la base de données existe, et ça donne l'attribue en passant par la méthode "set" correspondante.

Ce qui est bien gentil, sauf qu'aucune de ces méthodes n'existent : tu tentes par exemple d'appeler la fonction setLABEL_CARTE, qui n'existe pas. Le plus simple, dans l'immédiat, serait soit de renommer toutes les fonctions (mais c'est moche comme ça) soit renommer les colonnes dans la base (ce qui serait plus logique parce que C'EST PAS LA PEINE DE GUEULER SES NOMS DE COLONNES). En attendant, méthode foireuse mais qui marche, remplace la ligne 8 par ça :

Code : Tout sélectionner

			$method = strtolower($key);
			$method = str_replace('_', ' ', $method);
			$method = ucwords($method);
			$method = str_replace(' ', '', $method);
			$method = 'set' . $method;
Ça fait un paquet de traitement pour rien, tout de même. Mieux vaut donc renommer tes colonnes, sauf si tu les as déjà hardcodé à tous les coins de rue.

Re: Topic de l'informatique

Publié : 16 nov. 2012, 22:04
par Desmu
Meuh a écrit :Dieu que c'est chiant le MVC. 'comprendrai jamais à quoi ça sert à part compliquer les choses pour rien. M'enfin bon :pac .
On a appris comme ça dans notre cours. C'est sensé nous aider à comprendre le fonctionnement du PHP.
Personnellement, je préfère caser l'intégralité du code dans un seul fichier, mais pour de gros projets comme celui-là, ça risque d'être ... bordélique. nerdz
et renommez le en index.php boudiou, la majuscule fait chier Apache
En commençant à créer les fichiers, on casait des majuscules systématiquement, index.php est passé avec par ... réflexe. :3:

Concernant ModelBase, on nous a filé le code déjà fait en cours, du reste, on a pas spécialement cherché l'erreur de ce côté ... et c'était bien là.
Dans le courant de la journée, on a changé la BDD, et les noms de toutes les colonnes sont passés en minuscules. Je suppose que le traitement à faire dans ModelBase n'est plus le même, mais ça marche quand même, c'est l'important. :psyduck:

Je pensais que l'erreur serait plus bête que ça, mais en tous cas, merci beaucoup d'avoir résolu le problème !

Re: Topic de l'informatique

Publié : 17 nov. 2012, 11:25
par Hydroxyde
Le charabia incompréhensible est fini? nerdz

Re: Topic de l'informatique

Publié : 17 nov. 2012, 11:36
par Desmu
Sujet : Topic de l'Informatique
Et encore, en matière d'incompréhensibilité, on fait bien pire que ça, si tu veux, on peut parler de langage assembleur. :haw:

Re: Topic de l'informatique

Publié : 17 nov. 2012, 15:23
par Noob Man
Non, crois-moi. Niveau incompréhensible, l'assembleur se classe très clairement en tête (si on ne compte pas la topologie ou l'algèbre générale ofc).


Sinon, j'ai du mal à voir quelles sont les différences fondamentales entre C et C++. Quelqu'un pour m'éclairer ? :pac2

Re: Topic de l'informatique

Publié : 17 nov. 2012, 15:59
par LuigiBlood
Y a que moi pour comprendre l'assembleur ?
C'est juste hyper simple je trouve...

Re: Topic de l'informatique

Publié : 17 nov. 2012, 16:26
par Desmu
Disons que la syntaxe de l'assembleur peut paraître claire, si on se limite à faire des fonctions relativement simples. Toutefois, dans le cadre de mon enseignement, on l'a utilisé pour tenter de comprendre le fonctionnement des registres dans la mémoire.

On était 120 étudiants à faire un DUT Informatique l'an dernier ; au deuxième semestre, 80. nerdz

Re: Topic de l'informatique

Publié : 17 nov. 2012, 18:27
par Meuh
L'assembleur c'est facile à suivre avec un peu de logique. Et surtout un set réduit d'instructions, sinon c'est le bordel pour suivre. Mais bon, autrement, tant qu'on se limite à quelque chose comme du MIPS, ouais, c'est simple. Je dirais pas "hyper" simple, beaucoup moins que n'importe quel autre langage de plus haut niveau, mais ça reste compréhensible.

Après toi LuigiBlood tu triches vu que t'as déjà programmé des trucs sur la SNES, je suppose en assembleur, avec un beau bordel d'instructions. Donc t'as de l'expérience dans le domaine, ça aide (même si ça reste impressionnant) :pac .

Noob, la plus grosse différence que je vois entre le C et le C++ c'est le fait que le C++ soit orienté objet, et qu'il permet donc d'en créer beaucoup plus facilement qu'en C (c'est pas impossible en C, mais faut tricher et dans ce cas je suis même pas sûr que ça soit un "vrai" objet). Si t'as déjà fait du PHP, du Python, du Java ou autre, tu dois savoir ce qu'est un objet, et que c'est quand même bien pratique. Y'a évidemment pas mal d'autres différences mais c'est la principale. Enfin bon, de nos jours, à moins de travailler sur des systèmes limités, programmer en C ne sert qu'à s'initier, pour de vrais projets, autant programmer directement en C++.

(Enfin perso je préfère programmer directement en Python si j'en ai l'occasion mais c'est un autre débat :pac .)