les séquences sont numérotées à partir de 0. s[9] va me permettre d'accéder au dernier élément de ma s... on **built-in len**. Donc je fais un len(s) et ça va me retourner que j'ai effectivement dix éléments ... isque je peux faire : est-ce que 'egg' in s et ça va me retourner vrai, effectivement, la chaîne de ca... in s, qui est le test de non appartenance, et qui va me retourner faux, puisque, effectivement, 'egg'
directeur de recherche, à l'Inria.
Cette séance va être consacrée à un survol de la syntaxe. Donc, on va vous montrer l'entièreté de la syntaxe. Ne pas s'... ontrer l'ensemble de ce qu'il y a dans Pharo.
On va voir les éléments syntaxiques principaux. On va voir qu’il y a trois sortes de messages. Et puis, on
ue spécifique.
Comme on peut le percevoir ici, on va avoir différents modèles pour modéliser une même ... n avec une approche procédurale ====
D'abord, on va faire une comparaison entre une modélisation proc... . Si on regarde la modélisation procédurale, elle va faire un focus sur les données et les procédures.... d'un autre côté, est complètement différent. Il **va déléguer** le calcul de l'aire à d'autres entités
rêmement simple puisque c'est l'objet fichier qui va se charger d'encoder et de décoder les chaînes de... e en **rawstring** en mettant un petit *r* ce qui va désactiver tous les caractères *\.*
Maintenant q... nes de caractères de mon fichier. L'objet fichier va se charger pour nous de faire l'encodage et le dé... ici, nous voyons que je fais une boucle *for* qui va parcourir tous les entiers allant de 0 à 99, et j
fonction qui prend deux arguments a et b, et qui va juste faire un print de a divisé par b. Absolumen... e.
Je vois en effet une erreur d'exécution et on va prendre quelques instants pour la détailler. La d... n'est pas une fatalité, je peux la capturer et on va regarder comment capturer cette exception.
Dans ... ptions. Tout ce qui est entre le try et le except va être évalué et si j'ai une exception qui est prod
bjets** créés dans mon programme. Donc **a = 3**, va faire les opérations suivantes:
* Création de ... mps importants, un **compteur de références** qui va représenter le nombre de variables qui référencen... jet passe à zéro, le **module Garbage Collector** va prendre un accès sur cet objet, et va libérer la mémoire occupée par cet objet lors d'un cycle de Gar
t dès lors des intentions et normalement, si tout va bien, il va
concrétiser cela en un comportement. Donc s’il ne le fait pas, c’est vraisemblablement qu... rmations très précises nous concernant et donc on va le faire parce qu’on est dans des situations où l... informations sur nous. C’est par exemple quand on va prendre l’avion, quand on va prendre le train et
TP simple en Pharo ======
Dans cette séquence on va revisiter la syntaxe Pharo, c'est-à-dire qu'on va la revoir quasiment entièrement sur un exemple conc... n toute simple: http donc issue du monde réel. On va analyser le code et revoir tous les points syntax... analyse.
C'est une application Web classique qui va nous afficher des informations sur des livres. Je
de Java.
Pour définir un bloc syntaxiquement, on va utiliser les crochets
<code smalltalk>
[ expr1. ... n du bloc ne provoque pas son exécution =====
On va parler de définition d'un block. Je vais vous pre... xpressions à l'intérieur vont être évaluées et on va nous rendre le résultat: 8. Par contre, si l'une ... du block contient une erreur, évidemment l'erreur va être retournée au moment de l'évaluation du bloc.
s dans Pharo. Les boucles sont des messages qu'on va envoyer à des objets. Il existe plein de types de boucles différents. Ce sont des messages qu'on va envoyer soit à des nombres, à des collections, vo... nvoie le message "timesRepeat" à l'entier 4 et on va lui passer en paramètre un block. Si vous vous ra... les blocs dans la séquence précédente. Ce message va permettre de répéter l'évaluation de ce block plu
mple qui suit, on l'appelle simplement *f*, et on va lui passer des arguments ( on peut lui passer un ... ère '**:**' après les arguments signifie que l'on va introduire un bloc de code, ce sera le bloc de co... tient une seule instruction, appelant *print* qui va simplement afficher ses trois arguments.
Lorsque... fonction est créé et le nom de la fonction, *f*, va être une variable qui va référencer cet objet fon
aignoires. Ce qu'on voit, c'est que cette machine va créer des milliers de baignoires. Une classe, c'est pareil. Elle va créer des milliers d'objets. Chaque objet est une... sin, etc. Ce qu'il faut voir, c'est qu'une classe va spécifier toutes les variables qui définissent la... matériau qui est utilisé. Après, chaque baignoire va pouvoir être un peu différente.
La classe va éga
* qui est une collection dynamique dont la taille va grossir à chaque fois qu'on ajoute des éléments d... qui est une collection de taille fixe. Et puis on va accéder aux éléments en fonction d'un indice.
**Set**, qui va contenir des éléments mais sans doublon. On ne po... mmune pour l'ensemble des collections. Et puis on va voir celles qui sont en gras, on voit les explici
o.
Commençons par créer un fichier `spam.py` qui va uniquement contenir `x = 1`. Et je vais créer un ... ble *x* dans l'espace de nommage de *spam* et *x* va référencer cet entier 1. Maintenant, l'objet modu... férence l'entier 2. Que fait `print(spam.x)` ? Il va accéder à *x* dans l'espace de nommage de *spam*.... onc, lorsque je vais faire `print(x)`, `print(x)` va afficher le *x* de l'espace de nommage de *egg* ;
is que vous appellerez votre classe, votre classe va créer de nouvelles instances. Et vous allez avoir... et la classe**. Ce qui veut dire que l'**instance va pouvoir hériter, observer tous les attributs qui ... it un attribut qui s'appelle "attr_phrase" et qui va référencer une chaîne de caractères qui vaut 'Je ... bjet "Phrase". À partir de la classe "Phrase", on va pouvoir produire des instances. Pour définir une