|
|
Ligne 1 : |
Ligne 1 : |
− | =={{Bleu|Td 4 : structures}}== | + | =={{Bleu|Td 2 : setup/draw}}== |
| | | |
− | <source lang=c>
| + | =={{Vert|Exercice 1}}== |
− | #include <stdio.h>
| |
− | #include <stdlib.h>
| |
| | | |
− | struct complexe
| + | Nous allons découvrir la gestion des couleurs dans processing. |
− | {
| |
− | double pr;
| |
− | double pi;
| |
− | } z1,z2,r;
| |
| | | |
− | void entree1();
| + | Une couleur est entièrement définie par 3 paramètres. Diverses représentation sont possibles, nous nous intéresserons ici à la représentation RGB. |
− | void entree2();
| |
− | void affichage();
| |
− | void somme();
| |
− | void diff();
| |
− | void mult();
| |
− | void carre();
| |
− | void cube();
| |
| | | |
− | int main()
| + | On initialisera l'espace de couleur par une ligne : |
− | {
| + | <source lang=c> |
− | char c;
| + | colorMode(RGB, nbValeurs); |
| + | </source> |
| + | Une couleur est donc représentée par un triplet (Rouge,Vert,Bleu), avec nbValeur pour chaque composante. |
| | | |
− | do
| + | Le choix de la couleur s'effectue avec la fonction [https://processing.org/reference/stroke_.html stroke] |
− | {
| + | <source lang=c> |
− | printf("Arithmetique complexe\n");
| + | stroke(Rouge,Vert,Bleu); |
− | printf("1 : saise 1er nombre 2: saisie 2ème nbre\n");
| |
− | printf("A ... affiche res + calcul de z1+z2\n");
| |
− | printf("- calcul de z1-z2 * calcul de z1xz2\n");
| |
− | printf("c calcul de z2² U calcul de z1^3\n");
| |
− | printf("q ou Q pour quitter \n");
| |
− | do scanf("%c",&c); while (c=='\n'); // La touche "entrée" n'est pas toujours récupérée par le scanf précédent
| |
− | switch (c)
| |
− | {
| |
− | case '1': entree1();break;
| |
− | case '2' : entree2();break;
| |
− | case 'a' :
| |
− | case 'A' : affichage();break;
| |
− | case '+' : somme();break;
| |
− | case '-' : diff();break;
| |
− | case '*' : mult();break;
| |
− | case 'c' : carre();break;
| |
− | case 'U' : cube();break;
| |
− | }
| |
− | } while ((c!='q') &&(c!='Q'));
| |
− | return 0;
| |
− | }
| |
− | | |
− | void entree1()
| |
− | {
| |
− | printf("partie reelle = ");
| |
− | scanf("%lf",&z1.pr);
| |
− | printf("partie imaginaire = ");
| |
− | scanf("%lf",&z1.pi);
| |
− | }
| |
− | | |
− | void entree2()
| |
− | {
| |
− | printf("partie reelle = ");
| |
− | scanf("%lf",&z2.pr);
| |
− | printf("partie imaginaire = ");
| |
− | scanf("%lf",&z2.pi);
| |
− | }
| |
− | | |
− | void affichage()
| |
− | {
| |
− | if (r.pi>0) printf("r = %.2lf + %.2f i \n",r.pr,r.pi);
| |
− | else if (r.pi==0) printf("r = %.2lf \n",r.pr,r.pi);
| |
− | else printf("r = %.2lf - %.2f i \n",r.pr,-r.pi);
| |
− | }
| |
− | | |
− | void somme()
| |
− | {
| |
− | r.pr=z1.pr+z2.pr;
| |
− | r.pi=z1.pr+z2.pi;
| |
− | }
| |
− | | |
− | void diff()
| |
− | {
| |
− | r.pr=z1.pr-z2.pr;
| |
− | r.pi=z1.pr-z2.pi;
| |
− | }
| |
− | | |
− | void mult()
| |
− | {
| |
− | r.pr=z1.pr*z1.pr-z2.pi*z2.pi;
| |
− | r.pi=z1.pr*z2.pi+z1.pi*z2.pr;
| |
− | }
| |
− | | |
− | void carre()
| |
− | {
| |
− | r.pr=z1.pr*z1.pr-z1.pi*z1.pi;
| |
− | r.pi=2*z1.pr*z1.pi;
| |
− | }
| |
− | | |
− | void cube()
| |
− | {
| |
− | r.pr=z1.pr*z1.pr*z1.pr-3*z1.pr*z1.pi*z1.pi;
| |
− | r.pi=3*z1.pr*z1.pr*z1.pi-z1.pi*z1.pi*z1.pi;
| |
− | }
| |
| </source> | | </source> |
| | | |
− | =={{Bleu|Td 5 : fichiers}}==
| + | {{Todo|Exécuter le code suivant}} |
− | | |
| <source lang=c> | | <source lang=c> |
− | #include <stdio.h>
| + | noStroke();colorMode(RGB, 100);for (int i = 0; i < 100; i++) { for (int j = 0; j < 100; j++) { stroke(i, j, 0); point(i, j); }} |
− | #include <stdlib.h>
| |
− | | |
− | | |
− | int main()
| |
− | {
| |
− | FILE *f1,*f2;
| |
− | unsigned char tab[128],i;
| |
− | | |
− | for (i=0;i<128;i++) tab[i]=i;
| |
− | | |
− | f1=fopen("x.txt","w+t"); // mode texte
| |
− | if (f1==NULL) {
| |
− | printf("Erreur à l'ouverture du fichier !\\n");
| |
− | exit(-1); // fin du programme avec code d'erreur -1
| |
− | }
| |
− | f2=fopen("x.bin","w+b"); // mode binaire
| |
− | if (f2==NULL) {
| |
− | printf("Erreur à l'ouverture du fichier !\\n");
| |
− | exit(-1); // fin du programme avec code d'erreur -1
| |
− | }
| |
− | for (i=0;i<128;i++) fprintf(f1,"%d\n",tab[i]);
| |
− | fwrite(tab,1,128,f2);
| |
− | | |
− | fclose(f1); // fermeture du fichier
| |
− | fclose(f2); // fermeture du fichier
| |
− | exit(0); // fin du programme
| |
− | } | |
− | | |
| </source> | | </source> |
Td 2 : setup/draw
Exercice 1
Nous allons découvrir la gestion des couleurs dans processing.
Une couleur est entièrement définie par 3 paramètres. Diverses représentation sont possibles, nous nous intéresserons ici à la représentation RGB.
On initialisera l'espace de couleur par une ligne :
colorMode(RGB, nbValeurs);
Une couleur est donc représentée par un triplet (Rouge,Vert,Bleu), avec nbValeur pour chaque composante.
Le choix de la couleur s'effectue avec la fonction stroke
Exécuter le code suivant
noStroke();colorMode(RGB, 100);for (int i = 0; i < 100; i++) { for (int j = 0; j < 100; j++) { stroke(i, j, 0); point(i, j); }}