Télécharger

publicité
P12 Programmation
Qui fait de la programmation
Quels sont les besoins
Repérage des compétences
• Enquête compétences
• Langages spécifiques à des outils :
SAS, STATA, R
• Langages de requête SQL
• Langages de programmation de plus bas
niveau :
• Script : php, perl
• Compilé : C,java, C++
Promouvoir PHP
•
•
•
•
•
•
•
Concision
Répandu
Web
Script
Procédural/objet
Liaison avec SGBD
Editeurs évolués
PHP couteau suisse
• PHP n’est pas seulement un langage dédié au
Web
• Utilisable pour créer des moulinettes de
préparation de données :
– Traitement aisé de fichier texte (expression
régulières)
– Gestion des tableaux mémoire souple :tableau
associatif
– Performant sur le traitement de ce type de fichier
– Connexion facile à une bases de données si besoin
de puissance : jointure
Liaison base de données
[Postgres]
•
connexion au SGBD
$connection_string = "host=$machine port=5432 dbname=cartodyn user=$user password=$password";
$db_pg = pg_connect( $connection_string )
or die("Problème de connexion au serveur POSTGRES ");
•
Soumission d’une requête :
$sql = " select i1, i2 from base.table where i1 = ‘3’ " ;
$resultat = pg_query( $sql, $db ) or die( " Erreur : $sql " );
while( $ligne = pg_fetch_array( $resultat ) )
{
$i1 = $ligne[‘i1’];
$i2 = $ligne[‘i2’];
…..
}
Liaison base de données [MySQL]
•
connexion au SGBD :
$db= mysql_connect( $machine, $user, $password) or
die("problème de connexion au serveur MySQL " . $machine );
•
Soumission d’une requête :
$sql = " select i1, i2 from base.table where i1 = ‘3’ " ;
$resultat = mysql_query( $sql, $db ) or die( " Erreur : $sql " );
while( $ligne = mysql_fetch_array( $resultat ) )
{
$i1 = $ligne[‘i1’];
$i2 = $ligne[‘i2’];
…..
}
Moulinette
•
Exemple lecture d’un fichier et découpage d’une ligne avec des blancs
if( $nomfic == "" ) { echo "Donner un nom de fichier" ; exit ; }
$fp = fopen( $nomfic, "r" ) ;
while( !feof( $fp) )
{
$lu = fgets( $fp, 1000 ) ;
$_lu = preg_replace( ‘’ +)’, ‘ ‘, trim( $lu ) );
$t = explode( ‘ ‘, $_lu );
$n = count( $_t );
//traitement des variables de la ligne contenues dans le tableau $t
…
}
fclose( $fp) ;
•
Utilisation en ligne de commande
\....\php.exe –q pg.php > sortie.txt
Créer une matrice de distances
•
•
<?
//creematxy.php
•
require 'conf0.php';
•
•
$sql
= "select code, centroseglongx, centroseglongy from igncalc.mifze where sousens='' order by code ";
$resultat = mysql_query( $sql, $db) or erreurmysql( $db, "inizonegeo 1 :<br> $sql");
•
$nl = mysql_num_rows( $resultat );
•
•
•
•
•
•
•
while( $ligne = mysql_fetch_array( $resultat ) )
{
$codelu = $ligne[code];
$tabnum[] = $codelu;
$x[$codelu] = $ligne[centroseglongx];
$y[$codelu] = $ligne[centroseglongy];
}
•
$nl = count( $tabnum );
•
•
•
for( $i = 0; $i < $nl; $i++ )
{
$code1 = $tabnum[$i];
•
echo "<br>\r\n $code1 \t";
•
•
•
for( $k = 0; $k < $nl; $k++ )
{
$code2 = $tabnum[$k];
•
echo "\t";
•
•
•
•
$dist = ( $x[$code1] - $x[$code2] ) * ( $x[$code1] - $x[$code2] ) + ( $y[$code1] - $y[$code2] ) * ( $y[$code1] - $y[$code2] );
•
•
•
•
}
if( $dist == 0 ) echo '0';
else echo 1000./sqrt( $dist );
}
echo "<br>\r\n";
Procédural - Objet
• Les deux modes sont possibles et mixables
• De plus en plus approche objet dans les
publications, dans les journaux : [umlmerise.pdf]
• Passage progressif possible :
objet = morceau d’application transformé en une sorte
de petit programme principal
• Constructeur en PHP5 a changé (_construct),
mais compatibilité avec constructeur PHP4
(classique).
Créer une classe [1]
• Source procédural existant
• Identifier des fonctionnalités :
– Créer une table dans une base MySQL à
partir d’un fichier texte
– Exporter au format texte ou import excel des
données contenues dans un table
–…
Créer une classe [2]
• Identifier les variables liées à la classe : attributs
• Identifier les fonctions propres à la classe : méthodes
• Faire précéder de this-> l’utilisation des méthodes et
attributs internes de la classe
• Créer un constructeur pour pouvoir passer en paramètre
les attributs les plus importants de la classe
• Créer les méthodes pour passer des valeurs de certains
attributs
• Créer les méthodes pour récupérer les valeurs de
certains attributs
Mise en œuvre classique
//export d’une table
require 'cl_exportdon.php';
$export = new cl_exportdon( $tableaexporter, $varexport );
$export->setajoutnom( $ajoutnom );
$export->cree_export();
//création d’une table
require 'conf0.php';
require 'cl_txt2my.php';
$my = new cl_txt2my( "promo1.txt", 'chartier', 'toto1' );
$my->setsepar( ‘,’ );
$my->setmarge( 2 );
$my->txt2my();
Faire reconnaître son travail[1]
• Fiche Partenariat avec en tête CATI
• Cette fiche aura un caractère plus ou moins
'officiel' suivant son utilisation :
– Une utilisation légère : La fiche est remplie afin de
signaler d'une manière unilatérale une activité, elle
n'est pas co-signée. Cette utilisation peut prendre en
compte aussi les échanges intra-SAE2.
– Une utilisation complète : La fiche est signée du
partenaire. Cette utilisation correspond au cas d'un
transfert d'outil, de l'implication importante dans un
projet hors département.
Faire reconnaître son travail[2]
• Valorisation d'une application informatique
– Projet calcul de l'indice de biodiversité
– Présentation à la direction SAE2
– Idée : et si on déposait un brevet ?
IDDN : Inter Deposit Digital Number
IDDN en 4 questions
•
Pourquoi référencer ? En référençant vous vous préconstituez la preuve de
l'antériorité de vos droits.
•
Que puis-je référencer ? Tout fichier sous forme numérique, quelque soit le format,
quelque soit le système d'exploitation. Il peut s'agir d'une oeuvre (film, texte, logiciel,
site web, image, son), d'une base de données, d'une idée, d'un concept, d'une
"business methode", d'une revendication sur un effet technique.
•
Que vais-je obtenir à l'issue du référencement ? Vous allez obtenir un certificat de
référencement en ligne, accessible en 4 langues. Vous pourrez faire appel à ce
certificat sécurisé depuis votre site et ainsi faire connaître vos conditions d'utilisation.
•
Qui est InterDeposit ? InterDeposit est la fédération internationale de l'informatique
et des technologies de l'information, créée à Genève le 10 janvier 1994. Elle
rassemble les organisations concernées par la protection des droits de propriété
intellectuelle sur les œuvres numériques. L'un de ses membres fondateurs est
l'Agence pour la Protection des Programmes.
Deux temps
• Déclaration d'invention
• Agence pour la Protection des Programmes APP
– Lettre avec ref biblio
– CD des fichiers sans password, serveur
Apache, etc.
– Demande de référencement
– Copie de la déclaration d'invention
IDDN en retour
IDDN.FR.001.080016.000.R.P.2009.000.31235
Téléchargement