Skip to content
Snippets Groups Projects
Verified Commit af9cdf5b authored by orestis.malaspin's avatar orestis.malaspin
Browse files

aded a few more exercises

parent efaaec10
No related branches found
No related tags found
No related merge requests found
Pipeline #15118 passed
*.pdf
PDFOPTIONS = -t pdf
PDFOPTIONS += --pdf-engine xelatex
MD=$(wildcard *.md) # Tous les fichiers .md
PDF=$(MD:%.md=%.pdf) # Pour les fichier pdf on transforme .md -> .pdf
MARKDOWN=$(MD:%.md=%.markdown) # Pour les fichier markdown on transforme .md -> .markdown
all: $(PDF) # La cible par défaut (all) exécute les cibles %.pdf
docker: docker-compose.yml
docker-compose run slides make all -k || true
docker_clean: docker-compose.yml
docker-compose run slides make clean -k || true
markdown: $(MARKDOWN) # La markdown les cibles %.markdown
%.pdf: %.md
pandoc -s $(OPTIONS) $(PDFOPTIONS) -o $@ $^
%.markdown: %.md metadata.yaml yq
sed '1 { /^---/ { :a N; /\n---/! ba; d} }' $< > no_header
grep -v -F -x -f no_header $< > header.yaml
echo "---" > tmp.yaml
./yq_linux_amd64 merge metadata.yaml header.yaml >> tmp.yaml
cat tmp.yaml no_header > $@
rm no_header header.yaml tmp.yaml
yq: # On peut même télécharger un petit programme avec notre makefile
wget -nc https://github.com/mikefarah/yq/releases/download/3.4.1/yq_linux_amd64
chmod "u+x" yq_linux_amd64
deploy: all
mkdir -p algo_cours
cp *.pdf algo_cours
clean:
rm -f *.pdf *.markdown yq_linux_amd64*
......@@ -124,3 +124,90 @@ Exemples:
"" -> "what is happening"
```
## En majuscules
Écrire une fonction qui prend une chaîne de caractères en entrée et retourne
une chaîne de caractères où toutes les lettres sont mises en majuscule.
Exemples:
```
"Hello !" -> "hello !"
"WHAT IS HAPPENING" -> "what is happening"
"CSGO is not a game" -> "csgo is not a game"
```
## Inversion
Écrire une fonction qui prend une chaîne de caractères en entrée et retourne
une chaîne de caractères où on change la casse de toutes les lettres.
Exemples:
```
"Hello !" -> "hELLO !"
"WHAT IS HAPPENING" -> "what is happening"
"CSGO is not a game" -> "csgo IS NOT A GAME"
```
## Écrire bizarrement
Écrire une fonction qui prend une chaîne de caractères en entrée et retourne
une chaîne de caractères où à chaque caractère on change la casse (peu importe
la casse de la chaîne en entrée) en commençant par une majuscule.
Exemples:
```
"Hello !" -> "HeLlo !"
"WHAT IS HAPPENING" -> "WhAt Is HaPpEnInG"
"CSGO is not a game" -> "CsGo Is NoT A GaMe"
```
## Transformer des caractères en nombres entiers
Écrire une fonction qui prend une chaîne de caractères en entrée qui contient
que des chiffres de `0` à `9` et la transforme en nombre (interdiction
d'utiliser `atoi` évidemment).
Exemples:
```
"1234" -> 1234
"012345" -> 12345
"0000000" -> 0
"-123" -> -123
```
## Nombres plus petits ou égaux
Écrire une fonction qui prend deux chaînes de caractères en entrée, `lhs` et
`rhs` respectivement et déterminant si `lhs <= rhs` où la règle `<=` est la
comparaison des entiers représentés par `lhs` et `rhs` respectivement
Exemples:
```
"1234", "234" -> faux (1234 > 234)
"1234", "12345" -> vrai (1234 < 12345)
"1234", "1234" -> vrai (1234 == 1234)
"1234", "00123" -> faux (1234 > 123)
"-12345", "1234", "-12312" -> vrai (-12345 < 1234)
```
## Transformer des caractères en nombres à virgule
Écrire une fonction qui prend une chaîne de caractères en entrée qui contient
que des chiffres de `0` à `9` et au plus un `.` et la transforme en nombre à virgule (interdiction
d'utiliser `atof` évidemment).
Exemples:
```
"1234.1" -> 1234.1
"012345" -> 12345.0
"0000.000" -> 0.0
"-123.6" -> -123.6
```
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment