This commit is contained in:
Tanguy MAZE
2019-06-22 18:23:35 +02:00
commit f9e508d5ef
173 changed files with 6727 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
Assignment name : aff_a
Expected files : aff_a.c
Allowed functions: write
--------------------------------------------------------------------------------
Write a program that takes a string, and displays the first 'a' character it
encounters in it, followed by a newline. If there are no 'a' characters in the
string, the program just writes a newline. If the number of parameters is not
1, the program displays 'a' followed by a newline.
Example:
$> ./aff_a "abc" | cat -e
a$
$> ./aff_a "RaInB0w d4Sh!" | cat -e
a$
$> ./aff_a "ThE Ck3 Is L|3" | cat -e
$
$> ./aff_a | cat -e
a$

View File

@@ -0,0 +1,20 @@
Assignment name : aff_a
Expected files : aff_a.c
Allowed functions: write
--------------------------------------------------------------------------------
Écrire un programme qui prend une chaîne de caractères et affiche le premier
caractère 'a' qu'il y rencontre, suivi d'un newline. S'il n'y a pas de
caractère 'a' dans la chaîne, le programme affiche juste un newline. Si le
nombre de paramètres n'est pas 1, le programme affiche 'a' suivi d'un newline.
Exemple:
$> ./aff_a "abc" | cat -e
a$
$> ./aff_a "dubO a POIL" | cat -e
a$
$> ./aff_a "zz sent le poney" | cat -e
$
$> ./aff_a | cat -e
a$

View File

@@ -0,0 +1,20 @@
Exercitiu : aff_a
Fisiere de iesire : aff_a.c
Functii autorizate : write
--------------------------------------------------------------------------------
Scrieti un program ce ia ca parametru un sir de caractere, si care afiseaza la
iesirea standard primul caracter 'a' intalnit in acest sir, urmat de '\n'. Daca
nu este intalnit niciun caracter 'a', programul va afisa '\n'. Daca numarul de
parametri este diferit de 1, programul va afisa 'a' urmat de '\n'.
Example:
$> ./aff_a "abc" | cat -e
a$
$> ./aff_a "dubO a POIL" | cat -e
a$
$> ./aff_a "zz sent le poney" | cat -e
$
$> ./aff_a | cat -e
a$

View File

@@ -0,0 +1,16 @@
$> ./fprime 225225 | cat -e
3*3*5*5*7*11*13$
$> ./fprime 8333325 | cat -e
3*3*5*5*7*11*13*37$
$> ./fprime 9539 | cat -e
9539$
$> ./fprime 804577 | cat -e
804577$
$> ./fprime 42 | cat -e
2*3*7$
$> ./fprime 1 | cat -e
1$
$> ./fprime | cat -e
$
$> ./fprime 42 21 | cat -e
$

View File

@@ -0,0 +1,33 @@
Assignment name : fprime
Expected files : fprime.c
Allowed functions: printf, atoi
--------------------------------------------------------------------------------
Write a program that takes a positive int and displays its prime factors on the
standard output, followed by a newline.
Factors must be displayed in ascending order and separated by '*', so that
the expression in the output gives the right result.
If the number of parameters is not 1, simply display a newline.
The input, when there's one, will be valid.
Examples:
$> ./fprime 225225 | cat -e
3*3*5*5*7*11*13$
$> ./fprime 8333325 | cat -e
3*3*5*5*7*11*13*37$
$> ./fprime 9539 | cat -e
9539$
$> ./fprime 804577 | cat -e
804577$
$> ./fprime 42 | cat -e
2*3*7$
$> ./fprime 1 | cat -e
1$
$> ./fprime | cat -e
$
$> ./fprime 42 21 | cat -e
$

View File

@@ -0,0 +1,35 @@
Assignment name : fprime
Expected files : fprime.c
Allowed functions: printf, atoi
--------------------------------------------------------------------------------
Écrire un programme qui prend en paramètre un entier strictement positif, et
qui affiche sa décomposition en facteurs premiers sur la sortie standard,
suivie d'un '\n'.
Les facteurs doivent être affichés dans l'ordre croissant et séparés par des
'*', de telle sorte que l'expression affichée donne le bon résultat.
Si le nombre de paramètres est différent de 1, le programme doit afficher '\n'.
L'entrée, quand elle est passée, sera toujours un nombre valide sans caractères
parasites.
Exemple:
$> ./fprime 225225 | cat -e
3*3*5*5*7*11*13$
$> ./fprime 8333325 | cat -e
3*3*5*5*7*11*13*37$
$> ./fprime 9539 | cat -e
9539$
$> ./fprime 804577 | cat -e
804577$
$> ./fprime 42 | cat -e
2*3*7$
$> ./fprime 1 | cat -e
1$
$> ./fprime | cat -e
$
$> ./fprime 42 21 | cat -e
$

View File

@@ -0,0 +1,34 @@
Exercitiu : fprime
Fisiere de iesire : fprime.c
Functii autorizate : printf, atoi
--------------------------------------------------------------------------------
Scrieti un program ce ia ca parametru un intreg strict pozitiv si care va afisa
descompunerea in factori primi la iesirea standard, urmat de un '\n'.
Factorii trebuie sa fie afisati in ordine crescatoare si separati de '*',
astfel incat expresia afisata sa dea rezultatul corect.
Daca numarul de parametri este diferit de 1, programul va afisa '\n'.
Parametrul de intrare, cand este transmis, va fi totdeauna un numar valid
fara caractere neconforme.
Exemplu:
$> ./fprime 225225 | cat -e
3*3*5*5*7*11*13$
$> ./fprime 8333325 | cat -e
3*3*5*5*7*11*13*37$
$> ./fprime 9539 | cat -e
9539$
$> ./fprime 804577 | cat -e
804577$
$> ./fprime 42 | cat -e
2*3*7$
$> ./fprime 1 | cat -e
1$
$> ./fprime | cat -e
$
$> ./fprime 42 21 | cat -e
$

View File

@@ -0,0 +1,20 @@
Assignment name : ft_atoi_base
Expected files : ft_atoi_base.c
Allowed functions: None
--------------------------------------------------------------------------------
Write a function that converts the string argument str (base N <= 16)
to an integer (base 10) and returns it.
The characters recognized in the input are: 0123456789abcdef
Those are, of course, to be trimmed according to the requested base. For
example, base 4 recognizes "0123" and base 16 recognizes "0123456789abcdef".
Uppercase letters must also be recognized: "12fdb3" is the same as "12FDB3".
Minus signs ('-') are interpreted only if they are the first character of the
string.
Your function must be declared as follows:
int ft_atoi_base(const char *str, int str_base);

View File

@@ -0,0 +1,21 @@
Assignment name : ft_atoi_base
Expected files : ft_atoi_base.c
Allowed functions: None
--------------------------------------------------------------------------------
Écrire une fonction qui convertit son argument 'str', une chaîne (en base N <= 16)
en un entier (base 10) et le retourne.
Les caractères reconnus dans l'entrée sont : 0123456789abcdef
Bien entendu, la base demandée conditionne le nombre de caractères à prendre
en compte. Par exemple, la base 4 reconnaîtra "0123" et la base 16 reconnaîtra
"0123456789abcdef".
Les majuscules marchent aussi : "12fdb3" est pareil que "12FDB3".
Les caractères '-' doivent être interprétés seulement s'ils sont en première
position dans la chaîne.
Votre fonction sera déclarée comme suit:
int ft_atoi_base(const char *str, int str_base);

View File

@@ -0,0 +1,11 @@
Assignment name : ft_itoa
Expected files : ft_itoa.c
Allowed functions: malloc
--------------------------------------------------------------------------------
Write a function that takes an int and converts it to a null-terminated string.
The function returns the result in a char array that you must allocate.
Your function must be declared as follows:
char *ft_itoa(int nbr);

View File

@@ -0,0 +1,12 @@
Assignment name : ft_itoa
Expected files : ft_itoa.c
Allowed functions: malloc
--------------------------------------------------------------------------------
Écrire une fonction qui prend un int et le convertit en chaîne terminée par un
caractère nul. Cette fonction retourne le résultat en tant qu'un tableau de
char que vous devez allouer.
Votre fonction sera déclarée comme suit:
char *ft_itoa(int nbr);

View File

@@ -0,0 +1,10 @@
Assignment name : ft_itoa
Expected files : ft_itoa.c
Allowed functions: malloc
--------------------------------------------------------------------------------
Scrieti o functie care primeste un int si il converteste intr-un sir de caractere, care se termina cu null. Functia returneaza resultatul intr-un vector de char pe care trebuie sa il alocati.
Functia trebuie declarata ca si mai jos:
char *ft_itoa(int nbr);

View File

@@ -0,0 +1,20 @@
Assignment name : ft_itoa_base
Expected files : ft_itoa_base.c
Allowed functions: malloc
--------------------------------------------------------------------------------
Write a function that converts an integer value to a null-terminated string
using the specified base and stores the result in a char array that you must
allocate.
The base is expressed as an integer, from 2 to 16. The characters comprising
the base are the digits from 0 to 9, followed by uppercase letter from A to F.
For example, base 4 would be "0123" and base 16 "0123456789ABCDEF".
If base is 10 and value is negative, the resulting string is preceded with a
minus sign (-). With any other base, value is always considered unsigned.
Your function must be declared as follows:
char *ft_itoa_base(int value, int base);

View File

@@ -0,0 +1,21 @@
Assignment name : ft_itoa_base
Expected files : ft_itoa_base.c
Allowed functions: malloc
--------------------------------------------------------------------------------
Écrire une fonction qui prend un int et le convertit en chaîne terminée par un
caractère nul, en utilisant la base passée en paramètre. Cette fonction
retourne le résultat en tant qu'un tableau de char que vous devez allouer.
La base est exprimée par un entier qui va de 2 à 16. Les caractères composant
la base sont les chiffres de 0 à 9 suivis par les lettres majuscules A à F.
Par exemple, la base 4 serait "0123" et la base 16 "0123456789ABCDEF".
Si la base est 10 et la valeur est négative, la chaîne de sortie doit être
précédée d'un caractère '-'. Pour toute autre base, la valeur est toujours
considérée non-signée.
Votre fonction doit être déclarée comme suit:
char *ft_itoa_base(int value, int base);

View File

@@ -0,0 +1,11 @@
$> ./last_word "FOR PONY" | cat -e
PONY$
$> ./last_word "this ... is sparta, then again, maybe not" | cat -e
not$
$> ./last_word " " | cat -e
$
$> ./last_word "a" "b" | cat -e
$
$> ./last_word " lorem,ipsum " | cat -e
lorem,ipsum$
$>

View File

@@ -0,0 +1,25 @@
Assignment name : last_word
Expected files : last_word.c
Allowed functions: write
--------------------------------------------------------------------------------
Write a program that takes a string and displays its last word followed by a \n.
A word is a section of string delimited by spaces/tabs or by the start/end of
the string.
If the number of parameters is not 1, or there are no words, display a newline.
Example:
$> ./last_word "FOR PONIES" | cat -e
PONIES$
$> ./last_word "this ... is sparta, then again, maybe not" | cat -e
not$
$> ./last_word " " | cat -e
$
$> ./last_word "a" "b" | cat -e
$
$> ./last_word " lorem,ipsum " | cat -e
lorem,ipsum$
$>

View File

@@ -0,0 +1,27 @@
Assignment name : last_word
Expected files : last_word.c
Allowed functions: write
--------------------------------------------------------------------------------
Écrire un programme qui prend une chaîne de caractères en paramètre, et qui
affiche le dernier mot de cette chaîne, suivi d'un '\n'.
On appelle "mot" une portion de chaîne de caractères délimitée soit par des
espaces et/ou des tabulations, soit par le début / fin de la chaîne.
Si le nombre de paramètres transmis est différent de 1, ou s'il n'y a aucun mot
à afficher, le programme affiche '\n'.
Exemple:
$> ./last_word "FOR PONY" | cat -e
PONY$
$> ./last_word "this ... is sparta, then again, maybe not" | cat -e
not$
$> ./last_word " " | cat -e
$
$> ./last_word "a" "b" | cat -e
$
$> ./last_word " lorem,ipsum " | cat -e
lorem,ipsum$
$>

View File

@@ -0,0 +1,27 @@
Exercitiu : last_word
Fisiere de iesire : last_word.c
Functii autorizate : write
--------------------------------------------------------------------------------
Scrieti un program ce ia ca parametru un sir de caractere si care afiseaza ultimul
cuvant al acestui sir urmat de '\n'.
Numim "cuvant" o portiune a sirului de caractere delimitat fie de spatii si/sau
tabulatoare, fie de incepulul ori sfarsitul sirului.
Daca numarul de parametri transmis este diferit de 1, sau nu exista nicun cuvant
de afisat, programul va afisa '\n'.
Exemple:
$> ./last_word "FOR PONY" | cat -e
PONY$
$> ./last_word "this ... is sparta, then again, maybe not" | cat -e
not$
$> ./last_word " " | cat -e
$
$> ./last_word "a" "b" | cat -e
$
$> ./last_word " lorem,ipsum " | cat -e
lorem,ipsum$
$>

View File

@@ -0,0 +1,12 @@
$>./rostring "abc " | cat -e
abc$
$>
$>./rostring "Que la lumiere soit et la lumiere fut"
la lumiere soit et la lumiere fut Que
$>
$>./rostring " AkjhZ zLKIJz , 23y"
zLKIJz , 23y AkjhZ
$>
$>./rostring | cat -e
$
$>

View File

@@ -0,0 +1,31 @@
Assignment name : rostring
Expected files : rostring.c
Allowed functions: write, malloc, free
--------------------------------------------------------------------------------
Write a program that takes a string and displays this string after rotating it
one word to the left.
Thus, the first word becomes the last, and others stay in the same order.
A "word" is defined as a part of a string delimited either by spaces/tabs, or
by the start/end of the string.
Words will be separated by only one space in the output.
If there's less than one argument, the program displays \n.
Example:
$>./rostring "abc " | cat -e
abc$
$>
$>./rostring "Que la lumiere soit et la lumiere fut"
la lumiere soit et la lumiere fut Que
$>
$>./rostring " AkjhZ zLKIJz , 23y"
zLKIJz , 23y AkjhZ
$>
$>./rostring | cat -e
$
$>

View File

@@ -0,0 +1,31 @@
Assignment name : rostring
Expected files : rostring.c
Allowed functions: write, malloc, free
--------------------------------------------------------------------------------
Écrire un programme qui prend en paramètre une chaîne de caractères, et qui
affiche cette chaîne en procédant à une rotation d'un mot de droite à gauche.
Ainsi, le premier mot se retrouve le dernier et les autres restent dans l'ordre.
On appelle "mot" une portion de chaîne de caractères délimitée soit par des
espaces et/ou des tabulations, soit par le début / fin de la chaîne.
Les mots affichés seront séparés par un seul et unique espace.
Si le nombre de paramètres est inférieur à 1, le programme devra afficher '\n'.
Exemple:
$>./rostring "abc " | cat -e
abc$
$>
$>./rostring "Que la lumiere soit et la lumiere fut"
la lumiere soit et la lumiere fut Que
$>
$>./rostring " AkjhZ zLKIJz , 23y"
zLKIJz , 23y AkjhZ
$>
$>./rostring | cat -e
$
$>

View File

@@ -0,0 +1,31 @@
Exercitii : rostring
Fisiere de iesire : rostring.c
Functii de iesire : write, malloc, free
--------------------------------------------------------------------------------
Scrieti un program ce ia ca parametru un sir de caractere si care afiseaza acest
sir procedand la rotirea unui cuvant de la dreapta la stanga.
Astfel, primul cuvant va deveni ultimul, iar celelalte vor ramane in aceeasi ordine.
Numim "cuvant" o portiune a sirului de caractere delimitat fie de spatii si/sau
tabulatoare, fie de inceputul/sfarsitul sirului.
Cuvintele vor fi afisate, separate de un singur spatiu.
Daca numarul de parametri este inferior lui 1, programul va trebui sa afiseze '\n'.
Exemplu:
$>./rostring "abc " | cat -e
abc$
$>
$>./rostring "Que la lumiere soit et la lumiere fut"
la lumiere soit et la lumiere fut Que
$>
$>./rostring " AkjhZ zLKIJz , 23y"
zLKIJz , 23y AkjhZ
$>
$>./rostring | cat -e
$
$>

View File

@@ -0,0 +1,12 @@
$>./rotone "abc"
bcd
$>./rotone "Les stagiaires du staff ne sentent pas toujours tres bon." | cat -e
Mft tubhjbjsft ev tubgg of tfoufou qbt upvkpvst usft cpo.$
$>./rotone "AkjhZ zLKIJz , 23y " | cat -e
BlkiA aMLJKa , 23z $
$>./rotone | cat -e
$
$>
$>./rotone "" | cat -e
$
$>

View File

@@ -0,0 +1,28 @@
Assignment name : rotone
Expected files : rotone.c
Allowed functions: write
--------------------------------------------------------------------------------
Write a program that takes a string and displays it, replacing each of its
letters by the next one in alphabetical order.
'z' becomes 'a' and 'Z' becomes 'A'. Case remains unaffected.
The output will be followed by a \n.
If the number of arguments is not 1, the program displays \n.
Example:
$>./rotone "abc"
bcd
$>./rotone "Les stagiaires du staff ne sentent pas toujours tres bon." | cat -e
Mft tubhjbjsft ev tubgg of tfoufou qbt upvkpvst usft cpo.$
$>./rotone "AkjhZ zLKIJz , 23y " | cat -e
BlkiA aMLJKa , 23z $
$>./rotone | cat -e
$
$>
$>./rotone "" | cat -e
$
$>

View File

@@ -0,0 +1,31 @@
Assignment name : rotone
Expected files : rotone.c
Allowed functions: write
--------------------------------------------------------------------------------
Écrire un programme nommé rotone, qui prend en paramètre une chaîne de
caractères, et qui affiche cette chaîne en remplaçant chaque caractère
alphabétique par le caractère suivant dans l'ordre alphabétique.
'z' devient 'a' et 'Z' devient 'A'. Les majuscules restent des majuscules, les
minuscules restent des minuscules.
L'affichage se termine toujours par un retour à la ligne.
Si le nombre de paramètres transmis est différent de 1, le programme affiche
'\n'.
Exemple:
$>./rotone "abc"
bcd
$>./rotone "Les stagiaires du staff ne sentent pas toujours tres bon." | cat -e
Mft tubhjbjsft ev tubgg of tfoufou qbt upvkpvst usft cpo.$
$>./rotone "AkjhZ zLKIJz , 23y " | cat -e
BlkiA aMLJKa , 23z $
$>./rotone | cat -e
$
$>
$>./rotone "" | cat -e
$
$>

View File

@@ -0,0 +1,30 @@
Exercitiu : rotone
Fisiere de iesire : rotone.c
Functii autorizate : write
--------------------------------------------------------------------------------
Scrieti un program numit rotone, ce ia ca parametru un sir de caractere si care
afiseaza acest sir inlocuind fiecare caracter alfabetic cu caracterul urmator
in ordine alfabetica.
'z' devine 'a' si 'Z' devine 'A'. Majusculele raman majuscule, iar minusculele
raman minuscule.
Afisarea se termina intotdeauna cu un retur de linie.
Daca numarul de parametri transmis este diferit de 1, programul va afisa '\n'.
Exemplu:
$>./rotone "abc"
bcd
$>./rotone "Les stagiaires du staff ne sentent pas toujours tres bon." | cat -e
Mft tubhjbjsft ev tubgg of tfoufou qbt upvkpvst usft cpo.$
$>./rotone "AkjhZ zLKIJz , 23y " | cat -e
BlkiA aMLJKa , 23z $
$>./rotone | cat -e
$
$>
$>./rotone "" | cat -e
$
$>