Texte incomprehensible !!!

Discutez d'informatique ici !
barbu23
Membre Transcendant
Messages: 5466
Enregistré le: 18 Fév 2007, 18:04

Texte incomprehensible !!!

par barbu23 » 01 Aoû 2007, 23:53

Bonsoir:
J'ai du mal à comprendre le texte suivant, c'est pourquoi je viens solliciter votre aide .. !
le voiçi ce texte:
Les structures statiques sont toutes caractérisées par une taille finie, comme par exemple:
Les scalaires : entiers, réels, intervalles, énuméré ...etc
Les structures: tableaux, les chaînes de caractères et les enregistrements.
Les structures dynamiques sont caractérisées par une taille infinie, comme par exemple:
Fichiers, listes chaînees, les arbres, les graphes ...etc.
Une structures dynamique est donc une structure dont la taille (le nombre de composants ) peut varier en cours d'éxecution
On distingue deux types de structures dynamiques: les structures récursives et non récursives.
Définition d'une structure récursive:
Une structure récursive est une structure ( en général basée sur un enregistrement dont la définition comporte une référence à elle-même comme les listes chaînées et les arbres. Pour la plupart des langages procéduraux, ces references se font à l'aide du type pointeur
On distingue également deux autres types de structures dynamiques : Les structures linéaires et non-lineaires.
Définition d'une structure récursive linéaire:
Une structure récursive qui comporte uniquement une seule reference dans sa définition est une structure linéaire comme les listes chaînées.
Liste=(Element --> Liste).Une seule réference pour définir une liste chaînée.
Définition d'une structure récursive non-linéaire:
Une structure récursive qui fait plus d'une référence pour sa définition est une structure non-linéaire comme les arbres et les graphes.
Arbre = (Arbre binaire Arbre binaire ). 2 références pour définir un arbre binaire.
Toutes les structures qui ne sont pas récursives sont des structures non-linéaires, comme les fichiers
Question:
Voiçi donc le texte, et les passages que j'ai pas compris sont en rouge.
Ce texte est tiré du cours de l'informatique de L2 ( il y'a deux ans) de ma fac..j'ai preque tout oublié de ce cours !!
Merçi d'avance !!



barbu23
Membre Transcendant
Messages: 5466
Enregistré le: 18 Fév 2007, 18:04

par barbu23 » 01 Aoû 2007, 23:54

et le language concerné, c'est : Pascal.

Joker62
Membre Transcendant
Messages: 5028
Enregistré le: 24 Déc 2006, 20:29

par Joker62 » 02 Aoû 2007, 05:09

Ben c'est des définitions, y'a rien à comprendre

Dominique Lefebvre
Membre Légendaire
Messages: 8007
Enregistré le: 03 Déc 2005, 13:00

par Dominique Lefebvre » 02 Aoû 2007, 08:15

barbu23 a écrit:et le language concerné, c'est : Pascal.


Le langage importe peu! Les définitions que tu cites concernent l'algorithmique, qui est vraie qq soit le langage, heureusement...

Comme ledit Joker, ce sont des définitions : donc tu les apprends d'abord, en essayant de comprendre ce que cela signifie (de préférence avec des petits dessins!).
Les pointeurs et la récursivité peuvent poser qq problèmes assez superficiel, pour le reste c'est assez basique non?

GzD
Membre Naturel
Messages: 24
Enregistré le: 12 Avr 2007, 15:44

par GzD » 02 Aoû 2007, 14:42

Dans la grande majorité des cas il suffit de parler français pour comprendre de quoi il s'agit.
Après si tu ne comprends toujours pas il faudrait penser à arrêter d'être feignant monsieur.

barbu23
Membre Transcendant
Messages: 5466
Enregistré le: 18 Fév 2007, 18:04

par barbu23 » 02 Aoû 2007, 14:43

Bonjour:
Pouvez vous me dire pourquoi le programme suivant ne marche pas ?!
Le voiçi ce programme:

program colorier;
uses wincrt;
type couleur=(bleu,vert,jaune,rouge,gris);
var coul1,coul2:couleur;
begin
coul1:=bleu;
coul2:=succ(coul1);
coul1:=pred(coul2);
writeln(coul1,coul2);
end.

Quant je compile, le programme affiche une erreur...L'erreur est ,selon le programme : "Error64 : Cannot Read or Write variables of this type"..
Comment le corriger ?!
Merçi d'avance !!

anima
Membre Transcendant
Messages: 3762
Enregistré le: 15 Sep 2006, 12:00

par anima » 02 Aoû 2007, 14:49

barbu23 a écrit:Bonjour:
Pouvez vous me dire pourquoi le programme suivant ne marche pas ?!
Le voiçi ce programme:

program colorier;
uses wincrt;
type couleur=(bleu,vert,jaune,rouge,gris);
var coul1,coul2:couleur;
begin
coul1:=bleu;

N'ayant jamais fait de pascal, je ne peux qu'hasarder, mais ta "couleur" est un tableau non-associatif, non?

barbu23
Membre Transcendant
Messages: 5466
Enregistré le: 18 Fév 2007, 18:04

par barbu23 » 02 Aoû 2007, 14:52

le problème, d'après le programme, c'est au niveau de :
writeln(coul1,coul2);
et plus précisement, à l'endroit | dans : writeln(coul1 | ,coul2);
Pour être plus clair !
merçi "GzD", je suis feignant :marteau: !!

Joker62
Membre Transcendant
Messages: 5028
Enregistré le: 24 Déc 2006, 20:29

par Joker62 » 02 Aoû 2007, 14:56

Bé c'est simple, cannot read or write variable of this types

On ne peut pas écrire une variable de ce type
Tu as définit un nouveau type couleur que l'on ne peut pas écrire puisqu'après tout tu sais pas ce que ça vaut toi même !

Donc tu dois faire un truc dans le genre :

procedure AfficheCouleur ( Col : Couleur ) ;
Begin
case Col of
bleu : writeln('bleu');
rouge : writeln('rouge');
...
END;
END;

barbu23
Membre Transcendant
Messages: 5466
Enregistré le: 18 Fév 2007, 18:04

par barbu23 » 02 Aoû 2007, 15:03

"anima" bonjour :
je ne sais pas... c'est quoi un tableau non associatif...?
Ici ce n'est pas un tableau, c'est un type comme integer, real.. etc .
Par exemple, une variable x de "type" : integer prend les valeurs 1,2,..., etc ...Dans notre cas ici, une variable coul1 de "type" : couleur, prend les valeurs : bleu, vert, jaune, rouge, gris !!!

barbu23
Membre Transcendant
Messages: 5466
Enregistré le: 18 Fév 2007, 18:04

par barbu23 » 02 Aoû 2007, 15:18

Joker, j'ai pas trop compris ce que tu veux dire :mur: ...
Tu as définit un nouveau type couleur que l'on ne peut pas écrire puisqu'après tout tu sais pas ce que ça vaut toi même !

non, je sais ce que ça vaut, ça vaut : soit bleu, soit jaune, soit rouge, soit gris ...tu voulais dire qu'il faut les ecrire comme ça: couleur = ('bleu','vert', 'jaune','rouge','gris',)...pour qu'il deviennent des constantes au lieu de : couleur (bleu,vert,jaune,rouge,gris);
Enfin, je ne sais pas, c'est quoi le role de ta procedure exactement ?!

Joker62
Membre Transcendant
Messages: 5028
Enregistré le: 24 Déc 2006, 20:29

par Joker62 » 02 Aoû 2007, 15:31

Ben la meilleure façon de le savoir c'est de la tester... :)

La fonction WriteLn ne connait pas le type couleur puisque c'est toi qui l'a définie, donc y'a aucune raison pour que ça marche.

La fonction que je t'ai donnée marche comme ça :

On a une couleur en argument
Et selon la couleur
On affiche un texte

Si c'est du bleu, on affiche 'bleu'
Si c'est du vert, on affiche 'vert'
Etc...

barbu23
Membre Transcendant
Messages: 5466
Enregistré le: 18 Fév 2007, 18:04

par barbu23 » 02 Aoû 2007, 15:49

Joker, ça marche pas quant je compile :
j'ai tapé le code source suivant:
program colorier;
uses wincrt;
type couleur=(bleur,vert,jaune,rouge,gris);
procedure affich_coul(col : couleur);
begin
case col of
bleu : writeln('bleu');
vert : writelnt('vert');
jaune : writeln('jaune');
rouge : writeln('rouge');
gris: writeln('gris');
end;
var coul1,coul2: couleur;
begin
coul1 :=bleu;
coul2 := succ(coul1);
coul1 := pred(coul2);
procedure affich_coul;
end.

Joker, tu peux voir ou est l'erreur ?
Merçi d'avance !!
l'erreur c'est au niveau de cette ligne : "|"var coul1,coul2: couleur;
le programme affiche comme erreur : Error113 : Error in statement.
Merçi d'avance !!

Joker62
Membre Transcendant
Messages: 5028
Enregistré le: 24 Déc 2006, 20:29

par Joker62 » 02 Aoû 2007, 15:56

Déjà il manque le End; de ta procédure, le premier étant pour le case of

Ensuite, il manque un argument dans l'appel de ta procédure, j'ai pas de compilo sous la main, j'ai arrêter le pascal depuis bien longtemp mais teste ça :

Pascal a écrit:PROGRAM Colors;
USES crt;
TYPE couleur=(bleu,vert,jaune,rouge,gris);

VAR Coul1, Coul2 : couleur;

PROCEDURE Affiche_Couleur ( Col : Couleur ) ;
BEGIN
...CASE Col OF
......bleu : Writeln('Bleu');
......vert : Writeln('Vert');
......jaune : Writeln('Jaune');
......rouge : Writeln('Rouge);
......gris : Writeln('Gris');
...END;
END;

BEGIN
...Coul1 = bleu;
...Coul2 = Succ(Coul1);
...Affiche_Couleur(Coul1);
...Affiche_Couleur(Coul1);
END.


Les ... c'est juste pour l'indentation !
J'ai toujours eu horreur du fouilli !

barbu23
Membre Transcendant
Messages: 5466
Enregistré le: 18 Fév 2007, 18:04

par barbu23 » 02 Aoû 2007, 16:04

:++: Joker !
Mais j'ai une autre question pour toi que j'ai pas compris , tu as mis deux "end", à la fin de procédure...Il y'a un seul "begin" , alors tu dois mettre un seul "end" et non pas deux n'est ce pas.., et pourtant ça marche quant je compile...?!donc tu as raison, mais je comprends pas pourquoi !!!

barbu23
Membre Transcendant
Messages: 5466
Enregistré le: 18 Fév 2007, 18:04

par barbu23 » 02 Aoû 2007, 16:09

Mes questions sont hyperstupides :ptdr:

Joker62
Membre Transcendant
Messages: 5028
Enregistré le: 24 Déc 2006, 20:29

par Joker62 » 02 Aoû 2007, 16:09

J'ai utilisé un

CASE ... OF


END;

En fait, c'est une structure conditionnel cachée...
ça représente :

SELON QUE ... VAUT :
ça : Alors faire ça;
ceci : alors faire ceci:
FIN;

va sur [url="http://www.developpez.com"]www.developpez.com[/url] tu y retrouveras tout ce qui faut ;)
N'est stupide que la stupidité comme dirait un ami acteur

barbu23
Membre Transcendant
Messages: 5466
Enregistré le: 18 Fév 2007, 18:04

par barbu23 » 02 Aoû 2007, 16:13

Merçi beaucoup !

Flodelarab
Membre Légendaire
Messages: 6574
Enregistré le: 29 Juil 2006, 15:04

par Flodelarab » 02 Aoû 2007, 18:38

Joker62 a écrit:Bé c'est simple, cannot read or write variable of this types

On ne peut pas écrire une variable de ce type

WAaaaaaaaaaaaaaa

T'es trop fort en informatique, Joker :ptdr:

Déjà que notre ami ne comprend pas le français, tu t'attendais pas à ce qu'il comprenne l'anglais :ptdr:


:++:

Joker62
Membre Transcendant
Messages: 5028
Enregistré le: 24 Déc 2006, 20:29

par Joker62 » 02 Aoû 2007, 18:39

T'as vu ça un peu !
Desfois j'me dis quand même : David, t'es un mac !

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 14 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite