Tableaux et Pointeurs Chaînes de Caractères Programmation Impérative II.

Slides:



Advertisements
Présentations similaires
Rappels C.
Advertisements

C.
CYCLE 6 : FONCTIONS FONCTIONS avec paramètres en Entrée 1- Pourquoi les FONCTIONS peuvent échanger des données en E entre elles ? 2- Comment écrire des.
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
TRAITEMENT DE STRUCTURES
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Sixième cours Les chaînes de caractères et le passage de paramètres par référence Passage de paramètres par référence String.h.
8PRO100 Éléments de programmation Les types composés.
L’essentiel du langage C
Structures des données
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
et quelques rappels sur certains éléments du langage C
Les adresses des fonctions
Argc et argv Utilisation des paramètres de la ligne de commande.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que l’on veut allouer. Le premier exemple: #include void main()
Les types composés Les enregistrements.
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
Chaînes de caractères en langage c, c'est en fait un tableau
Les chaînes de caractères
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
1 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 25/09/2016 ● Algorithmique & Langage.
1 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 26/09/2016 Algorithmique & Langage.
CINI – Li115 1 Semaine 4 Révisions ● Questions de cours ● Types des expressions ● Déclaration de variables ● Instruction conditionnelle et boucles ● Structure.
CINI – Li115 1 Semaine 6 Les fonctions ● Pourquoi écrire des fonctions ? ● Définition de fonctions ● Fonction main ● Appels de fonctions ● Portée des variables.
CINI – Li115 1 Semaine 10 Les pointeurs ● Notion d'adresse ● Déclaration et utilisation de pointeurs ● "Types pointeur" et initialisation des pointeurs.
1 Programmation en C++ Fonctions ● Déclaration et définition de fonctions ● Arguments ● Surcharge ● Arguments optionnels ● Fonctions constantes ● Fonctions.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
A quoi sert la programmation? - indispensable pour plusieurs métiers. - passion. But du cours: - suite du cours Prog. Imp. I - fichiers, pointeurs, modularité.
1 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 27/09/2016 Algorithmique & Langage.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
CINI – Li115 1 Semaine 11 Les pointeurs (suite) ● Tableaux et pointeurs ● Questions sur les pointeurs.
Tableaux en C Mardi 2/05.
Semaine 8 Retour sur les tableaux : fonctions et récursivité
Synthèse TP 2 Codeblock 1 Les objectifs de ce tp sont :
Ajouter le code dans une page html
Les tableaux différencier les variables simples des variables indicées (ordonnées et numérotées) un identificateur unique désigne un ensemble, une collection.
Introduction au Langage Pascal
Langage C Structure d'un programme Types Lire Ecrire Tester
LES TABLEAUX EN JAVA.
Eléments d’Informatique Cours11 – Allocation dynamique, listes chaînées Catherine Recanati.
Allocation dynamique de mémoire
Pointeurs et langage C.
Programmation en C++ IO en C++/SL
AO (Architecture des ordinateurs)
Algorithmique Langage C
Semaine 11 Les pointeurs (suite)
Les fonctions.
Les fonctions.
Matrices, déclaration en CSharp
Programmation en C++ Fonctions
SIF-1053 Architecture de ordinateurs
Tableaux à plusieurs dimensions en langage C
Tableaux à plusieurs dimensions en langage C
Les chaînes de caractères et le langage C
Algorithmique & Langage C
6. Les types utilisateurs et les structures de données
Notions de pointeurs en C
Programmation en C++ Fonctions
Le Langage C Initiation à la programmation
Programmation en C++ C++ de base
Eléments de base du langage C
Les structures de base Listes chainées. Listes Les listes(similaire aux tableaux) sont des structures informatiques qui permettent de garder en mémoire.
Exercices récapitulatifs
Principes de programmation (suite)
QCM Pointeurs 2 / Q1 On considère la déclaration suivante : char *ptc ; ptc peut contenir : 1) des valeurs de variables de type caractère 2) des adresses.
Analyse et programmation langage ADA
Eléments de base du langage C
Transcription de la présentation:

Tableaux et Pointeurs Chaînes de Caractères Programmation Impérative II

2 Les Tableaux Déclaration : int Tab[20]; Eléménts du Tableau : Tab[2] = 5; Tab[0] = 4; printf ("%d\n ", Tab[2*i]); scanf ("%d\n ", &Tab[5]); Taille du Tableau : une constante ou une expression constante #define N 50 int T[N]; float X[2*N];

3 Aucun contrôle de débordement d’indice dans la plupart des compilateurs Initialisation: int Tab[4] = {5,2,3,4}; Tab[0] = 5; Tab[3] = 4; Transmission comme paramètre à une fonction : taille fixe void fct (int t[10]); { } Les Tableaux

4 taille variable int somme (int t[], int nb) { int i, s=0; for (i=0; i<nb; i++) {s = s + t[i];} return (s); } int main (void) { int T[10]; T[0] = 1; T[1] = 5; T[2] = 4; T[3] = 6; printf ("%d", somme(T,2));} Les Tableaux

5 Le langage C permet de manipuler des adresses par l'intermédiaire des variables de type pointeur Déclaration int * ad, n=4; ad : une variable qui sera utilisée pour pointer sur des entiers ad sera une adresse dont le contenu est un entier Opérateurs & et * ad = &n; adresse d’une variable, déjà utilisé avec scanf *ad = 4; contenu d’un pointeur (à une adresse) Les Pointeurs

6 int n; int *ad; ad = &n; *ad = 3; //a le même effet que n = 3; n ad Les Pointeurs =3=3

7 La variable de type pointeur est une adresse qui peut pointer sur un type de donnée quelconque Exemple int * ad1, *ad2, n, p = 1; char *ad3; ad1 = &n; ad2 = &p; *ad1 = *ad2 + 2; printf ("%d %d \n", *ad1, *ad2); n=3 ad1 p=2 ad2

8 Rmq. Le nom d’un tableau est un pointeur qui indique l’adresse du premier élément du tableau float T[10] T est un pointeur de type float La notation T est équivalente à &T[0] T+i&T[i] T[i]* (T+i) Les Pointeurs

9 Passage de paramètres void add1 (int a, int b, int c) { c = a + b; printf (“%d \n”, c);} void add2 (int a, int b, int * c) { *c = a + b; printf (“%d \n”, *c);} int main (void) { int i = 1, j = 2, k = 0; add1 (i, j, k); printf (“%d \n”, k); add2 (i, j, &k); printf (“%d \n”, k); return 0; } Les Pointeurs

10 Tableau de caractères, le dernier élément étant le caractère ‘\0’ char * chaine; char tab1[6]={‘a’,’b’,’\0’}, tab2[]="bonjour"; char tab3[5]="bonjour"; problème de la longueur int main (void) { tab1[0] = ‘a’; tab2[3] = ‘x’; tab1 = "bonjour"; ce n’est pas possible } Chaînes de Caractères

11 1-le format %s avec printf et scanf 2-fonctions spécifiques gets et puts char s1[20], * s2; gets (s1); s2 = s1; puts (s2); scanf ("%s \n", s1); s2 = s1; printf ("%s \n", s2); Lire et Ecrire des Chaînes

12 Fonctions prédefinies dans la bibliothèque string.h Soient n un entier, et s et t deux chaînes de caractères strlen(s) retourne la longueur de s sans compter ‘\0’ strcpy(s,t) copie t vers s strcat(s,t) ajoute t à la fin de s strncpy(s,t,n) copie n caractères de t vers s strncat(s,t,n) ajoute n caractères de t à la fin de s

13 Ordre alphabétique des caractères Dépend du code utilisé Pour le code ASCII:,0,1,2,...,9,...,A,B,C,...,Z,...,a,b,c,...,z,... chaîne vide prècede toutes les autres chaînes "ABC" précède "BCD" car 'A'<'B' "ABC" précède "B" car 'A'<'B' "Abc" précède "abc" car 'A'<'a’ "ab" précède "abcd" car "" précède "cd" " ab" précède "ab" car ' '<'a' strcmp(s, t) compare s et t lexicographiquement et fournit un résultat: 1. Négatif (-1) si s précède t 2. Zéro (0) si s est égal à t 3. Positif (1) si s suit t

14