dimanche 18 novembre 2007

Le blog devient wiki

Le blog DUT info spéciale déménage sur un serveur dédié : https://info-as.tililoublou.net/index.php/Accueil

Dorénavant vous pouvez tous vous transformer en contributeur puisqu'il s'agit d'un wiki. Donc si vous pensez exceller dans une matière, n'hésitez pas à partager vos connaissances. Ce blog reste en accessible mais les mises à jour se feront en priorité sur le wiki.

lundi 12 novembre 2007

Unités d'enseignement et coefficients

Voici les unités d'enseignement ainsi que les coefficients des différentes matières valables pour le DUT Informatique Année spéciale. Ces informations concernant l'année universitaire 2006-2007, certains éléments sont susceptibles d'avoir changé cette année.


Coefficient

UE 1 : BASES DE L'INFORMATIQUE 12


Initiation à l'informatique 3.8
Bases de la programmation 2
Langage C 1.8

Algorithmique, Structures de données, Cobol 4.2
Bases de données 4

UE 2 : INFORMATIQUE AVANCEE 12

Algorithmique avancée 3.8
Algo. avancée 1.8
Programmation objet 2

Analyse et Conception des Systèmes d'Information 2.2
Système 3
Réseau 3

UE 3 : CONNAISSANCES ET
COMPETENCES GENERALES
12


Mathématiques 4

Economie et gestion des organisations 4
Economie 2
Système d'information comptable et
financier 2

Langues, Expression, Communication 4
Expression, Communication 2
Anglais 2

PROJETS TUTEURES ET STAGES 12

Projets tuteurés 5
Projet Cobol 1.5
Projet Java 2.5
Jeu d'entreprise 1

Stage 7

samedi 10 novembre 2007

Memento du langage csh

#!/bin/csh

switch ( $#argv )

case '1' :
if ( toi vouloir memento csh 1 ) then
clique ici : http://pushstart5.free.fr/java/csh.jpg
endif
end
breaksw

case '2' :
if ( toi vouloir memento csh 2 ) then
clique ici : http://pushstart5.free.fr/java/csh2.jpg
endif
end
breaksw

default :
echo "Erreur: nb arg"
breaksw
endsw

jeudi 1 novembre 2007

6 Variables composites

Exercice 1
Ecrire l'agorithme de la fonction qui permet de calculer l'âge en années d'une personne, connaissant sa date de naissance et la date courante. Les dates sont représentées sous la forme de variables composites de 3 entiers.

fonction calculerAge (datenaiss : Date, dateauj : Date) : entier
début
si dateauj.mois > datenaiss.mois alors
age <- dateauj.annee - datenaiss.annee
sinon
si dateauj.mois < datenaiss.mois alors
age <- dateauj.annee - datenaiss.annee - 1
sinon si dateauj.jour => datenaiss.jour alors
age <- dateauj.annee - datenaiss.annee
sinon
age <- dateauj.annee - datenaiss.annee -1
fsi
fsi
fsi
retourne age
fin

Exercice 2

Question1
Ecrire l'algorithme de la fonction qui, à partir d'une date donnée, donne la date du lendemain. Les dates sont représentées sous la forme de variables composites de 3 entiers.
Rappel : Le mois de février a 28 ou 29 jours selon que l'année est bissextile ou non. Une année est bissextile si elle est divisible par 4. Toutefois, les années séculaires ne sont pas bissextiles, sauf celles dont les deux premiers chiffres sont divisibles par 4, comme 1600, 2000, 2400.

fonction calculerDateLendemain (dj.date) : Date
début
si dj.annee mod 100 = 0 alors
bissextile <- (dj.annee mod 400 = 0)
sinon bissextile <- (dj annee mod 4 = 0)
fsi
finmois <- (dj.jour = 30) et ((dj.mois = 4) ou (dj.mois = 6) ou (dj.mois = 9) ou (dj.mois = 11)) ou (dj.jour = 31) ou ((dj.mois = 2) et (dj.jou r= 29)) ou ((dj.mois = 2) et (dj.jour = 28) et non bissextile)
si finmois alors
si dj.mois = 12 alors
dl <- (1,1, dj.annee + 1)
sinon dl <- (1, dj.mois + 1, dj.annee)
fsi
sinon
dl <- (dj.jour + 1, dj.mois, dj.annee)
fsi
retourne dl
fin

Lexique :
Date = / jour : entier, mois : entier, annee : entier \
dj : Date
dl : Date

Question2
Même question en définissant et en utilisant un tableau, qui, à chaque mois, associe le nombre de jours de ce mois.

fonction calculerDateLendemain (dj.date) : Date
début
si dj.annee mod 100 = 0 alors
bissextile <- (dj.annee mod 400 = 0)
sinon bissextile <- (dj annee mod 4 = 0)
fsi
si bissextile alors
tabfinmois <- [31, 29, 31, 30, 31, 31, 30, 31, 30, 31]
sinon tabfinmois <- [31, 28, 31, 30, 31, 31, 30, 31, 30, 31]
fsi
finmois <- (dj.jour = tabfinmois[dj.mois])
si finmois alors
si dj.mois = 12 alors
dl <- (1,1, dj.annee + 1)
sinon dl <- (1, dj.mois + 1, dj.annee)
fsi
sinon
dl <- (dj.jour + 1, dj.mois, dj.annee)
fsi
retourne dl
fin

Lexique :
tabfinmois : tableau entier [1..12]
Date = / jour : entier, mois : entier, annee : entier \
dj : Date
dl : Date

Exercice 3
Soit un tableau de type Tabnaiss associant à chaque étudiant ses nom, prénom et date de naissance.
Tabnaiss = tableau Etudiant[1..nbétudiants]
Etudiant = / nom : chaîne, prénom : chaîne, datenaiss : Date \
Date = / jour : entier, mois : entier, année : entier \

Question 1
Ecrire l'agorithme de la fonction qui permet d'imprimer les noms et prénoms des étudiants ayant leur anniversaire à un jour et un mois donnés.

fonction anniversaire (nbétudiants : entier, t : tabnaiss, jourch : entier, moisch : entier)
début
pour i de 1 à nbétudiants faire
si t[i].datenaiss.jour = jourch et t[i].datenaiss.mois = moisch alors
écrire (t[i].nom, t[i].prénom)
fsi
fpour
fin

Question 2
Ecrire l'algorithme de la fonction qui permet de calculer le nombre d'étudiants ayant plus d'un âge donné (en nombre d'années, aged), à une date donnée (datecourante).

fonction nbEtudiantAge (nbEtudiant entier, t : tabnaiss, aged : entier, datecourante = Date) : entier
début
compteur <- 0
pour i de 1 à nbEtudiant faire
si calculerAge (datecourante, t[i].datenaiss) => aged alors
compteur <- compteur + 1
fsi
fpour
retourne compteur
fin

5 Tableaux

Exercice 1
Décrire une fonction qui calcule la somme des éléments d'un tableau.

fonction sommeElements (n : entier, t : tableau entier [0..n-1]) : entier
début
somme <- 0
pour i de 0 à n-1 faire
somme <- somme + t[i]
fpour
retourne somme
fin

Exercice 2
Décrire une fonction qui calcule l'élément maximal d'un tableau.

fonction maxTab (n : entier, t : tableau entier [O..n-1] : entier
début
max <- t[0]
pour i de 1 à n-1 faire
si max < t[i] alors
max <- t[i]
fsi
fpour
retourne max
fin

Exercice 3
Décrire une fonction qui indique si un élément est dans un tableau.

fonction chercheElement (n : entier, element : entier, t : tableau entier [O.. n-1] : booléen
début
presenceElement <- faux
i <- 0
tant que (presenceElement = faux) et (i < n) faire
si element = t[i] alors
presenceElement <- vrai
fsi
i <- i + 1
ftant
retourne presenceElement
fin

Exercice 4
Décrire une fonction qui donne l'indice du premier élément d'un tableau qui dépasse un seuil donné (-1 si aucun élément ne dépasse ce seuil).

fonction indicePremierSupSeuil (n : entier, t : tableau entier [O..n-1], seuil : entier) : entier
début
i <- 0
indice <- -1
trouver <- faux
tant que (trouver = faux) et (i < n) faire
si t[i] > seuil alors
trouver <- vrai
indice <- i
fsi
i <- i + 1
ftant
retourne indice
fin

Exercice 5 : tri par sélection du minimum
Décrire une fonction qui trie par ordre croissant les éléments d'un tableau selon le principe suivant : on parcourt le tableau pour repérer le minimum puis on l'échange avec la première valeur non encore triée. On répète ce processus (n-1) fois pour un tableau de n éléments.

fonction trie (n : entier, t InOut : tableau entier [O..n-1}
début
pour i de 0 à n-2 faire
min <- t[i]
indice <- i
pour j de i+1 à n-1 faire
si t[j] < min alors
min <- t[j]
indice <- j
fsi
fpour
si indice # i alors
t[indice] <- t[i]
t[i] <- min
fsi
fpour
fin

Exercice 6
Décrire une fonction qui calcule l'élément maximal d'un tableau à 2 dimensions.

fonction maxTab2D (li : entier, co : entier, t : tableau entier [O..li-1, 0..co-1]) : entier
début
max <- t[O,O]
pour i de 0 à li-1 faire
pour j de 0 à co-1 faire
si t[i,j] > max alors
max <- t[i,j]
fpour
fpour
retourne max
fin

Exercice 7
Dans la série de questions qui suit, un certain nombre d'algorithmes et de fonctions seront décrits de façon à permettre la gestion statistique du nombre de connexions à un serveur web. De façon générale, la donnée principale fournie sera un tableau de n entiers contenant le nombre de connexions enregistrée lors des n derniers mois écoulés.

Question 7.1
Ecrire un algorithme qui saisit le nombre n de mois d'étude et les n nombres de connexions mensuelles, les stocke dans un tableau, puis affiche le nombre minimum, maximum et moyen de connexions mensuelles.

Algorithme
début
n <- lire ()
nbrCnx [O] <- lire ()
min <- nbrCnx [O]
max <- nbrCnx [O]
tot <- nbrCnx [O]
pour i de 1 à n-1 faire
nbrCnx [i] <- lire ()
si min > nbrCnx [i]
si max < nbrCnx [i]
tot <- tot + nbrCnx [i]
fpour
moy <- tot / n
écrire (min, max, moy)
fin

Question 7.2
Ecrire une fonction qui permet de corriger nbr éléments successifs d'un tableau de nombres de connexions mensuelles (en cas de saisie erronée). Les nouvelles valeurs sont stockées dans un tableau.

fonction corrigerRelevé (n : entier, nbrCnx InOut : tableau entier [O..n-1], début : entier, nouv : tableau entier [O..nbr-1])
début
fin <- début + nbr-1
si fin > n-1 alors
fin <- n-1
fsi
pour i de début à fin faire
nbrCnx [i] <- nouv [i - début]
fpour
fin

Question 7.3
Ecrire une fonction qui permet d'inverser l'ordre des valeurs stockées dans un tableau de nombres de connexions mensuelles.

fonction inverse (n : entier, nbrCnx : InOut tableau entier [O..n-1])
début
i <- 0
j <- n-1
tant que (i < j) faire
tmp <- nbrCnx[i]
nbrCnx[i] <- nbrCnx[j]
nbrCnx[j] <- tmp
i <- i + 1
j <- j - 1
ftant
fin

Question 7.4
Ecrire une fonction qui permet de rentrer une nouvelle valeur (le nombre de connexions du dernier mois écoulé) dans le tableau, et met à jour le nombre minimum, maximum et moyen de connexions. On supposera que la case i contient toujours le nombre de connexions mensuelles enregistré i mois auparavant. On utilisera des fonctions qui calculent le nombre minimum (resp. maximum) de connexions mensuelles.

fonction ajouterValeur (n : entier, nbrCnx InOut : tableau entier [O..n-1], nouvelle : entier, min InOut entier, max InOut entier, moy InOut réel)
début
ancienne <- nbrCnx[n-1]
pour i décroissant de n-1 à 1 faire
nbrCnx[i] <- nbrCnx[i-1]
fpour
nbrCnx[0] <- nouvelle
total <- moy x n
total <- total + nouvelle - ancienne
moy <- total / n
si nouvelle <= min alors
min <- nouvelle
sinon si ancienne = min alors
min <- calculMin (n, nbrCnx)
fsi
fsi
si nouvelle => max alors
max <- nouvelle
sinon si ancienne = max alors
max <- calculMax (n, nbrCnx)
fsi
fsi
fin

Question 7.5
Un autre outil de traitement des connexions au site web stocke les nombres de connexions quotidiennes dans un tableau à 3 dimensions de taille n x 12 x 31 : la case [i,j,k] correspond au k-ième jour du j-ième mois de l'année 2007-i (si un jour n'existe pas, ou si le relevé n'est pas disponible, la case contient 0). Ecrire une fonction qui permet de transformer ce mode de stockage en un simple tableau de nombres de connexions mensuelles.

fonction transfert (na : entier, nbrCnx3 : tableau entier [0..na-1, 0..11, 0..30]) : tableau entier [0..na*12-1]
début
pour i de 0 à na-1 faire
pour j de 0 à 11 faire
nbrCnx[12*i + 11-j] <- 0
pour k de 0 à 30 faire
nbrCnx [12*i + 11-j] <- nbrCnx[12*i + 11-j] + nbrCnx3[i,j,k]
fpour
fpour
fpour
retourne nbrCnx
fin

Exercice 8 : Tri par sélection croisée
Décrire la fonction triCroissantSelectionCroisée qui réalise le tri du tableau par sélection du minimum et du maximum. On parcourt le tableau pour repérer à la fois son maximum et son minimum, puis on échange ces 2 valeurs avec respectivement la première et la dernière non encore triées. En itérant ce procédé (n-1)/2 fois pour un tableau de dimension n, on obtient un tableau trié. Attention : si l'élément maximum courant se trouve dans la première case encore non triée, et si cette case est d'abord permutée avec cell qui contient l'élément minimal courant, alors l'élément maximal se retrouve dans la case qui contenait l'élément minimal !

fonction triCroissantCroisé (n : entier, t InOut : tableau entier [O..n-1])
début
pour i de 0 à n÷2 -1 faire
min <- t[i]
indicemin <- i
max <- t[i]
indicemax <- i
pour j de i+1 à n-1-i
si t[j] < min alors
min <- t[j]
indicemin <- j
fsi
si t[j] > max alors
max <- t[j]
indicemax <- j
fsi
fpour
permuter t[i], t[indicemin]
si i = indicemax alors permuter t[n-1-i], t[indicemin]
sinon
permuter t[n-1-i], t[indicemax]
fsi
fpour
fin

Exercice 9 : tri bulle
Décrire la fonction triCroissantBulle. On parcourt le tableau en échangeant 2 cases consécutives mal ordonnées. On répète ce procédé tant que le tableau n'est pas trié.

fonction triCroissantBulle (n : entier, t InOut : tableau entier [O.. n-1])
début
i <- 0
changement <- vrai
tant que changement faire
changement <- faux
pour j de 1 à n-1-i faire
si t[j-1] > t[j] alors
tmp <- t[j]
t[j] <- t[j-1]
t[j-1] <- tmp
changement <- vrai
fsi
fpour
i <- i + 1
ftant
fin

Exercice 10 : fusion de tableaux triés
Décrire la fonction fusionTabTriésCroissant qui réalise la fusion de deux tableaux déjà triés par ordre croissant et retourne le tableau résultat.

fonction fusionTriésCroissant (n1 : entier, t1 : tableau entier [0..n1-1], n2 : entier, t2 : tableau entier [0..n2-1]) : tableau entier [0..n1+n2 - 1]
début
i <- 0
j <- 0
k <- 0
tant que i < n1 et j < n2 faire
si t1[i] < t2[j] alors
res[k] <- t1[i]
i <- i + 1
sinon
res[k] <- t2[j]
j <- j + 1
fsi
k <- k + 1
ftant
pour r de i à n1 - 1 faire
res[k] <- t1[r]
k <- k + 1
fpour
pour r de j à n2-1 faire
res[k] <- t2[r]
k <- k + 1
fpour
retourne res
fin

4 Chaînes de caractères

Exercice 1
On donne une chaîne de caractères. On demande de vérifier si la sous-chaîne comprise entre les indices a et b est un palindrome (chaîne de caractères qui se lit dans les 2 sens). Ecrire l'algorithme de la fonction permettant de résoudre ce problème.

fonction palindrome (a,b : entier, mot : chaîne) : booléen
début
palindrome <- vrai
tantque (a < b et palindrome) faire
caract1 <- ieme (mot, compt1)
caract2 <- ieme (mot, compt2)
si caract1=caract2 alors
a <- a+1
b <- b-1
sinon
palindrome <- faux
fsi
ftant
retourne palindrome
fin

Exercice 2
Ecrire une fonction donnant la représentation binaire d'un entier strictement positif sous la forme d'une chaîne de caractères.

fonction binaire (nb : entier) : chaîne
début
reste <- nb
ch <- ' '
tantque reste # 0 faire
si (reste mod 2) = 0 alors
x <- "0"
sinon x <- "1"
fsi
ch <- concat (x,ch)
reste <- reste ÷ 2
ftant
retourne (ch)
fin

Exercice 3
Ecrire une fonction qui calcule le nombre d'occurences d'un caractère dans une chaîne de caractères.

fonction occurence (a : caractère, mot : chaîne) : entier
début
b <- longueur (mot)
compt <- 0
pour i de 1 à b faire
c <- ieme (mot, i)
si c = a alors
compt <- compt +1
fsi
fpour
retourne (compt)
fin

Exercice 4
Ecrire une fonction qui permet d'inverser une chaîne de caractères.

fonction inverser (mot InOut : chaîne)
début
lg <- longueur (mot)
i <- 1
j <- lg
tantque i < j faire
caradeb <- ieme (mot, i)
carafin <- ieme (mot, j)
remplace (mot, i, carafin)
remplace (mot, j, caradeb)
i <- i + 1
j <- j - 1
ftant
fin

dimanche 28 octobre 2007

Itérations

(Les propositions aux exercices qui suivent ont été compilées et testées mais comportent certainement des erreurs. Elles sont donc amenées à être modifiées dans les jours qui viennent.)

Pour chacune des classes à concevoir dans les exercices ci-dessous, vous écrirez un programme de test indépendant. Il sera peut-être nécessaire de prévoir des constructeurs et/ou des méthodes supplémentaires pour les affichages.

Exercice 1

On souhaite établir des statistiques à partir de relevés de températures mensuels. On choisit de définir une classe ReleveTemperatures avec les attributs min, max, moy et mois qui indiquent respectivement la température minimale, maximale, moyenne du relevé et le mois durant lequel ce relevé a été effectué.

Question 1 : Programmer la méthode de saisie d'un mois. cette méthode demande à l'utilisateur de saisir un numéro de mois et le prévient si le nombre est inférieur à 1 ou supérieur à 12 et lui demande alors d'entrer à nouveau une valeur. Cette demande est répétée tant que l'entrée est incorrecte.

Question 2 : Programmer la méthode de saisie du relevé. Elle lit le mois, le nombre de températures relevées puis les différentes valeurs du relevé pour en déduire le minimum, le maximum et la moyenne.

Proposition au format txt

Exercice 2

Considérons la classe NombreEntier ayant comme attribut un entier valeur. Programmer les méthodes permettant de répondre à chacune des questions suivantes.

Question 1 : Donner la représentation binaire d'un nombre de la classe NombreEntier sous la forme d'une chaîne de caractères.

Question 2 : Calculer le produit de deux nombres de la classe NombreEntier de valeur positive, sans faire appel à l'opérateur de multiplication.

Question 3 : Calculer le quotient q de la division euclidienne de a par b, où a et b sont deux nombres de la classe NombreEntier strictement positifs, en utilisant uniquement les opérateurs d'addition et de soustraction.

Question 4 : L'algorithme de multiplication utilisé dans la question 2 procède par sommes successives. Le produit x*y consiste à sommer y fois la valeur de x. Toutefois, on peut améliorer cet algorithme rudimentaire en multipliant x par deux et en divisant y par deux chaque fois que la valeur de y est paire. Les opérations de multiplication et de division par deux sont des opérations très efficaces puisqu'elles consistent à décaler un bit vers la gauche ou vers la droite. Réaliser ce calcul rapide de produit.

Proposition au format txt

Remarque

Tous les algorithmes permettant de répondre à ces questions ont été écrits dans le module d'"algo". Il s'agit ici simplement de les traduire. Voir ici.

samedi 27 octobre 2007

3 Compléments sur les fonctions

Exercice 1
Décrire un algorithme qui permet de calculer et d'imprimer le carré maximum de 10 réels saisis au clavier (en utilisant une fonction qui retourne le maximum de 2 réels).

Algorithme
début
nombre <-lire
carrenombre <- nombre * nombre
pour i de 2 à 10 faire
nombre <- lire ()
maximum <- calculerMax2reels (nombre*nombre, maximum)
fpour
écrire (maximum)
fin

Exercice 2
Décrire un algorithme qui permet de calculer et d'imprimer la somme de 10 réels saisis au clavier, après seuillage de chacun d'eux dans les bornes d'un intervalle donné.

Algorithme
début
somme <- 0
inf <- lire ()
max <- lire ()
pour i de 1 à 10 faire
nombre <- lire
seuillerReel (inf, sup, nombre)
somme <- somme + nombre
fpour
écrire (somme)
fin

fonction seuillerReel (inf: réel, sup: x InOut : réel)
début
si x< inf
alors x <- inf
sinon si x > sup
alors x <- sup
fsi
fsi
fin


Exercice 3
Afin d'augmenter les ventes de son supermarché, le gérant a décidé de faire la promotion suivante : pour tout achat supérieur à 100 euros, il offre au client l'article le moins cher et une réduction de 10 % sur l'article le plus cher parmi ses achats.

On vous demande d'écrire un algorithme qui permet d'afficher :
- le total à payer avant les réductions,
- le prix de l'article le moins cher,
- le prix de l'article le plus cher,
- le total à payer après avoir tenu compte des réductions,
- le gain réalisé par le client grâce à ces réductions.
On lit les prix des articles, la valeur 0 marque la fin de la saisie. Vous écrirez et utiliserez deux fonctions, l'une qui retourne le minimum de 2 réels et l'autre le maximum de 2 réels.

Algorithme
début
prix <- lire ()
min <- prix
max <- prix
total <- prix
prix <- lire ()
tant que prix # 0 faire
total <- total + prix
min <- minimum (min, prix)
max <- maximum (max, prix)
prix <- lire()
ftant
si total > max et total > 100
alors reduction <- min + max*0,10
sinon reduction <- 0
fsi
écrire ("...", total)
écrire ("...", min)
écrire ("...", max)
écrire ("...", total - reduction)
écrire ("...", reduction)
fin

fonction minimum (x : réel, y : réel): réel
début
si x > y alors
res <- y
sinon
res <- x
fsi
retourne res
fin

La micro revue de presse

La micro revue de presse sélectionne un seul événement dans trois journaux différents (national, régional, sportif...) et vise à comparer les articles, à les confronter et à mettre en évidence les similitudes et les divergences.

La liberté de la presse est l'un des principes fondamentaux des systèmes démocratiques qui repose sur la liberté d'opinion, la liberté mentale et d'expression.

Article 11 de la Déclaration des Droits de l'Homme et du Citoyen de 1789 (déclaration française) : La libre communication des pensées et des opinions est un des droits les plus précieux de l'Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre à l'abus de cette liberté dans les cas déterminés par la Loi.

En France, les journaux bénéficient de la liberté de la presse et peuvent en conséquence rapporter des faits tout en exprimant librement des idées politiques différentes. Ces idées n'entrent généralement pas en conflit avec celles du ou des propriétaires des journaux en question même si les journalistes/éditorialistes s'expriment librement.
Ainsi il est utile de savoir que Le Figaro appartient à Serge Dassault (sénateur UMP, concepteur et producteur de l'avion militaire Dassault Rafale, entre autres activités), que Libération (fondé par Jean-Paul Sartre) a aujourd'hui pour principal actionnaire le baron Edouard de Rothschild, ami de Nicolas Sarkozy et fondateur d'une banque d'affaires, que le journal Les Echos est sur le point d'être racheté par Bernard Arnault, plus grosse fortune de France et accessoirement témoin du mariage de Nicolas Sarkozy et que L'Humanité, journal communiste fondé par Jean Jaurès voit, fait anecdotique mais amusant, un cinquième de son capital appartenir à la Société Humanité investissement pluralisme, dans laquelle on retrouve Hachette, TF1 via sa filiale Syalis et la Caisse d'épargne.
On constate également une érosion du lectorat de la presse quotidienne. La diversité actuelle de l'offre en termes de diffusion d'informations (Tv, radio, Internet) est certainement la principale cause de cette évolution.

Dans cet exercice, il me semble important de ne pas trop insister sur les tendances politiques des différents journaux mais plutôt de faire ressentir celles-ci dans les observations et les comparaisons que vous ferez entre les articles des dits journaux. Autre point, l'absence de traitement d'une information est également une information.
Voici à présent la micro revue de presse présentée vendredi 19 octobre.

Veille de grève nationale

Nicolas :
Comment le sujet de la grève du 18 octobre a-t-il-été traité dans les journaux parus le 17 octobre ?
En effet, à la veille d'un pareil événement, les rédactions se doivent de préparer le terrain, d'exprimer les inquiétudes des uns et des autres tout en donnant la parole aux différents acteurs. Voici en tout cas un fait de société majeur puisqu'il nous concerne tous à une échelle ou à une autre.

Mathieu :
Cela, les journaux ne l'ignorent pas. Que ce soit l'Humanité, les Echos, le Figaro ou encore l'Est Republicain, tous ces quotidiens ont évoqué dans leur édition du 17 octobre le rendez-vous du lendemain. On peut également constater qu'ils mettent en oeuvre les moyens qui s'imposent pour relayer l'opinion, dire clairement ce que pensent les français à quelques heures d'un tel rendez-vous. Ainsi pour l'Humanité, la tendance est nette: « 54% des Français soutiennent la grève !». Le titre, qui n'est accompagné d'aucune illustration, prend quand même ¼ de la Une.

Nicolas :
Pour le quotidien le Figaro, il n'y a pas non plus d'ambiguïté : « Une large majorité des français sont contre la grève ». C'est en tout cas le gros titre qu'on retrouve à la Une du journal, qui précise par ailleurs que 55 % trouvent le mouvement de grève injustifié.

Mathieu :
On pourrait appeler ça la magie des sondages. En revanche, l'Est Republicain préfère visiblement le pragmatisme aux sondages d'opinion : on ne trouve en première page du quotidien régional qu'un unique encart de quelques lignes consacré à ce sujet d'actualité : on y apprend que seulement 46 TGV sur 700 doivent circuler le jour de la grève sur les voies ferrées du réseau français. On ne retrouve à l'intérieur du journal qu'un court article donnant des précisions sur les perturbations prévues au niveau régional.

Nicolas :
Toujours le 17 octobre, Les Echos, le Quotidien de l'économie consacre une partie plus conséquente de sa une à l'événement : un quart de page est utilisé pour nous annoncer que « l'épreuve de force commence ». Le journal parle bien sûr de la mobilisation autour de la réforme des régimes spéciaux de retraite.

Mathieu :
Une mobilisation dont on ne sous-estime visiblement pas l'importance puisque le ministre du travail lui-même a été le premier dimanche soir à la prévoir. Claude Cabanes, rapporte dans l'éditorial de l'Humanité les propos tenus par Xavier Bertrand : « Cette grève sera forte, ce mouvement sera très fort, il ne devrait quasiment pas y avoir de bus, de train ou de métro ». Pour le journaliste, le message est clair : « le 18 octobre et ses prolongements pourraient offrir l'occasion à Mr Sarkozy d'apparaître pour ce qu'il rêve d'être : le briseur du mouvement social français : Thatcher en pantalon. »
Dans un autre article signé Dominique Bègles, on s'étonne de voir un pouvoir en place faire la promotion d'un mouvement social contre ses projets. Une question est également posée : « Le gouvernement souhaiterait-il un conflit qui dure pour mieux asseoir la pédagogie de l'inutilité des luttes, l'idéologie du 'on ne peut pas faire autrement' ?»

Nicolas :
Autre editorial et autre point de vue dans le Figaro : Paul-Henri du Limbert parle d'un moment de vérité pour les retraites. Selon lui, le problème des régimes spéciaux, c'est qu'ils sont devenus un peu trop spéciaux. Désormais, leur singularité choque, et c'est l'un des atouts du gouvernement. Il ajoute : le résultat des scrutins du printemps montre que les Français ont été sensibles à ce langage de vérité. Paul-Henri du Limbert a également une idée sur la façon dont doit se comporter le président de la République. « Il est », je cite, « dans l'obligation de passer l'obstacle : renoncer en chemin ruinerait le concept de rupture si âprement défendu pendant la campagne électorale. En revanche, s'il franchit l'écueil, le symbole sera spectaculaire. Il aura prouvé que la France n'est pas ce vieux pays rétif, spectateur de lui-même, et qui a fait du renoncement une règle de vie. »

Globalement, le mouvement social n'a pas bonne presse dans le Figaro puisque le journal insiste en page économie sur le caractère impopulaire de cette grève massive. Une nouvelle fois, la rédaction fait référence au sondage BVA réalisé pour le Figaro et LCI pour rappeler que les français soutiennent nettement le projet de loi du gouvernement et désapprouvent la grève. Une page plus loin, le journaliste Philippe Goulliaud enfonce le clou. Il rappelle qu'une majorité de français estime que la grève n'est pas justifiée. Selon lui, c'est une bonne nouvelle pour le gouvernement, qui est par ailleurs jugé plus moderne et plus proche des préoccupations que les syndicats. Un sondage très détaillé développé sur une demi-page vient étayer ces propos. Petite précision: celui-ci a été réalisé les 12 et 13 Octobre par téléphone sur un échantillon représentatif de 959 personnes.

Mathieu :
Le sondage de l'Humanité est un peu plus ancien puisqu'il a été réalisé le 10 octobre.. En revanche, il concerne un échantillon un peu plus important puisque 1003 personnes âgées de 18ans et plus ont été interrogées par téléphone. Dans ce quotidien, on constate une abondance d'articles et de point de vue sur le sujet: le côté humain de l'évènement est mis en avant. En page 3, le titre est éloquent: « Pourquoi participeront-ils, demain, à la journée de mobilisation? » Paule Masson et Dany Stive ont recueilli les témoignages de plusieurs personnes appartenant à de grands groupes français (EDF, LaPoste, L'Education Nationale et la SNCF):

Citons un agent d'EDF qui se pose cette question: « Bosser jusqu'à 45 ans? et plus? » et constate pour appuyer ses inquiétudes que « [...]les tests ADN n'étaient pas au programme... »
Autre témoignage : un professeur de mathématique (L'Education Nationale) analyse que « Le gouvernement cherche à aligner tous les systèmes de retraite au plus bas niveau, et de pousser à la retraite par capitalisation. » et s'interroge sur « l'avenir de l'école en question. »
Enfin, un agent de la SNCF énonce ses craintes en déclarant que « les attaques gouvernementales mettent en avant les retraites mais c'est l'ensemble du contrat social qui est remis en cause... »

Nicolas :
Autre aspect développé : le choix à faire dans l'avenir en matière de transport. La journaliste Laurence Chavance présente dans Le Figaro la région parisienne comme un champ de bataille entre opposants et partisans de la voiture : On apprend ainsi que les grandes entreprises et l'Etat s'opposent au Conseil Régional de l'Ile de France qui mise sur les transports en commun dans les 25 prochaines années. Laurence Chavance nourrit alors cette réflexion : Les franciliens qui seront condamnés jeudi à la marche à pied mais les autres jours aux bus, metros et RER saturés auront jeudi tout loisir pour réfléchir aux modes de déplacement des années à venir.
Le journal nous apprend ensuite que pour les grandes entreprises, la réflexion est déjà bien avancée. Si les transports en commun doivent être développés, c'est sans s'opposer à la voiture car ces deux modes de transport ne sont pas interchangeables.

Mathieu :
On s'intéresse un peu plus aux acteurs de la grève dans les Echos. Ainsi l'article de Lucile Chevallard et Lucie Robequain nous les présente en détail en donnant leurs revendications aux vues des principales réformes sociales du moment :
l'ANPE et sa fusion avec les impôts, la suppression d'emploi dans l'éducation nationale, la modération salariale à la Poste, le système de retraite pour les régimes spéciaux... Nombreux sont les secteurs touchés par cette grève annoncée de 24 heures. En attentant donc de négocier avec le gouvernement...

Nicolas :
Dans le Figaro Fabrice Amadeo revient lui sur le service minimum. La loi qui l'instaure n'entrera en vigueur que le 1er janvier 2008. Le journaliste se demande alors ce qui aurait changé si la loi avait été appliquée jeudi. Hé bien pas grand chose en fait... car le texte voté ne contraint pas les entreprises à instaurer un service minimum. La loi oblige seulement les syndicats à négocier avec la direction de leur entreprise avant de déposer leur préavis de grève.

Mathieu :
En attendant, rien ne semble pouvoir empêcher un jeudi noir. Cette expression est reprise à l'intérieur du journal Les Echos qui rappelle que les cheminots et les électriciens promettent une grève massive avec à la clé des TGV et des transports publics paralysés. Le journal n'oublie pas que la mobilisation touche aussi d'autres services publics et le fameux « Jeudi noir » pourrait influer sur d'autres pans de l'économie française, certains salariés du privé comme du public se joignant au mouvement pour exprimer leurs inquiétudes ou bien posant un jour de RTT pour éviter les conséquences de la grève.

Nicolas :
En définitive, on peut dire que les journaux parus le 17 Octobre remplissent leurs cahiers des charges respectifs. L'humanité traite l'événement sur le registre social, idéologique, voire philosophique. les Echos s'attachent à développer les conséquences économiques d'une telle mobilisation, nombreux chiffres à l'appui. l'Est Republicain joue son rôle de proximité en n'abordant le blocage que sous un angle pragmatique et en donnant des pistes aux lecteurs pour qu'ils ne perdent pas leur temps le lendemain à attendre des transports en commun non assurés. Enfin, le Figaro, développe dans ses articles un argumentaire soutenant les actions du gouvernement.

Alors depuis, la grève a eu lieu et comme annoncé, jeudi a été une journée noire dans les transports un peu partout en France. D'ailleurs, celle-ci a été reconduite et l'on peut noter de nombreuses perturbations ce vendredi. Mais surtout, cet événement aux conséquences lourdes pour de nombreux français a été légèrement éclipsé dans les média par le divorce de Nicolas et Cecilia Sarkozy. Alors que le Président de la République est confronté à son premier rendez-vous de la rue, les rédactions se focalisent sur cette séparation qui relève de la sphère privée. Néanmoins, notons tout de même que Le Figaro titre encore aujourd'hui à la une que « 67 % des Français souhaitent que le gouvernement ne cède pas ».
Tandis que l'Humanité annonce, photo de manifestation à l'appui : « REFORME DES RETRAITES: UN REJET FRANC ET
MASSIF. » En définitive, restez vigilants.

Requêtes SQL

Requêtes faites le 27/10/2007

Commandes de base

SELECT last_name, salary
FROM employees
WHERE salary BETWEEN 2500 AND 3500;
--------------------------------------
SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN (100,101, 201);
--------------------------------------
SELECT *
FROM employees
WHERE first_name LIKE 'S%'; (prénoms qui commencent par S majuscule)
--------------------------------------
SELECT *
FROM employees
WHERE salary>1500 AND first_name LIKE '%a'; (prénoms qui finissent par a minuscule)
--------------------------------------
SELECT last_name, manager_id
FROM employees
WHERE manager_id IS NULL;
--------------------------------------
SELECT *
FROM employees
WHERE salary >= 10000
OR job_id LIKE '%man';
--------------------------------------
SELECT last_name, job_id
FROM employees
WHERE job_id
NOT IN ('it prog', 'ST_CLERK', 'SA_REP');
--------------------------------------
SELECT last_name, job_id
FROM employees
ORDER BY hire_date; (derniere commande de notre requête) (asc par défaut)
---------------------------------------
SELECT last_name, job_id
FROM employees
ORDER BY hire_date desc; (tri de façon décroissante)
---------------------------------------
Exercice
Afficher le salaire annuel des employés et ce salaire annuel s'il est augmenté de 10%.

SELECT last_name, salary, salary*12 AS "salaire_annuel", ((salary*12)/10)+salary*12 AS "augment_10pc"
FROM employees
WHERE (salary*12*1.1)>250000
ORDER BY salary desc;
--------------------------------------
SELECT last_name, salary, salary*12 AS "annsal", ((salary*12)/10)+salary*12 AS "augment_10pc"
FROM employees
WHERE (salary*12*1.1)>250000
ORDER BY "annsal";
-------------------------------------
SELECT last_name, salary, salary*12 annsal, ((salary*12)/10)+salary*12 augment_10pc
FROM employees
WHERE (salary*12*1.1)>250000
ORDER BY annsal;
-----------------------------------

Utilisation des fonctions monoligne afin de personnaliser la sortie
Les fonctions monoligne renvoient un résultat pour une ligne donnée.
Fonctions sur les dates (conversion entre le format char et le format date)

Fonctions de manipulation de la casse :
- LOWER (transforme toute la chaîne dans la cellule en minuscules)
- UPPER (transforme toute la chaîne dans la cellule en majuscules)
- INITCAP (transforme la première lettre dans la cellule en majuscules)

Fonctions de manipulation de caractères
- CONCAT
- SUBSTR
- LENGTH
- INSTR
- LPAD | RPAD (left pad | right pad : remonte la chaîne soit en partant de la gauche soit en partant de la droite)
- TRIM
- REPLACE

SELECT employee_id, last_name, department_id
FROM employees
WHERE Lower (last_name) = 'higgins'; (Affiche : 205 | Higgins | 110)

Fonction - Résultat
CONCAT('Hello', 'World') - HelloWorld
SUBSTR('HelloWorld',1,5) - Hello
LENGTH('HelloWorld') - 10
INSTR ('HelloWorld', 'W') - 6
LPAD(salary, 10, '*' ) - *****24000
RPAD(salary,10, '*' ) - 24000*****
REPLACE ('JACK and JUE', 'J', 'BL') - BLACK and BLUE
TRIM('H' FROM 'HelloWorld') - elloWorld

Exercice
Remonter les employés dont le nom contient a et dont la taille du prénom est supérieur à 5.

SELECT first_name, last_name, Length (first_name)
FROM employees
WHERE Length (first_name)>5 AND last_name LIKE '%a%' ;

Fonction - Résultat
ROUND(45.926, 2) - 45.93
TRUNC(45.926, 2) - 45.92
MOD(1600,300) - 100 (modulo)

SELECT Round (45.923,2), Round(45.923), Round (45.923, -1)
FROM dual;

Les dates

Le format de date par défaut est DD-MON-RR
SYSDATE est une fonction qui renvoie :
- La date
- L'heure

SELECT last_name, (SYSDATE-hire_date)/7 AS WEEKS
FROM employees
WHERE department_id = 90;

MONTHS_BETWEEN
ADD_MONTHS ('11-JAN-94', 6) - '11-JUL-94'
NEXT_DAY
LAST_DAY - Dernier jour du mois
ROUND - Date arrondie
TRUNC - Date tronquée
TRUNC (SYSDATE, 'YEAR')

Fonctions de conversion

Conversion de type de données
-> Conversion implicite de type de données
-> conversion explicite de type de données

NUMBER > T0_CHAR > CHARACTER
CHARACTER > TO_NUMBER > NUMBER
CHARACTER > TO_DATE > DATE
DATE > TO_CHAR > CHARACTER

SELECT last_name,
To_Char(hire_date, 'DD Month YYYY')
AS HIREDATE
FROM employees

Exercice
Affichez votre date de naissance. Ex : 3 Janvier 1987 (03/01/1987)

SELECT TO_DATE ('03011987','DD MM YYYY')
from dual

Depuis combien de jours êtes vous nés ?

SELECT SYSDATE - TO_DATE ('03011987','DD MM YYYY')
from dual

Quel jour êtes-vous né ?

SELECT To_Char (TO_DATE ('03011987','DD MM YYYY'), 'day')
from dual

Exercice
On décide de donner aux employés 1,10 € de prime par jour d'ancienneté. Lister combien on doit donner à chaque employé, en commençant par l'employé le plus ancien.

SELECT first_name, last_name, hire_date, Round(SYSDATE - hire_date, 2) AS anciennete, Round((SYSDATE - hire_date)*1.1, 2) AS prime
FROM employees
ORDER BY hire_date

vendredi 26 octobre 2007

2 Itérations

(histoire de nous rappeler que là encore c'était très facile)

Exercice 1 (boucle pour, somme)
Ecrire l'algorithme de la fonction qui calcule le produit de deux nombres entiers positifs sans faire appel à l'opérateur de multiplication.

fonction calculProdParAdd (nb1 : entier, nb2 : entier) : entier
début
somme <- 0
pour i de 1 à nb2 faire
somme <- somme + nb1
fpour
retourne somme
fin

Exercice 2 (boucle pour, somme, minimum, maximum)
On souhaite établir des statistiques à partir de relevés de températures mensuels. Ecrire un algorithme qui permet de lire le nombre de températures puis les différentes valeurs du relevés et d'imprimer le minimum, le maximum et la moyenne de ces valeurs.

Algorithme
début
écrire («nombre de températures ?»)
nbt <- lire ()
écrire (« entrer température »)
max <- lire ()
min <- max
somme <- 0
pour i de 2 à nbt faire
écrire (« entrer température »)
t <- lire()
si t > max alors
max <- t
sinon si t < min alors
min <- t
fsi
somme <- somme + t
fpour
moy <- somme/nbt
écrire (max)
écrire (min)
écrire (moy)
fin

Exercice 3 (boucle tant que)
Ecrire l'algorithme d'une fonction de saisie d'un mois. On demande à l'utilisateur de saisir un numéro de mois compris entre 1 et 12. On le prévient si le nombre est <1>12 et on lui demande alors d'entrer à nouveau une valeur. Cette demande est répétée tant que l'entrée est incorrecte.

Fonction saisieMois (mois : entier) : entier
début
mois <- lire ()
tant que (mois>12 ou mois<1) alors
écrire (« entrer valeur correcte »)
mois <- lire ()
ftantque
retourne mois
fin

Exercice 4 (boucle tant que)
Ecrire l'algorithme de la fonction qui calcule le quotient q de la division euclidienne de a par b, où a et b sont deux entiers strictement positifs, en utilisant uniquement les opérateurs d'addition et de soustraction.
Rappel : a = b * q + r et r est inférieur à b où r est le reste.

fonction calQuotient (a : entier, b : entier) : entier
début
q <- 0
x <- a
tant que x>=b faire
x <- x – b
q <- q + 1
ftant
retourne q
fin

Exercice 5 (boucle tant que)
Ecrire l'algorithme de la fonction qui compte le nombre de 1 présents dans la représentation binaire d'un nombre entier strictement positif donné.

fonction nbUnRepresBinaire (x : entier) : entier
début
compteur <- 0
tant que nombre > 0 faire
r <- nombre mod 2
si r=1 alors
compteur <- compteur +1
fsi
nombre <- nombre ÷ 2
ftant
retourne compteur
fin

Exercice 6 (boucle tant que, terminaison de type "bascule exclue")
Des skieurs font la queue à un téléphérique qui peut contenir jusqu'à 5 tonnes. On donne les noms et poids (en kg) des skieurs successifs entrant dans le téléphérique. Donnez le nom du dernier skieur admis.

Algorithme
début
poidstotal <- 0
nomskieur <- " "
tant que poidstotal =< 5000
faire nomskieurprec <- nomskieur
nomskieur <- lire ()
poidsskieur <- lire ()
poidstotal <- poidstotal + poidsskieur
ftant écrire (nomskieurprec)
fin

Exercice 7 (boucles imbriquées)
A l'issue d'un concours, on souhaite éditer, pour chaque candidat, son nom et sa moyenne puis la moyenne de tous les candidats. On donne le nombre de candidats puis, pour chaque candidat, son nom suivi de ses 10 notes.

Algorithme
début
nbcandidats <- lire ()
moyenne <- 0
moyennetous <- 0
nbnotes <- 10
smoyenne <- 0
pour i de 1 à nbcandidats faire
nomcandidat <- lire ()
somme <- 0
pour j de 1 à nbnotes faire
note <- lire ()
somme <- somme + note
fpour
moyenne <- somme / nbnotes
écrire (nomcandidat, moyenne)
smoyenne <- smoyenne + moyenne
fpour
moyennetous <- smoyenne / nbcandidats
écrire (moyennetous)
fin

Exercice 8 (boucles imbriquées)
Calculer la moyenne d'âge des n enfants d'un centre aéré (n donnée). La saisie est contrôlée; chaque enfant a un âge compris entre 6 et 14.

Algorithme
début
age_moyen <- 0
n_enfants <- lire ()
pour i de 1 à n_enfants faire
age_enfant <- lire ()
tant que age_enfant < 6 ou ou age_enfant sup 14 faire
écrire ("entrer un âge entre 6 et 14")
age_enfant <- lire ()
ftant
age_moyen <- age_moyen + age_enfant
fpour
age_moyen <- age_moyen ÷ n_enfants
écrire (age_moyen)
fin

Exercice 9 (boucles imbriquées)
L'algorithme de multiplication de l'exercice 1 procède par sommes successives. Le produit X*y consiste à sommer y fois la valeur de x. toutefois, on peut améliorer cet algorithme rudimentaire en multipliant x par deux et en divisant y par deux chaque fois que la valeur de y est paire. Les opérations de multiplication et de division par deux sont des opérations très efficaces puisqu'elles consistent à décaler un bit vers la gauche ou vers la droite.

fonction calculerProduit (x:entier, y:entier) : entier
début
v1 <- x
v2 <- y
produit <- 0
tantque v2 > 0 faire
tantque (v2 mod 2) = 0 faire
v2 <- v2 ÷ 2
v1 <- v1 * 2
ftant
produit <- produit + v1
v2 <- v2 - 1
retourne produit
fin

mardi 23 octobre 2007

1 Instructions et types élémentaires

(histoire de nous rappeler à quel point c'était simple au début)

Exercice 1 (affectations, lecture/écriture)
Ecrire un algorithme qui lit deux entiers au clavier et affiche leur somme et leur produit.

Algorithme
début
x <- lire ()
y <- lire ()
somme <- x+y
produit <- x*y
écrire (somme, produit)
fin

Exercice 2 (affectations, lecture/écriture)

On donne le nombre de kilomètres parcourus par une automobile ainsi que la durée du parcours et le nombre de litres d'essence consommé. On demande de calculer la vitesse moyenne et la consommation au kilomètre.

Algorithme
début
km <- lire ()
consoessence <- lire ()
durée <- lire ()
vitesse <- km/durée
conso_km <- consoessence/km
écrire (vitesse, conso_km)
fin

Exercice 3 (fonction simple)

Ecrire une fonction calculant le périmètre d'un cercle de rayon donné.

fonction perimetreCercle (Rayon : réel) : réel
début
p <- 2*3.14*rayon
retourne p
fin

Exercice 4 (conditionnelle et fonction)
Ecrire une fonction donnant le maximum de 2 entiers.

fonction maxDeuxEntiers (x : entier, y : entier) : entier
début
si x > y alors
maximum <- x
sinon
maximum <- y
fsi
retourne maximum
fin

Exercice 5 (fonction et booléens)

Ecrire une fonction qui, selon l'état ouvert ou fermé des 6 interrupteurs notés i1, i2, ... , i6, indique si le courant arrive à la lampe. Le point de départ est toujours alimenté en électricité. Le schéma du circuit est le suivant : (départ > i2 > i6 > lampe) (départ > i1 > i3 > i4 > lampe) (départ > i1 > i5 > lampe).

fonction etatLampe (i1: booléen, i2 : booléen, i3 : booléen, i4 : booléen, i5 : booléen, i6 : booléen) : booléen
début
allumé <- ((i1) et ((i3 et i4) ou i5 )) ou (i2 et i6)
retourne allumé
fin

Exercice 6 (conditionnelles imbriquées)

Ecrire l'agorithme qui permet de saisir des coordonnées (x,y) et d'imprimer le secteur du plan dans lequel le point se situe. Le plan est divisé en quatre secteurs qui sont Nord-Est, Sud-Est, Sud-Ouest, et Nord-Ouest.

Algorithme
début
x <- lire () y <- lire () si x>0 alors
si y>0 alors
écrire "Nord-Est"
sinon écrire "Sud-Est"
fsi
sinon
si y>0 alors
écrire "Nord-Ouest"
sinon écrire "Sud-Ouest"
fsi
fsi
fin

Exercice 7 (conditionnelles imbriquées)
Ecrire un algorithme qui permet d'imprimer l'acidité d'une substance à partir du pH et des règles ci-dessous :
si le pH>7 alors
- si le pH<12>alcaline,
- sinon elle est très alcaline.
si le pH=<7>
- si le pH=7 alors la substance est neutre,
- si le pH>2 alors la substance est acide,
- sinon elle est très acide.

Algorithme
début
ph <- lire ()
si ph>7 alors
si ph<12 alors
écrire "alcaline"
sinon écrire "très alcaline"
fsi
sinon
si ph=7 alors
écrire "neutre"
sinon
si ph>2 alors
écrire "acide"
sinon écrire "très acide"
fsi
fsi
fsi
fin

Anglais : Mots et expressions

Expressions autour de la prise de décision (making a choice)
- I'll go for Linux
- I'll pick
- I'll choose Vista over Linux
- I'll plump for Nancy
- I'll take my pick
- To take / put an option on / to take (out) an option on

Expressions autour de la notion de préférence (expressing a preference)
- I prefer
- I'd rather have / I would rather have / buy / ...
- Mac is more up my street than / PC is more up my line than...
- Give me Dell anyday
- I think H.P is better / far and away the best
- Ubuntu is head and shoulders above the rest

Expressions autour de l'idée de conseil (advice)
- I'd advice you to
- You should bear in mind
- Think of the warranty/guarantee
- Think of your budget
- You had better (t'as intérêt)
- If I were you / in your shoes, I wouldn't...
- I'm warning you
- You ought to
- You mustn't let yourself be influenced by the vendor / salesman
- You have to be reasonable
- You can't trust these people
- Don't be stupid
- You must take your time
- You don't have to believe everything

Expressions autour de l'appel téléphonique (how to make a phone call)
- To dial a number
- To press a button
- To compose
- To key in
- To hang up
- To answer the phone
- to take / leave the phone off the hook
- Nicolas speaking (Nicolas à l'appareil)
- Who's calling ?
- Who's speaking ?
- Could / can you connect me to
- Could / can you put me through to
- Can I leave a message ?
- She's already on the line
- One moment please

Expressions diverses
- To get the big picture (visualiser / comprendre l'ensemble après avoir focaliser sur un détail)
- To stay in couch (être à la page)
- Best value for money
- Tailor-made (sur mesure)
- Ready-made (tout fait ?)
- It's a piece of cake
- It's no mean feat (ce n'est pas une mince affaire)
- Nit-picking (pinailler sur des détails)
- To chair (présider)
- To see the point of / in +ing (voir l'intérêt de)
- Jealous (jealous guy)
- Envious (to envy)

lundi 22 octobre 2007

Chapitre 2 : l'Organisation

L'entreprise

Organisation économique réunissant des moyens humains, matériels, immatériels et financiers pour produire des biens ou des services destinés à être vendus sur un marché pour réaliser un profit.

L'entreprise est aussi :
- une entité autonome
- une entité qui modifie son environnement
- une organisation sociale
- un système complexe car ouvert

L'organisation

Groupe de personnes réunies en vue de contribuer à une action, à la réalisation d'un objectif, ou à une communication. Elle est en relation avec des partenaires extérieurs qui forment son environnement (micro-environnement : salariés, fournisseurs | macro-environnement : Union Européenne, organismes internationaux...)
L'organisation a besoin de ressources matérielles / immatérielles / financières / humaines (L'ensemble constitue le patrimoine).

Les fondements des modèles d'organisation

- Ecole classique (1900-1930) : Organisation scientifique du travail / Fayol, Taylor / Contrôle et mesure des tâches
- Ecole des relations humaines (1930-1960) : Motiver l'individu / Mayo, Maslow / Participation des salariés aux décisions
- Ecole sociologique (1960-1970) : Adapter la structure / Crozier / Chaque acteur garde une marche de manoeuvre
- Ecole moderne (1970-...) : Management participatif / Humble, Mintzberg, Drucker / délégation Knowledge

Quelques théories

Ecole classique

- Taylor et l'Organisation Scientifique du Travail :
cet ingénieur a travaillé sur la façon d'augmenter la rentabilité des entreprises (chronométrage, rémunération au rendement).
- Ford et le fordisme : travail à la chaîne et politique des salaires élevés.
- Fayol : l'entreprise est organisée par 5 fonctions (technique, commerciale, sécurité, comptable, administration).
- Weber : Organisation charismatique, organisation traditionnelle, organisation bureaucratique.

Ecole des relations humaines

- La pyramide de Maslow
: besoins physiologiques > de sécurité > d'appartenance > d'estime > d'accomplissement.
- Herzberg et la théorie bifactorielle : facteurs d'hygiène, facteurs de motivation (avancement et promotion, attraction du travail, responsabilité, reconnaissance, achèvement).
- Mac Gregor et la théorie XY : X, l'homme est paresseux. Y, l'homme a la capacité de s'auto-diriger.

Ecole néo-classique

L'entreprise est le moteur principal de la richesse économique.
- Sloan : travail sur la décentralisation.
- Drucker : le profit est lié à l'excellence du management de l'organisation.

Ecole sociologique

- Crozier : analyse de l'entreprise au niveau de l'individu dont le pouvoir s'exerce dans l'organisation.

Les structures de l'entreprise

La structure permet l'organisation de ses activités. Elle est l'ensemble des dispositifs par lesquels une entreprise répartit, coordonne et contrôle ses activités.
Toute structure présente plusieurs variables caractéristiques de l'entreprise :
- le choix d'une division du travail (fonctionnelle/divisionnelle)
- le mode d'exercice du pouvoir et de la décision
- les comportements sociaux des acteurs
Il y a différents types de structure :
- hiérarchique (6 fonctions : technique, comptable, commerciale, financière, sécurité, administrative)
- fonctionnelle (spécialisation du personnel)
- hierarchico-fonctionnelle (staff and line)
- divisionnelle (décentralisation du pouvoir et des décisions)
- matricielle (découpage par fonction et par division)
Le choix d'une structure se fait en fonction de la spécificité de l'entreprise, de son histoire, de sa culture et de sa taille :
- centralisation ou décentralisation (plus grande liberté)
- structure pyramidale (modèle militaire) et structure horizontale (esprit d'équipe)
- structures formelles (organigramme) et informelles (spontanéité)
L'évolution des structures :
- dans le temps
- selon la taille
- en fonction de l'environnement
- en fonction de la stratégie retenue par la direction
Selon la théorie de la contingence de Mintzberg, l'entreprise est soumise à différents facteurs qui influencent sa structure :
- Motivation et comportement des acteurs
- Facteurs de contingence (taille, âge, environnement, technologie, stratégie)

Un centre décisionnaire

Une décision est un acte par lequel un ou des décideurs opèrent un choix entre plusieurs options permettant d'apporter une solution satisfaisante à un problème donné :
- décisions stratégiques
- décisions administratives ou tactiques
- décisions opérationnelles
Le processus interne de prise de décision suit différentes étapes : analyse de l'objectif / collecte de l'information / définition des options possibles / comparaison et évaluation des options / choix d'une option.

L'environnement de l'organisation

L'entreprise doit tenir compte des facteurs :
- géographiques et démographiques
- socioculturels
- juridiques et institutionnels
- technologiques
- concurrentiels
- sociaux
- économiques
L'approche de Porter en terme d'intensité concurrentielle (5 facteurs) :
- risque d'apparition de nouveaux concurrents
- pouvoir de négociation des fournisseurs
- pouvoir de négociation des clients
- existence de biens de substitutions
- structuration du marché qui détermine l'intensité de la concurrence déjà existante

Les finalités du système de production

Finalité première :
- produire un bien économique
Objectifs secondaires :
- Objectif en terme de quantités produites
- Objectif en terme de qualité
- Objectif de coût
- Objectif de délai
- Objectif de flexibilité
- Objectif de management environnemental
La fonction de production se décompose en un certain nombre de services qui ont un rôle soit opérationnel (fabrication, expédition de biens), soit fonctionnel (organisation, contrôle de l'activité de production)

Les différents modes de production

Les critères de sélection d'un mode de production :
- les quantités de biens ou de services devant être produits
- la nature du processus de production
- la nature du type de gestion de la production
- la nature de l'implantation de l'outillage

Les principaux modes de production traditionnels :
- production unitaire (sur mesure / automatisation limitée / production à la commande / Recherche de qualité / ex : bâtiment)
- production par lot (petites séries / équipements productifs programmables / production par l'aval / flux tendus / ex : biens de production)
- production en série (produits standardisés / forte automatisation / production anticipée / recherche d'économie d'échelle mais pas de flexibilité / ex : moteurs)
- production en continu (flux continu / automatisation à tous les stades / production anticipée / économie d'échelle / ex : boisson)

La classification économique des entreprises

Elle se fait selon différents critères :
- en fonction de l'activité (artisanale / commerciale / industrielle / agricole / entreprise de service)
- en fonction du secteur économique (primaire / secondaire / tertiaire / quaternaire)
- en fonction de la taille : TPE, PME, grandes entreprises
- en fonction de la branche et du secteur d'activité (classification INSEE, secteur (ex : automobile) et branche (ex : voitures de compétition))

La classification juridique des entreprises

On distingue 2 catégories d'entreprises :
- privées (individuelles et sociétaires)
- publiques (gérées par l'Etat)
Il existe également :
- les sociétés coopératives
- les associations
- les mutuelles

Utilisation de l'API : les classes String et StringBuffer

Exercice 1

À l'aide de l'API Java, écrire un programme sans boucle qui vérifie si un mot saisi par l'utilisateur est un palindrome (chaîne de caractères qui se lit dans les deux sens, par exemple ''radar'').

import java.util.*;

class Palindrome {
public static void main (String args []){

Scanner scan = new Scanner (System.in);
// L'utilisateur saisit un mot
String s = scan.next();
// Le constructeur StringBuffer construit un objet sb
// de classe StringBuffer correspondant à la chaîne représentée par s
StringBuffer sb = new StringBuffer(s);
// Le constructeur Stringbuffer construit un objet t
// de classe StringBuffer correspondant à la chaîne représentée par s
StringBuffer t = new StringBuffer(s);
// Appel de la méthode reverse : inversion de la chaîne de caractères
// affectée à l'objet t de classe StringBuffer et affection du résultat à la chaîne de caractère v
String v = new String (t.reverse());
// à savoir : "essai".compareTo("essai") vaut : 0
// "essai".compareTo("essais") vaut : -1
// "essais".compareTo("essai") vaut : 1
if (s.compareTo(v) == 0) {
System.out.println ("Palindrome");
}
else {
System.out.println ("Pas un palindrome");
}
}
}


Exercice 2

Jeu à deux joueurs. Le premier joueur tape un mot au clavier. L'ordinateur affiche ce mot en remplaçant par '_' tous les caractères sauf sa première et sa dernière lettre. Le deuxième joueur doit deviner le mot avec ces indications. Il a droit à deux essais. N.B. : le mot le plus long de la langue française comporte 25 lettres.

import java.util.*;

class Pendu {
public static void main (String args []){

Scanner scan = new Scanner (System.in);
// L'utilisateur entre le mot à deviner
String s = scan.next();
// Création d'une chaîne de 25 caractères (25 "_")
// NB : le mot le plus long de la langue française comporte 25 lettres
String s2 = "_________________________";
// Le constructeur Stringbuffer construit un objet sb
// de classe StringBuffer correspondant à la chaîne représentée par s2
StringBuffer sb = new StringBuffer(s2);
//on remplace le premier caractère de l'objet sb par le premier caractère du mot entré par l'utilisateur (si "toto" alors "t")
sb.setCharAt (0, s.charAt(0));
//on remplace le dernier caractère de l'objet sb au niveau de la position du dernier caractère de s par le dernier caractère de s (si "toto alors "o")
sb.setCharAt (s.length()-1, s.charAt(s.length()-1));
//on efface les "_"(début à fin) à partir du caractère suivant le dernier caractère du mot entré par l'utilisateur jusqu'au dernier caractère de l'objet sb
sb.delete (s.length(), sb.length());
System.out.println (sb.toString());
String s3 = scan.next();
//Si la chaîne s3 est la même que la chaîne s, on affiche "bravo"
if (s3.equals(s)){
System.out.println("bravo");
}
else {
System.out.println ("encore un essai");
s3 = scan.next();
if (s3.equals(s)){
System.out.println("Ah quand même ! Bravo.");
}
else {
System.out.println("Desole, le mot a trouver etait"+s);
}
}
}
}

Exercice 3

Ecrire un programme affichant à l'écran la représentation binaire d'un entier strictement positif inférieur ou égal à 7.

import java.util.*;

class Binaire {
public static void main (String args []){
Scanner scan = new Scanner (System.in);
StringBuffer binaire = new StringBuffer ("");
System.out.println ("Choisir un nombre entre 1 et 7");
int entier = scan.nextInt();
while (entier >7 || entier <1) {
System.out.println ("Choisir un nombre ENTRE 1 ET 7");
entier = scan.nextInt ();
}
int res;
while (entier!= 0) {
if ((entier % 2)== 1){
res = 1;
binaire.append(res);
}else if ((entier % 2)==0){
res = 0;
binaire.append(res);
}
entier = entier / 2;
}
binaire.reverse();

System.out.println (binaire.toString());
}
}

-----------
Ces programmes ont été compilés et testés. Ils peuvent néanmoins comporter des erreurs, des lourdeurs ou pire : des idées tordues. N'hésitez pas à écrire un commentaire pour apporter vos corrections.