initial commit

This commit is contained in:
Guillaume-Sanchez
2026-05-26 13:56:03 +02:00
parent 4c720637a1
commit ff4bb12d22
539 changed files with 12415 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
# UTC502-17-10-24
## Notion de base sur les systemes d'exploitation
Regardez le cour en pdf .. car la moi JPP de ce cour mdr.
+59
View File
@@ -0,0 +1,59 @@
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
typedef struct student {
char nom[10];
int note;
} eleve;
int main() {
int fd, i, ret;
eleve un_eleve;
const char *filename = "students.dat"; // Change the filename as needed
// Open the file for writing (create if it doesn't exist)
fd = open(filename, O_CREAT | O_WRONLY | O_APPEND, S_IRUSR | S_IWUSR);
if (fd == -1) {
perror("prob open");
return 1;
}
// Write student records to the file
for (i = 0; i < 4; i++) {
printf("Donnez le nom de l’élève \n");
scanf("%s", un_eleve.nom);
printf("Donnez la note de l’élève \n");
scanf("%d", &un_eleve.note);
if (write(fd, &un_eleve, sizeof(eleve)) == -1) {
perror("prob write");
close(fd);
return 1;
}
}
// Move to the beginning of the file to read records
ret = lseek(fd, 0, SEEK_SET);
if (ret == -1) {
perror("prob lseek");
close(fd);
return 1;
}
printf("la nouvelle position est %d\n", ret);
// Read and display student records
for (i = 0; i < 4; i++) {
if (read(fd, &un_eleve, sizeof(eleve)) == -1) {
perror("prob read");
close(fd);
return 1;
}
printf("le nom et la note de l’élève sont %s, %d\n",
un_eleve.nom, un_eleve.note);
}
close(fd);
return 0;
}
+49
View File
@@ -0,0 +1,49 @@
/****************************************************************/
/* Exemple de manipulation dun fichier: */
/* création, positionnement, fermeture */
/****************************************************************/
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
typedef struct student
{
char nom[10];
int note;
} eleve;
int main()
{
int fd, i, ret;
eleve un_eleve;
fd = open("./eleves.txt", O_CREAT | O_TRUNC | O_RDWR , S_IRUSR | S_IRGRP);
if (fd == -1)
perror("prob open");
i = 0;
while (i < 4)
{
printf("Donnez le nom de l’élève \n");
scanf("%s", un_eleve.nom);
printf("Donnez la note de l’élève \n");
scanf("%d", &un_eleve.note);
write(fd, &un_eleve, sizeof(eleve));
i = i + 1;
}
ret = lseek(fd, SEEK_SET, 0);
if (ret == -1)
perror("prob lseek");
printf("la nouvelle position est %d\n", ret);
i = 0;
while (i < 4)
{
read(fd, &un_eleve, sizeof(eleve));
printf("le nom et la note de l’élève sont %s, %d\n",
un_eleve.nom,
un_eleve.note);
i = i + 1;
}
close(fd);
return 0;
}
Binary file not shown.
Binary file not shown.
+46
View File
@@ -0,0 +1,46 @@
/****************************************************************/
/* Exemple de manipulation dun fichier: */
/* création, positionnement, fermeture */
/****************************************************************/
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
typedef struct student {
char nom[10];
int note;
} eleve;
int main()
{
int fd, i, ret;
eleve un_eleve;
fd = open ("./eleve.txt", O_RDWR);
if (fd == -1)
perror ("prob open");
i = 0;
while (i<4)
{
printf ("Donnez le nom de l’élève \n");
scanf ("%s", un_eleve.nom);
printf ("Donnez la note de l’élève \n");
scanf ("%d", &un_eleve.note);
write (fd, &un_eleve, sizeof(eleve) );
i = i + 1;
}
ret = lseek(fd, SEEK_SET, 0);
if (ret==-1)
perror ("prob lseek");
printf ("la nouvelle position est %d\n", ret);
i = 0;
while(i<4)
{
read (fd, &un_eleve, sizeof(eleve));
printf ("le nom et la note de l’élève sont %s, %d\n",
un_eleve.nom,
un_eleve.note);
i = i + 1;
}
close(fd);
return 0;
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+51
View File
@@ -0,0 +1,51 @@
/*
Énoncé
Écrire :
- une fonction, nommée f1, se contentant dafficher « bonjour » (elle ne possédera aucun argument, ni valeur de retour) ;
- une fonction, nommée f2, qui affiche « bonjour » un nombre de fois égal à la valeur reçue en argument (int) et qui ne renvoie aucune valeur ;
- une fonction, nommée f3, qui fait la même chose que f2, mais qui, de plus, renvoie la valeur (int) 0.
Écrire un petit programme appelant successivement chacune de ces 3 fonctions, après les avoir convenablement déclarées (on ne fera aucune hypothèse sur les emplacements relatifs des différentes fonctions composant le fichier source).
*/
#include <iostream>
using namespace std;
// Function declaration
void f1();
void f2(int nombreDeFoisBonjour);
int f3(int nombreDeFoisBonjour);
int main() {
f1();
f2(3);
f3(2);
}
// Fonction definition
void f1(){
std::cout << "Bonjour \n" << std::ends;
}
void f2(int nombreDeFoisBonjour){
for(int i = 0; i < nombreDeFoisBonjour; i++){
std::cout << "Bonjour f2 \n" << std::ends;
}
}
int f3(int nombreDeFoisBonjour){
for(int i = 0; i < nombreDeFoisBonjour; i++){
std::cout << "Bonjour f3 \n" << std::ends;
}
return 0;
}
+47
View File
@@ -0,0 +1,47 @@
/*
Énoncé
Quels résultats fournira ce programme :
*/
#include <iostream>
using namespace std;
int n = 10, q = 2;
//int main()
main()
{
int fct(int);
void f(void);
int n = 0, p = 5;
n = fct(p);
cout << "A : dans main, n = " << n << " p = " << p
<< " q = " << q << "\n";
f();
}
int fct(int p)
{
int q;
q = 2 * p + n;
cout << "B : dans fct, n = " << n << " p = " << p
<< " q = " << q << "\n";
return q;
}
void f(void)
{
int p = q * n;
cout << "C : dans f, n = " << n << " p = " << p
<< " q = " << q << "\n";
}
/*
Résultat :
B : dans fct, n = 10 p = 5 q = 20
A : dans main, n = 20 p = 5 q = 2
C : dans f, n = 10 p = 20 q = 2
Un Warning avec le code tel quel tous de même :
main() -> int main()
*/
+57
View File
@@ -0,0 +1,57 @@
/*
Énoncé
Écrire une fonction qui reçoit en arguments 2 nombres flottants et un caractère, et qui fournit un résultat correspondant à lune des 4 opérations appliquées à ses deux premiers arguments, en fonction de la valeur du dernier, à savoir : addition pour le caractère +, soustraction pour -, multiplication pour * et division pour / (tout autre caractère que lun des 4 cités sera interprété comme une addition). On ne tiendra pas compte des risques de division par zéro.
Écrire un petit programme (main) utilisant cette fonction pour effectuer les 4 opérations sur les 2 nombres fournis en donnée.
*/
#include <iostream>
using namespace std;
// Function declaration
void fonction1(float float1, float float2, char char1);
int main(){
float float1;
float float2;
char char1;
cout<<"Tapez un premier entier : "; cin>>float1;
cout<<"Tapez un second entier : "; cin>>float2;
cout<<"Tapez l'opérations voulu : "; cin>>char1;
fonction1(float1, float2, char1);
}
// Fonction definition
void fonction1(float float1, float float2, char char1){
switch (char1)
{
case '+':
std::cout << float1 + float2 << std::ends;
std::cout << "\n" << std::ends;
break;
case '-':
std::cout << float1 - float2 << std::ends;
std::cout << "\n" << std::ends;
break;
case '*':
std::cout << float1 * float2 << std::ends;
std::cout << "\n" << std::ends;
break;
case '/':
std::cout << float1 / float2 << std::ends;
std::cout << "\n" << std::ends;
break;
default:
std::cout << "nique ta mère \n" << std::ends;
}
}
+59
View File
@@ -0,0 +1,59 @@
/*
Énoncé
Transformer le programme (fonction + main) écrit dans lexercice précédent de manière que la fonction ne dispose plus que de 2 arguments, le caractère indiquant la nature de lopération à effectuer étant précisé, cette fois, à laide dune variable globale.
*/
#include <iostream>
using namespace std;
// variable globale
char operateur;
// Function declaration
void fonction1(float float1, float float2);
int main(){
float float1;
float float2;
cout<<"Tapez un premier entier : "; cin>>float1;
cout<<"Tapez un second entier : "; cin>>float2;
cout<<"Tapez l'opérations voulu : "; cin>>::operateur;
fonction1(float1, float2);
}
// Fonction definition
void fonction1(float float1, float float2){
switch (::operateur)
{
case '+':
std::cout << float1 + float2 << std::ends;
std::cout << "\n" << std::ends;
break;
case '-':
std::cout << float1 - float2 << std::ends;
std::cout << "\n" << std::ends;
break;
case '*':
std::cout << float1 * float2 << std::ends;
std::cout << "\n" << std::ends;
break;
case '/':
std::cout << float1 / float2 << std::ends;
std::cout << "\n" << std::ends;
break;
default:
std::cout << "nique ta mère \n" << std::ends;
}
}
+43
View File
@@ -0,0 +1,43 @@
/*
Énoncé
Écrire une fonction, sans argument ni valeur de retour, qui se contente dafficher, à chaque appel, le nombre total de fois où elle a été appelée sous la forme :
appel numéro 3
*/
#include <iostream>
using namespace std;
// variable globale
int count = 0;
// Function declaration
void fonction1();
int main(){
char input;
cout<<"Voulez vous appeler la fonction ? o/n : "; cin>>input;
while (input == 'o')
{
fonction1();
cout<<"Voulez vous de nouveau appeler la fonction ? o/n : "; cin>>input;
}
std::cout << "Vous avez tapez autre chose que 'o', Fin du programe \n" << std::ends;
return 0;
}
// Fonction definition
void fonction1(){
::count = ::count +1;
std::cout << "appel numéro " << ::count << "\n" << std::ends;
}
+52
View File
@@ -0,0 +1,52 @@
/*
Énoncé
Écrire 2 fonctions à un argument entier et une valeur de retour entière permettant de préciser si largument reçu est multiple de 2 (pour la première fonction) ou multiple de 3 (pour la seconde fonction).
Utiliser ces deux fonctions dans un petit programme qui lit un nombre entier et qui précise sil est pair, multiple de 3 et/ou multiple de 6, comme dans cet exemple (il y a deux exécutions) :
*/
#include <iostream>
using namespace std;
// variable globale
int count = 0;
// Function declaration
int estMultiple2(int n);
int estMultiple3(int n);
int main(){
int nombre(0);
cout << "Entrer un nombre : ";
cin >> nombre;
if (estMultiple2(nombre)) {
cout << "il est pair\n";
if (estMultiple3(nombre)) {
cout << "il est multiple de 3 \n";
cout << "il est divisible par 6\n";
}
}
else if (estMultiple3(nombre)) {
cout << "il est multiple de 3 \n";
}
return 0;
}
// Fonction definition
int estMultiple2(int n){
if(n % 2 == 0) return 1;
else return 0;
}
int estMultiple3(int n){
if(n % 3 == 0) return 1;
else return 0;
}
+32
View File
@@ -0,0 +1,32 @@
/*
Énoncé
Écrire une fonction permettant dajouter une valeur fournie en argument à une variable fournie également en argument. Par exemple, lappel (n et p étant entiers) :
ajouter (2*p+1, n) ;
ajoutera la valeur de lexpression 2*p+1 à la variable n.
Écrire un petit programme de test de la fonction.
*/
#include <iostream>
using namespace std;
// Function declaration
void ajouter(int p, int n);
int main(){
ajouter(2*3+1, 2);
}
// Fonction definition
void ajouter(int p, int n){
int toto = p + n;
cout << toto << "\n";
}