• Aucun résultat trouvé

– Thomas REY Utilisation du texteISN Lycée MarliozEric GILLON TP3

N/A
N/A
Protected

Academic year: 2022

Partager "– Thomas REY Utilisation du texteISN Lycée MarliozEric GILLON TP3"

Copied!
31
0
0

Texte intégral

(1)

TP3

Utilisation du texte ISN Lycée Marlioz

Eric GILLON – Thomas REY

(2)

Est-ce logique ?

(3)

Prérequis

Le terme bit signifie « binary digit », (0 ou 1 en numération binaire) :

Pour un signal électrique le 1 correspond à du courant, le 0 à l'absence de courant.

Sur un CD, le 1 et le 0 correspondent à la présence ou l'absence d'aspérité sur la surface.

Avec un bit, il est possible d'obtenir deux états.

Avec 2 bits, il est possible d'obtenir quatre états différents, ainsi de suite…

Avec 8 bits, on peut donc obtenir 256 états différents.

(4)

Octet

• Un octet est un faisceau de 8 fils

électriques ou la lecture sur un CD de 8 aspérités cumulées.

• A savoir : La communauté internationale dans

son ensemble utilise le nom de « byte » plutôt

que le terme « octet » qui est francophone.

(5)

Le vieux Kilooctet

Pendant longtemps, on nous a appris que 1 kilooctet

valait 1024 octets, or depuis décembre 1998, l'organisme international IEC a normalisé ce système :

Un Kilooctet (Ko) = 1000 octets

Un Mégaoctet (Mo) = 1000 ko = 1 000 000 octets

Un Gigaoctet (Go) = 1000 Mo = 1 000 000 000 octets Un Téraoctet (To) = 1000 Go = 1 000 000 000 000 octets

(6)

Le Kibi

Du coup, cette organisation a défini le

kilobinaire (kibi) avec tous les préfixes habituels

• Un kibioctet (kio) vaut 1024 octets

• Un Mébioctet (Mio) vaut 1024 kio = 1 048 576 octets

• Un Gibioctet (Gio) vaut 1 073 741 824 octets

• Un Tébioctet (Tio) vaut 1 099 511 627 776

octets

(7)

Mémoires réelles

Alors pourquoi cette unité n'est pas utilisée régulièrement par les constructeurs ?

La réponse est simple :

100 Go est plus commercial qu'environ 93,13 Gio.

Vérifiez sur une clé USB vendue pour 8 Go par exemple :

8 000 000 000 octets

correspondent à environ 7,45 Gio !

(8)

Les différents types de variables

Une déclaration de variable se fait comme ceci :

<Type de la variable> <Nom de la variable> ; Ensuite, on l'initialise si besoin en entrant une valeur.

En Java, il y a deux types de variables : les variables de type simple,

les variables de type complexe appelées « objets ».

Par convention, les types de variable simple sont en

minuscules alors que les variables de type objets commencent par une majuscule.

(9)

Les variables de type numérique

Le type byte (1 octet) peut contenir les entiers entre -128 et +127.

Le type short (2 octets) contient les entiers compris entre -32768 et +32767.

Le type int (4 octets) va de ? à ? .

Le type long (8 octets) peut aller de ? à ? .

(10)

Que fait ce programme ?

• int a=2147483647;

• a=a+1;

• System.out.println(a);

(11)

Les variables décimales

Le type float (4 octets) est utilisé pour les nombres décimaux, sa plage de valeur est 3.4E-38 à 3.4E+38, avec une précision de 7 chiffres.

Le type double est identique à float mais sur 8 octets, Il peut aller de 1.7E-308 à 1.7E+308, avec une précision de 15 chiffres

Exemple :

float pi; pi = 3.141592653f;

float nombre = 2.0f;

A noter :

Le « f » à la fin !

La virgule est symbolisée par un point.

(12)

variables de type booléen

Le type boolean ne peut contenir que deux valeurs : true (vrai) ou false (faux),

sans guillemets…

int a=2147483647;

boolean b=true;

if (b==true) {

System.out.println(a);

}

(13)

Caractère

Variables stockant un caractère :

Le type char contient UN caractère stocké

entre apostrophes ‘a’.

(14)

Variable pour les chaines de caractères

Le type String permet stocker du texte. Il commence par une majuscule et lors de l'initialisation, on utilise des guillemets doubles " " .

Exemples de déclaration possibles : String phrase;

phrase = "abcd";

String phrase = new String();

phrase = "abcd";

String phrase = "abcd";

String phrase = new String("abcd");

(15)

A retenir sur les variables

• Toute variable doit être déclarée avant d’être utilisée.

• Une variable peut-être déclarée n’importe où dans le programme.

• Syntaxe: le type précède le nom de la variable.

• Une variable peut être initialisée lors de sa déclaration.

int i = 2

• On peut regrouper les variables de même type en une seule déclaration :

int nbre1 = 2, nbre2 = 3, nbre3 = 0;

(16)

En Java, il y a 8 types simples

• 4 pour le entiers: byte, short, int, long;

• 2 pour les réels: float, double;

• 1 type booléan: boolean;

• 1 type caractère: char.

• String est un type d’objet !

(17)

Le Code ASCII :

ASCII: (American Standard Code for Information Interchange ) est une norme d'encodage informatique des caractères alphanumériques de l'alphabet latin.

La norme ASCII établit une correspondance entre une représentation binaire des caractères de l'alphabet latin et les symboles, les signes, qui constituent cet alphabet.

La norme ASCII permet ainsi à toutes sortes de machines de stocker, analyser et communiquer de l'information textuelle.

La quasi totalité des ordinateurs personnels et des stations de travail utilisent l'encodage ASCII.

Il existe d'autres normes que l'ASCII, comme l'Unicode.

Le code ASCII utilise 8 bits donc on peut coder 256 caractères !

(18)

Extrait de la table ASCII

(19)

Principales fonctions utiles pour le texte

(20)

Saisir une variable texte ou nombre

• sc.nextLine() pour un texte alphanumérique.

• sc.nextInt() pour un entier.

• Sc.nextFloat() pour un décimal.

(21)

Extraction d’un caractère particulier

charAt()

• Elle ne peut s'opérer que sur des String . Le

premier caractère sera référencé par le numéro 0.

• Cette méthode prend un entier comme argument.

• Exemple :

String nbre = new String("1234567");

char carac = nbre.charAt(4);

(22)

Obtenir la longueur : length()

• Celle-ci renvoie la longueur d'une chaîne de caractères (en comptant les espaces).

• Exemples :

String chaine = new String("coucou ! ");

int longueur = 0;

longueur = chaine.length();

(23)

Extraire une chaine : substring()

• Cette méthode extrait une partie d'une chaîne de caractères.

• Elle prend deux entiers en arguments : le premier

définit le premier caractère (inclus) de la sous-chaîne à extraire, le second correspond au dernier caractère

(exclu) à extraire. Le premier caractère porte le numéro 0.

• Exemple :

String chaine = new String("abcdefghijklmnopqrstuv"), chaine2 = new String();

chaine2 = chaine.substring(3,6);

(24)

Comparer deux chaines : equals()

Cette méthode permet de vérifier (donc de tester) si deux chaînes de caractères sont identiques. C'est avec cette

fonction que vous effectuerez vos tests de condition sur les String.

Exemple :

String str1 = new String("coucou"), str2 = new String("toutou");

if (str1.equals(str2))

System.out.println("Les deux chaînes sont identiques !");

else

System.out.println("Les deux chaînes sont différentes !");

(25)

Changer la case : toLowerCase() et toUpperCase()

• Cette méthode permet de transformer tout caractère alphabétique en son équivalent minuscule.

• Elle n'a aucun effet sur les chiffres (ce ne sont pas des caractères alphabétiques.

• Exemple :

String chaine = new String("COUCOU TOUT LE MONDE

!"), chaine2 = new String();

chaine2 = chaine.toLowerCase();

String chaine = new String("coucou coucou"), chaine2 = new String();

chaine2 = chaine.toUpperCase();

(26)

Rechercher une chaine dans une chaine : indexOf() — lastIndexOf()

indexOf() explore une chaîne de caractères à la recherche d'une suite donnée de caractères, et renvoie la position (ou l'index) de la sous-chaîne passée en argument.

indexOf() explore à partir du début de la

chaîne, lastIndexOf() explore en partant de la fin, mais renvoie l'index à partir du début de la chaîne.

Ces deux méthodes prennent un caractère ou une chaîne de caractères comme argument, et renvoient un int.

Le premier caractère porte le numéro 0.

(27)

Exemple :

String mot = new

String("anticonstitutionnellement");

int n = 0;

n = mot.indexOf('t'); //n vaut 2

n = mot.lastIndexOf('t'); //n vaut 24

n = mot.indexOf("ti"); //n vaut 2

n = mot.lastIndexOf("ti"); //n vaut 12

n = mot.indexOf('x'); //n vaut -1

n = mot.indexOf('t',5); //n vaut 10

(28)

Concaténer

• Il suffit d’utiliser le symbole + ou concat

• Exemples

String mot1=new String(« abcd ») mot2=new String(« efgh ») ;

String mot3=mot1+mot2 ; //donne abcdefgh

String mot3 = mot1.concat(mot2);

(29)

Comparaison lexicographique

• compareTo() et compareToIgnoreCase()

(30)

Exemple

Interpréter ce programmes en Java.

String texte = "Quand le ciel bas et lourd pèse comme un couvercle" ;

int index = texte.indexOf("e") ; while (index > 0) {

System.out.println("J'ai trouvé un e en position "

+ index) ;

index = texte.indexOf("e", index + 1) ;

}

(31)

Exercice :

Interpréter ce programme en Java et donner le résultat.

String mot1 = new String("COUCOU"), mot2 = new String("coucou");

mot2 = mot2.toUpperCase();

if (mot1==mot2)

System.out.println("bingo !");

else

System.out.println("flop");

Références

Documents relatifs

chaîne de caractères = suite d’octets Lecture fichier texte : lignes stockées dans une chaîne de caractères.. Lecture fichier binaire : données stockées dans une chaîne

chaîne de caractères = suite d’octets Lecture fichier texte : lignes stockées dans une chaîne de caractères.. Lecture fichier binaire : données stockées dans une chaîne

Lecture fichier binaire : données stockées dans une chaîne de caractères... 3.2 str : chaîne d’octets (pas

8-10 : la méthode .extend() ajoute en bout de liste tous les éléments de la liste passée en argument ; liste a alors trois éléments?. Dans les exemples qui suivent, on crée de

Repère dans l’écran ci-contre le nom du bloc d’instruction qui permet d’ajouter un point au joueur qui a répondu correctement à la question 1.. Bloc d’instruction : Ajouter à «

On perd une partie

• Le traitement de liste est souvent réalisé à l’aide de fonctions récursives (il n’existe pas d’équivalent fonctionnel direct des boucles). • Calcul de la longueur

On veillera à bien être attentif aux priorités des opérations dans les calculs.. http://jouons-aux-mathematiques.fr