Codes 005 - 2023
This commit is contained in:
“[JMF]” 2023-11-10 12:51:13 +01:00
parent bbae13dfa9
commit 84400b26b7
20 changed files with 100562 additions and 2 deletions

146
ExosEtud/4_3.c Normal file
View File

@ -0,0 +1,146 @@
//CARRÉ MAGIQUE
/*
//Question 1
#include <stdio.h>
int main(){
int tab[3][3]={{4,0,5},{4,3,2},{1,6,2}};
int i,j;
for (i=0;i<3;i++){
for (j=0;j<3;j++){
printf("%d\t",tab[i][j]);
}
printf("\n");
}
}
//Question 2
#include <stdio.h>
int main(){
int x,y,z;
int i,j;
puts("Valeur de x=");
scanf("%d",&x);
puts("Valeur de y=");
scanf("%d",&y);
puts("Valeur de z=");
scanf("%d",&z);
int magic[3][3]={{(x+y),(x-y+z),(x-z)},{(x-y-z),x,(x+y+z)},{(x+z),(x+y-z),(x-y)}};
for (i=0;i<3;i++){
for (j=0;j<3;j++){
printf("%d\t",magic[i][j]);
}
printf("\n");
}
}
//Question 3
#include <stdio.h>
int main(){
int i,j;
int tab[3][3]={{4,0,5},{4,3,2},{1,6,2}};
int cte=(tab[0][0])+(tab[0][1])+(tab[0][2]);
int test=0;
printf("Valeur de cte=%d\n",cte);
for (i=0;i<3;i++){
for(j=0;j<3;j++){
test=test+(tab[i][j]);
printf("Valeur de test=%d\n",test);
}
if (test!=cte) {
puts("Ce n'est pas un carre magique");
break;
}
test=0;
}
for (j=0;j<3;j++){
for(i=0;i<3;i++){
test=test+(tab[i][j]);
printf("Valeur de test=%d\n",test);
}
if (test!=cte) {
puts("Ce n'est pas un carre magique");
break;
}
test=0;
}
for (i=0;i<3;i++){
test=test+(tab[i][i]);
printf("Valeur de test=%d\n",test);
}
if (test!=cte) {
puts("Ce n'est pas un carre magique");
break;
}
printf("La constante magique est:%d\n",cte);
}
*/
//Question 4 et 5
#include <stdio.h>
#define N 3
int main(){
int i,j;
int k=0;
//int tab[N][N];
// int A[N][N] = {1,2,3,4,5,6,7,8,9}; // Initialisation pas magique
int tab[N][N] = {4,2,3,2,9,4,3,4,2}; // Initialisation magique
//int tab[N][N]={{4,1,5},{3,3,1},{1,6,2}};
int test=0;
int sum[2*N+2]={0};
int flag=0;
//remplir un carre magique avec des valeurs au choix
/* for (i=0;i<N;i++){ */
/* for (j=0;j<N;j++){ */
/* printf("Choisir la valeur de a(%d,%d)\n",i,j); */
/* scanf("%d",&tab[i][j]); */
/* } */
/* } */
printf("______________\nVoici le carre magique:\n");
for (i=0;i<N;i++){
for (j=0;j<N;j++){
printf("%d\t",tab[i][j]);
}
printf("\n");
}
printf("______________\n");
//verification : est-ce un carre magique ?
for (i=0;i<N;i++){
sum[0]=sum[0]+tab[i][i];
sum[1]=sum[1]+tab[i][N-i-1];
printf("%d\t%d\n",sum[0],sum[1]);
}
if (sum[0]!=sum[1]){
flag=1;
}
if (flag==0){
for (i=0;i<N;i++){
sum[2+i]=0;
sum[3+i]=0;
if (flag==0){
for(j=0;j<N;j++){
sum[2+i]=sum[2+i]+tab[i][j];
sum[3+i]=sum[3+i]+tab[j][i];
printf("%d\t%d\n",sum[2+i],sum[3+i]);
}
if ((sum[2+i]!=sum[0])||(sum[3+i]!=sum[0])){
flag=1;
}
}else{
printf("Ce n'est pas un carre magique\n");
return 1;
}
}
printf("Valeur constante magique=%d\n",sum[0]);
return 1;
}else{
printf("Ce n'est pas un carre magique\n");
}
}

53
ExosEtud/4_4.c Normal file
View File

@ -0,0 +1,53 @@
//PUISSANCE 4
#include <stdio.h>
int main(){
char grille[6][7];
int nbr,i,j;
int l=0;
int c=1;
for(i=0;i<6;i++){
for (j=0;j<7;j++){
grille[i][j]=' ';
}
}
while (c<=42){
//choix colonne
puts("\nChoisir une colonne entre 0 et 6:");
scanf("%d",&nbr);
puts("");
//remplissage
if (nbr!=0 && nbr!=1 && nbr!=2 && nbr!=3 && nbr!=4 && nbr!=5 && nbr!=6){
puts("La saisie est incorrecte. Choisir une nouvelle colonne:");
scanf("%d",&nbr);
}
while (grille[5][nbr]!=' '){
printf("La colonne %d est pleine. Choisir une nouvelle colonne:\n",nbr);
scanf("%d",&nbr);
}
while (grille[l][nbr]!=' '){
l++;
}
if((l+nbr)%2==0){
grille[l][nbr]='x';
} else {
grille[l][nbr]='o';
}
c++;
l=0;
//afichage inversé
for (i=5;i>=0;i--){
for(j=0;j<7;j++){
printf("%c ",grille[i][j]);
}
printf("\n");
}
}
return 0;
}

115
ExosEtud/5_4.c Normal file
View File

@ -0,0 +1,115 @@
//REPERTOIRE
#include <stdio.h>
#define nb_f_max 100
struct fiche{
char nom[50];
char prenom[50];
int tel;
};
struct repertoire{
struct fiche Fiches[nb_f_max];
int nb_f_rem;
};
int main(){
struct repertoire rep={{{"Munck","Emma",767},{"Ogata","Jade",776},{"Munck","Alix",444},{"Munck","Stephanie",333},{"Munck","Bertrand",555}},5};
struct fiche temp;
int num;
int test=0;
int i;
int j=0;
int n1,n2,nsup;
int nb_fiches_dispo;
while (test==0){
puts("\nMENU:\n0. Quitter le programme \n1. Affichage du nombre de fiches disponibles\n2. Saisie d'une fiche \n3. Modification d'une fiche \n4. Affichage du repertoire \n5. Echange de deux fiches \n6. Suppression d'une fiche\n ");
puts("Choisir le numero d'une action");
scanf("%d",&num);
switch(num){
case 0 :
puts("Vous avez choisi de quitter le programme (0)");
puts("Au revoir!");
return 0;
case 1 :
puts("Vous avez choisi d'afficher le nombre de fiches disponibles(1)");
nb_fiches_dispo=nb_f_max-rep.nb_f_rem;
printf("Nombre fiches disponibles=%d\n",nb_fiches_dispo);
break;
case 2:
puts("Vous avez choisi de saisir une fiche(2)");
nb_fiches_dispo=nb_f_max-rep.nb_f_rem;
if (rep.nb_f_rem==nb_f_max){
puts("Aucune fiche disponible");
}else{
puts("Saisir le nom, prénom et numéro de téléphone");
scanf("%s",rep.Fiches[rep.nb_f_rem].nom);
scanf("%s",rep.Fiches[rep.nb_f_rem].prenom);
scanf("%d",&rep.Fiches[rep.nb_f_rem].tel);
rep.nb_f_rem++;
}
break;
case 3:
puts("Vous avez choisi de modifier une fiche (3)");
puts("Numero de la fiche que vous voulez modifier");
scanf("%d",&i);
puts("Saisir les nouveaux nom, prénom et numero de téléphone");
scanf("%s",rep.Fiches[i].nom);
scanf("%s",rep.Fiches[i].prenom);
scanf("%d",&rep.Fiches[i].tel);
break;
case 4 :
puts("Vous avez choisi d'afficher le repertoire (4)");
if (rep.nb_f_rem==0){
puts("Le repertoire est vide");
}else{
for (i=0;i<rep.nb_f_rem;i++){
printf("Fiche %d: %s\t%s\t%d",i,rep.Fiches[i].nom,rep.Fiches[i].prenom,rep.Fiches[i].tel);
printf("\n");
}
}
break;
case 5 :
puts("Vous avez choisi d'echanger deux fiches (6)");
puts("Entrez les numeros respectifs des fiches à échanger");
scanf("%d",&n1);
scanf("%d",&n2);
if (n1<0 || n1>=rep.nb_f_rem || n2>=rep.nb_f_rem || n2<0){
puts("La saisie est incorrecte");
}else{
temp=rep.Fiches[n1];
rep.Fiches[n1]=rep.Fiches[n2];
rep.Fiches[n2]=temp;
}
break;
case 6 :
puts("Vous avez choisi de supprimer une fiche (6)");
puts("Numero de la fiche que vous souhaitez supprimer:");
scanf("%d",&nsup);
for (i=nsup;i<rep.nb_f_rem;i++){
rep.Fiches[i]=rep.Fiches[i+1];
};
rep.nb_f_rem--;
break;
default :
puts("La saisie est incorrecte");
printf("\n");
}
}
}

BIN
ExosEtud/a.out Executable file

Binary file not shown.

BIN
TP4/a.out

Binary file not shown.

View File

@ -5,6 +5,8 @@ int main () {
char hello[] = "hello";
int i ;
for (i = 0 ; i< N ; i++) {

33
TP4/condensateur.c Normal file
View File

@ -0,0 +1,33 @@
#include <stdio.h>
#include <math.h>
#define N 100000
int main () {
float R = 10.0e3;
float C = 2000.0e-6;
float E=10.;
float tau = R*C ;
// printf("La constante de temps du circuit est %f sec.\n",tau);
float dt = 1.e-3;
float t;
/* for(t=0.;t<4.*tau;t=t+dt) { */
/* printf("%f\t%f\n",t,E*(1-exp(-t/tau))); */
/* } */
float v;
v=0;
int i;
float s = 2.**2;
printf("%f\t%f\t%f\n",0.0,v,E*(1-exp(-0*dt/tau)));
for(i=1;i<N;i=i+1) {
v=v+dt/tau*(E-v);
printf("%f\t%f\t%f\n",i*dt,v,E*(1-exp(-i*dt/tau)));
}
}

BIN
TP4/condensateur.exe Executable file

Binary file not shown.

100000
TP4/data Normal file

File diff suppressed because it is too large Load Diff

36
TP4/matrice.c Normal file
View File

@ -0,0 +1,36 @@
#include <stdio.h>
#define N 10
int main () {
int i,j;
int A[N][N];
for (i = 0 ; i< N ; i++) {
for (j = 0 ; j< N ; j++) {
A[i][j] = (i+1)*(i+1)*(i+1)-(j+1)*(j+1)*(j+1);
printf("%d ",A[i][j]);
}
printf("\n");
}
int pair = 0 ;
int impair = 0 ;
for (i = 0 ; i< N ; i++) {
for (j = 0 ; j< N ; j++) {
if ( (i+j)%2 == 0 ) {
pair ++ ;
} else {
impair ++ ;
}
}
}
printf("%d %d \n",pair,impair);
}

BIN
TP5/a.out

Binary file not shown.

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleIdentifier</key>
<string>com.apple.xcode.dsym.a.out</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>dSYM</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

Binary file not shown.

62
TP5/carre2.c Normal file
View File

@ -0,0 +1,62 @@
#include <stdio.h>
#define N 3
int main () {
int A[N][N] = {1,2,3,4,5,6,7,8,9}; // Initialisation pas magique
// int A[N][N] = {4,2,3,2,3,4,3,4,2}; // Initialisation magique
char nom[10];
int i , j;
int magique = 1 ;
// diagonale
int sommed1 = 0, sommed2 = 0;
for(i=0;i<N;i=i+1)
{
sommed1 = sommed1 + A[i][i];
sommed2 = sommed2 + A[i][N-1-i];
}
if ( sommed1 != sommed2 )
{
magique = 0;
}
// hors diagonale
int sommeV , sommeH ;
i = 0 ;
while ( (magique != 0) && (i < N) )
{
sommeH = 0 ;
sommeV = 0 ;
for (j=0;j<N;j++)
{
sommeH = sommeH + A[i][j] ;
sommeV = sommeV + A[j][i] ;
}
//printf("%d %d %d %d \n",i,sommeV,sommeH,sommed1);
// getchar();
if ( sommeH != sommed1 || sommeV != sommed1 )
{
magique = 0;
}
i++;
}
if (magique == 1)
{
printf("carre magique = %d \n",sommed1);
} else {
printf("pas magique = \n");
}
}

59
TP5/repertoire.c Normal file
View File

@ -0,0 +1,59 @@
#include <stdio.h>
struct fiche {
char nom[50];
char prenom[50];
int numero;
};
struct repertoire {
int nb_f;
struct fiche fiches[100];
};
int main () {
struct repertoire rep;
rep.nb_f = 0 ;
while(1) {
//
int choix;
printf("0 - Quitter le programme\n");
printf("1 - Affichage du nombre de fiches disponibles\n");
printf("2 - Saisie d'une fiche\n");
printf("3 - Modification d'une fiche\n");
printf("4 - Affichage du repertoire\n");
printf("5 - Echange de deux fiches\n");
printf("6 - Suppression d'une fiche\n");
scanf("%d",&choix);
//
switch(choix) {
case 0:
printf("Fin du programme\n");
return 0;
case 2:
rep.nb_f++;
printf("Saisie de la fiche %d\n",rep.nb_f);
scanf("%s %s %d",rep.fiches[rep.nb_f].nom,rep.fiches[rep.nb_f].prenom,
&rep.fiches[rep.nb_f].numero);
break;
case 4:
/* if(!rep.nb_f) { */
/* printf("Le repertoire est vide.\n"); */
/* break; */
/* } */
for (int i=0;i<rep.nb_f;i++)
printf("%s %s %d\n", \
rep.fiches[i].nom, \
rep.fiches[i].prenom, \
rep.fiches[i].numero);
break;
default:
printf("Choix non disponible. Recommencez\n");
}
}
return 0;
}

BIN
TP6/a.out

Binary file not shown.

View File

@ -6,9 +6,9 @@ int main () {
// int A[N][N] = {1,2,3,4,5,6,7,8,9}; // Initialisation pas magique
int A[N][N] = {4,2,3,2,3,4,3,4,2}; // Initialisation pas magique
int A[N][N] = {4,2,3,2,3,4,3,4,2}; // Initialisation pas magique
int B[N][N] = {0};
void affiche (int, int tab[N][N]);
void affiche (int, int tab[N][N]);
void matrice_echange(int, int tab[N][N], int tab2[N][N]);
affiche(N,B);

BIN
a.out Executable file

Binary file not shown.

15
fibo.c Normal file
View File

@ -0,0 +1,15 @@
#include <stdio.h>
int main(){
int fibo[20]={0};
int i;
fibo[0] = 0;
fibo[1] = 1;
float or[20]={0.};
for(i=2;i<=19;i=i+1){
fibo[i]=fibo[i-1]+fibo[i-2];
or[i]= (float) fibo[i]/fibo[i-1]; // (float)
}
printf("%d\n %f\n",i-1,or[i-1]); // attention i vaut 20 en sortant de la bouble!! et or[20] n'existe pas...
return(0);
}

19
tableau.c Normal file
View File

@ -0,0 +1,19 @@
#include <stdio.h>
int main() {
int T[10];
int i=0;
int somme = 0;
//scanf("%d %d %d %d %d %d %d %d %d %d",&i,&i,&i,&i,&i,&i,&i,&i,&i,&i);
//
for (i=0;i<=9;i=i+1){
scanf("%d ",&T[i]);
}
for (i=0;i<=9;i=i+1){
if (T[i] == 0){
somme=somme+1;
}
}
printf("La somme des 0 est %d\n",somme);
return(0);
}