mirror of https://github.com/01-edu/public.git
Refactor & Beautify & destruction commit
return early, remove else branches, reorder conditions and top-level functions, remove empty lines, remove unnecessary append(), fix typos, stop using testing package, remove dead code, fix mistakes in subjects, tests and solutions, remove disclaimers, reformat comments, simplify solutions, tests, add more instructions to subjects, remove obsolete files, etc. Some of the reasons behind those modifications will be added to good-practices.en.md Some of the exercises are now broken, they will have to be fixed, most of them have a "TODO:" comment.
This commit is contained in:
parent
101c5e8be5
commit
0424daa985
|
@ -2,9 +2,8 @@
|
|||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: "[INSCRIPTION FORM] - input type date doesn't appear in safari"
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
labels: ""
|
||||
assignees: ""
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
|
@ -12,6 +11,7 @@ A clear and concise description of what the bug is.
|
|||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
|
@ -24,15 +24,17 @@ A clear and concise description of what you expected to happen.
|
|||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- OS: [e.g. iOS]
|
||||
- Browser [e.g. chrome, safari]
|
||||
- Version [e.g. 22]
|
||||
|
||||
- OS: [e.g. iOS]
|
||||
- Browser [e.g. chrome, safari]
|
||||
- Version [e.g. 22]
|
||||
|
||||
**Smartphone (please complete the following information):**
|
||||
- Device: [e.g. iPhone6]
|
||||
- OS: [e.g. iOS8.1]
|
||||
- Browser [e.g. stock browser, safari]
|
||||
- Version [e.g. 22]
|
||||
|
||||
- Device: [e.g. iPhone6]
|
||||
- OS: [e.g. iOS8.1]
|
||||
- Browser [e.g. stock browser, safari]
|
||||
- Version [e.g. 22]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
title: ""
|
||||
labels: ""
|
||||
assignees: ""
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
# THE ADDITION OF EXERCISE PROCEDURE
|
||||
|
||||
|
||||
##### This is for a go exercise in the piscine-go
|
||||
|
||||
## **1. Writing the subject and / or writing the solution**
|
||||
|
||||
|
||||
Always address each exceptional cases.
|
||||
|
||||
Example: [fprime](https://github.com/01-edu/public/blob/master/subjects/fprime.en.md).
|
||||
Example: [fprime](https://github.com/01-edu/public/blob/master/subjects/fprime.en.md).
|
||||
|
||||
The exceptional cases in the `usage` part.
|
||||
The exceptional cases in the `usage` part.
|
||||
|
||||
```console
|
||||
student@ubuntu:~/piscine-go/test$ go build
|
||||
|
@ -39,22 +38,21 @@ Some students found this mistake. An update of the subject during the exam treat
|
|||
|
||||
2. Always check the formating md
|
||||
|
||||
------
|
||||
---
|
||||
|
||||
### fprime <span style="color:#ff3234">(Title of the exercise)</span>
|
||||
### fprime <span style="color:#ff3234">(Title of the exercise)</span>
|
||||
|
||||
#### Instructions <span style="color:#ff3234">(Instructions of the exercise)</span>
|
||||
|
||||
|
||||
Write a program that takes a positive `int` and displays its prime factors, followed by a newline (`'\n'`). <span style="color:#ff3234">(general guidelines, notice the imperative style tense and the avoidance of “you”. “You” is authorized in the case of a presence of a back story where the player is immersed)</span>
|
||||
|
||||
- Factors must be displayed in ascending order and separated by `*`. <span style="color:#ff3234">(formating requirement) </span>
|
||||
- Factors must be displayed in ascending order and separated by `*`. <span style="color:#ff3234">(formating requirement) </span>
|
||||
|
||||
- If the number of parameters is different from 1, the program displays a newline. <span style="color:#ff3234">(special case requirement, this case will need to be tested)</span>
|
||||
- If the number of parameters is different from 1, the program displays a newline. <span style="color:#ff3234">(special case requirement, this case will need to be tested)</span>
|
||||
|
||||
- The input, when there is one, will always be valid. <span style="color:#ff3234">(Clarification on what the tester will do, hence giving the student guidelines on the cases to be handled, the tests have to reflect this instruction as well)</span>
|
||||
- The input, when there is one, will always be valid. <span style="color:#ff3234">(Clarification on what the tester will do, hence giving the student guidelines on the cases to be handled, the tests have to reflect this instruction as well)</span>
|
||||
|
||||
- In this exercise the primes factor of 1 is considered as 1. <span style="color:#ff3234">(Handling of exceptional case: THIS Happens to be a mistake, we will see uses this example for the “UPDATING A SUBJECT/TEST PROCEDURE”)</sapn>
|
||||
- In this exercise the primes factor of 1 is considered as 1. <span style="color:#ff3234">(Handling of exceptional case: THIS Happens to be a mistake, we will see uses this example for the “UPDATING A SUBJECT/TEST PROCEDURE”)</sapn>
|
||||
|
||||
### Usage
|
||||
|
||||
|
@ -79,11 +77,11 @@ student@ubuntu:~/piscine-go/test$ ./test 1
|
|||
student@ubuntu:~/piscine-go/test$
|
||||
```
|
||||
|
||||
------
|
||||
---
|
||||
|
||||
## **2. Creating the files for tests (4 main cases)**
|
||||
|
||||
### always in -> *all/tests/go/*
|
||||
### always in -> _all/tests/go/_
|
||||
|
||||
### **Folder organization**
|
||||
|
||||
|
@ -98,7 +96,7 @@ go
|
|||
|
|
||||
| __ solutions
|
||||
| |-strlen.go (package solutions)
|
||||
|
|
||||
|
|
||||
| __ student (the same thing as the solutions, just run "cp -aT solutions/ student/")
|
||||
```
|
||||
|
||||
|
@ -149,12 +147,12 @@ go
|
|||
| |-atoi.go (package solutions)
|
||||
| |__atoiprog
|
||||
| |-main.go (package main)(func main(){} stays empty)
|
||||
| |-atoiprog_test.go
|
||||
| |-atoiprog_test.go
|
||||
|
|
||||
| __ student (the same thing as the solutions, just run "cp -aT solutions/ student/")
|
||||
```
|
||||
|
||||
------
|
||||
---
|
||||
|
||||
## **3. Writing a file_test.go (test file for go)**
|
||||
|
||||
|
@ -164,8 +162,8 @@ go
|
|||
|
||||
- **If** the source is not in the import section, copy and paste the function, with **lowercase** for the first letter of its name.
|
||||
|
||||
- Example: addprimesum_test.go
|
||||
|
||||
- Example: addprimesum_test.go
|
||||
|
||||
![isaprime](isaprime.png)
|
||||
|
||||
The func isAPrime is fully copied to the file.
|
||||
|
@ -176,19 +174,19 @@ Every special case in the subject should be tested. Preferably first. Before the
|
|||
|
||||
### <span style="color:#00bae6">**RULE 3**</span>
|
||||
|
||||
Whenever possible do at least 1 random test! This is to avoid cheating by predictability of the tests. If the tests are fixed, then the student may create a forest of ifs program to bypass the tester.
|
||||
Whenever possible do at least 1 random test! This is to avoid cheating by predictability of the tests. If the tests are fixed, then the student may create a forest of ifs program to bypass the tester.
|
||||
|
||||
### z01.functions to be used by tester
|
||||
|
||||
- Function exercise in a Quest (strlen) ![z01sl](strlenz01.png)
|
||||
|
||||
- Function exercise in a Quest (strlen) ![z01sl](strlenz01.png)
|
||||
|
||||
```go
|
||||
z01.Challenge(t, studentSol, studentStu) // if the program doesn’t have arguments
|
||||
|
||||
z01.Challenge(t, studentSol, studentStu, args...) //if the program has arguments
|
||||
```
|
||||
|
||||
- Program exercise in a Quest (doop) ![z01doop](doopz01.png)<- Screenshots to be added.
|
||||
- Program exercise in a Quest (doop) ![z01doop](doopz01.png)<- Screenshots to be added.
|
||||
|
||||
```go
|
||||
z01.ChallengeMain(t) // if the program doesn’t have arguments
|
||||
|
@ -212,7 +210,7 @@ z01.Challenge(t, studentSol, studentStu) // if the program doesn’t have argume
|
|||
z01.Challenge(t, studentSol, studentStu, args...) //if the program has arguments
|
||||
```
|
||||
|
||||
------
|
||||
---
|
||||
|
||||
## **4. Testing locally (`go test` or `go test -run=Test\<nameOfTheFunction\>`)**
|
||||
|
||||
|
@ -229,7 +227,7 @@ cp -aT solutions/ student
|
|||
|
||||
### Execute a go test in the appropriate folder
|
||||
|
||||
- Function exercise in a Quest `(strlen)` ![](image.png)
|
||||
- Function exercise in a Quest `(strlen)` ![](image.png)
|
||||
|
||||
`all/test/go`
|
||||
|
||||
|
@ -237,7 +235,7 @@ cp -aT solutions/ student
|
|||
go test -run=TestStrlen
|
||||
```
|
||||
|
||||
- Program exercise in a Quest `(doop)` ![](image.png)<- Screenshots to be added.
|
||||
- Program exercise in a Quest `(doop)` ![](image.png)<- Screenshots to be added.
|
||||
|
||||
`all/test/go/`
|
||||
|
||||
|
@ -247,7 +245,7 @@ go test -run=TestDoop
|
|||
|
||||
- Program exercise in the exam `(dooprog)` Screenshots to be added.
|
||||
|
||||
Here you can do just *go test*, because there's only one test file
|
||||
Here you can do just _go test_, because there's only one test file
|
||||
|
||||
`all/test/go/student/dooprog`
|
||||
|
||||
|
@ -263,16 +261,15 @@ go test
|
|||
go test
|
||||
```
|
||||
|
||||
### **NOTE:** If a go test gives a (cached) result, use this type of command (example with raid3):
|
||||
|
||||
### **NOTE:** If a go test gives a (cached) result, use this type of command (example with raid3):
|
||||
|
||||
```go test count=1 raid3_test.go```
|
||||
`go test count=1 raid3_test.go`
|
||||
|
||||
The result should be an OK message:
|
||||
|
||||
- This means that the test is running correctly when the correct solution is given. If this does not work, the test file is likely to have errors inside.
|
||||
- This means that the test is running correctly when the correct solution is given. If this does not work, the test file is likely to have errors inside.
|
||||
|
||||
- Time should be under 5-6 seconds. If longer, remove some of the iteration of the random tests (for example, less random tests)
|
||||
- Time should be under 5-6 seconds. If longer, remove some of the iteration of the random tests (for example, less random tests)
|
||||
|
||||
- Be watchful of exercises with challenge function: Always test a copy of the variable and not the same variable for both the student and the solution function.
|
||||
|
||||
|
|
|
@ -4,17 +4,17 @@
|
|||
|
||||
<kbd>F10</kbd> (Open Setup)
|
||||
|
||||
- _Security_
|
||||
- _Create BIOS Administrator Password_ → Set password
|
||||
- _Advanced_
|
||||
- _Boot Options_
|
||||
- _USB Storage Boot_ → Disabled
|
||||
- _Fast Boot_ → Disabled (disturbs network boot)
|
||||
- _Audio Alerts During Boot_ → Disabled (very noisy)
|
||||
- _HP Sure Recover_
|
||||
- _HP Sure Recover_ → Disabled (tries to restore Windows)
|
||||
- _Secure Boot Configuration_
|
||||
- _Configure Legacy Support and Secure Boot_ → «Legacy Support Disable and Secure Boot Disable» (**TODO**: use Secure Boot)
|
||||
- _Security_
|
||||
- _Create BIOS Administrator Password_ → Set password
|
||||
- _Advanced_
|
||||
- _Boot Options_
|
||||
- _USB Storage Boot_ → Disabled
|
||||
- _Fast Boot_ → Disabled (disturbs network boot)
|
||||
- _Audio Alerts During Boot_ → Disabled (very noisy)
|
||||
- _HP Sure Recover_
|
||||
- _HP Sure Recover_ → Disabled (tries to restore Windows)
|
||||
- _Secure Boot Configuration_
|
||||
- _Configure Legacy Support and Secure Boot_ → «Legacy Support Disable and Secure Boot Disable» (**TODO**: use Secure Boot)
|
||||
|
||||
<kbd>F10</kbd> → Yes (Save changes & Reboot)
|
||||
|
||||
|
@ -22,8 +22,8 @@
|
|||
|
||||
## Automation
|
||||
|
||||
- Can be automated using Intel vPro/AMT (**TODO**)
|
||||
- Can be partially automated with a USB programmable keyboard such as :
|
||||
- [USB Rubber Ducky](https://shop.hak5.org/products/usb-rubber-ducky-deluxe)
|
||||
- [XK-24 USB Programmable Keypad for Windows or Mac](https://www.amazon.com/gp/product/B003MB780E)
|
||||
- [Cactus WHID: WiFi HID Injector USB Rubberducky](https://www.tindie.com/products/aprbrother/cactus-whid-wifi-hid-injector-usb-rubberducky/)
|
||||
- Can be automated using Intel vPro/AMT (**TODO**)
|
||||
- Can be partially automated with a USB programmable keyboard such as :
|
||||
- [USB Rubber Ducky](https://shop.hak5.org/products/usb-rubber-ducky-deluxe)
|
||||
- [XK-24 USB Programmable Keypad for Windows or Mac](https://www.amazon.com/gp/product/B003MB780E)
|
||||
- [Cactus WHID: WiFi HID Injector USB Rubberducky](https://www.tindie.com/products/aprbrother/cactus-whid-wifi-hid-injector-usb-rubberducky/)
|
||||
|
|
|
@ -12,27 +12,27 @@ Notions: basic usage and interaction with a command line terminal.
|
|||
|
||||
Videos:
|
||||
|
||||
- 1-2 `curl` with the GitHub api and Example of shell file | https://www.youtube.com/watch?v=A0Mqc215igw
|
||||
- 1-3 `touch`, `chmod` and `echo` | https://www.youtube.com/watch?v=21h-vsuXgDU
|
||||
- 1-4 `find` and `grep` | https://www.youtube.com/watch?v=7a1JSWHhJlM
|
||||
- 1-5 `cut`, `sed` and `tr` | https://www.youtube.com/watch?v=Nil7rVP3eMI
|
||||
- 1-6 `jq` and `wc` | https://www.youtube.com/watch?v=cQmcaOseuiA&
|
||||
- 1-2 `curl` with the GitHub api and Example of shell file | https://www.youtube.com/watch?v=A0Mqc215igw
|
||||
- 1-3 `touch`, `chmod` and `echo` | https://www.youtube.com/watch?v=21h-vsuXgDU
|
||||
- 1-4 `find` and `grep` | https://www.youtube.com/watch?v=7a1JSWHhJlM
|
||||
- 1-5 `cut`, `sed` and `tr` | https://www.youtube.com/watch?v=Nil7rVP3eMI
|
||||
- 1-6 `jq` and `wc` | https://www.youtube.com/watch?v=cQmcaOseuiA&
|
||||
|
||||
Exercices:
|
||||
|
||||
- introduction | https://public.01-edu.org/subjects/introduction.en
|
||||
- make-it-better | https://public.01-edu.org/subjects/make-it-better.en
|
||||
- to-git-or-not-to-git | https://public.01-edu.org/subjects/to-git-or-not-to-git.en
|
||||
- who-are-you | https://public.01-edu.org/subjects/who-are-you.en
|
||||
- cl-camp1 | https://public.01-edu.org/subjects/cl-camp1.en
|
||||
- cl-camp2 | https://public.01-edu.org/subjects/cl-camp2.en
|
||||
- cl-camp3 | https://public.01-edu.org/subjects/cl-camp3.en
|
||||
- cl-camp4 | https://public.01-edu.org/subjects/cl-camp4.en
|
||||
- cl-camp5 | https://public.01-edu.org/subjects/cl-camp5.en
|
||||
- cl-camp6 | https://public.01-edu.org/subjects/cl-camp6.en
|
||||
- cl-camp7 | https://public.01-edu.org/subjects/cl-camp7.en
|
||||
- cl-camp8 | https://public.01-edu.org/subjects/cl-camp8.en
|
||||
- now-get-to-work | https://public.01-edu.org/subjects/now-get-to-work.en
|
||||
- introduction | https://public.01-edu.org/subjects/introduction.en
|
||||
- make-it-better | https://public.01-edu.org/subjects/make-it-better.en
|
||||
- to-git-or-not-to-git | https://public.01-edu.org/subjects/to-git-or-not-to-git.en
|
||||
- who-are-you | https://public.01-edu.org/subjects/who-are-you.en
|
||||
- cl-camp1 | https://public.01-edu.org/subjects/cl-camp1.en
|
||||
- cl-camp2 | https://public.01-edu.org/subjects/cl-camp2.en
|
||||
- cl-camp3 | https://public.01-edu.org/subjects/cl-camp3.en
|
||||
- cl-camp4 | https://public.01-edu.org/subjects/cl-camp4.en
|
||||
- cl-camp5 | https://public.01-edu.org/subjects/cl-camp5.en
|
||||
- cl-camp6 | https://public.01-edu.org/subjects/cl-camp6.en
|
||||
- cl-camp7 | https://public.01-edu.org/subjects/cl-camp7.en
|
||||
- cl-camp8 | https://public.01-edu.org/subjects/cl-camp8.en
|
||||
- now-get-to-work | https://public.01-edu.org/subjects/now-get-to-work.en
|
||||
|
||||
### Sprint 2
|
||||
|
||||
|
@ -42,21 +42,21 @@ Notions: Variables declaration, Loops, if and else statement, usage of z01.Print
|
|||
|
||||
Videos:
|
||||
|
||||
- 02-01-If and Else Statements in Go | https://www.youtube.com/watch?v=rnF1_SfeGE4
|
||||
- 02-02-ForLoops | https://www.youtube.com/watch?v=Bt47lx6q2-4
|
||||
- 02-03-PrintRune function | https://www.youtube.com/watch?v=o8JrvI3jqoM
|
||||
- 02-04-Variables Declaration and ascii | https://www.youtube.com/watch?v=RCNOV8m0hJQ
|
||||
- 02-01-If and Else Statements in Go | https://www.youtube.com/watch?v=rnF1_SfeGE4
|
||||
- 02-02-ForLoops | https://www.youtube.com/watch?v=Bt47lx6q2-4
|
||||
- 02-03-PrintRune function | https://www.youtube.com/watch?v=o8JrvI3jqoM
|
||||
- 02-04-Variables Declaration and ascii | https://www.youtube.com/watch?v=RCNOV8m0hJQ
|
||||
|
||||
Exercices:
|
||||
|
||||
- printalphabet | https://public.01-edu.org/subjects/printalphabet.en
|
||||
- printreversealphabet | https://public.01-edu.org/subjects/printreversealphabet.en
|
||||
- prindigits | https://public.01-edu.org/subjects/printdigits.en
|
||||
- isnegative | https://public.01-edu.org/subjects/isnegative.en
|
||||
- printcomb | https://public.01-edu.org/subjects/printcomb.en
|
||||
- printcomb2 | https://public.01-edu.org/subjects/printcomb2.en
|
||||
- printnbr | https://public.01-edu.org/subjects/printnbr.en
|
||||
- printcombn | https://public.01-edu.org/subjects/printcombn.en
|
||||
- printalphabet | https://public.01-edu.org/subjects/printalphabet.en
|
||||
- printreversealphabet | https://public.01-edu.org/subjects/printreversealphabet.en
|
||||
- prindigits | https://public.01-edu.org/subjects/printdigits.en
|
||||
- isnegative | https://public.01-edu.org/subjects/isnegative.en
|
||||
- printcomb | https://public.01-edu.org/subjects/printcomb.en
|
||||
- printcomb2 | https://public.01-edu.org/subjects/printcomb2.en
|
||||
- printnbr | https://public.01-edu.org/subjects/printnbr.en
|
||||
- printcombn | https://public.01-edu.org/subjects/printcombn.en
|
||||
|
||||
### Sprint 3
|
||||
|
||||
|
@ -66,25 +66,25 @@ Notions: String Manupulation, Range Loops, Pointers, Modulo and Division relativ
|
|||
|
||||
Videos:
|
||||
|
||||
- 03-01-StringsManipulation | https://www.youtube.com/watch?v=8LplJN_8iOU
|
||||
- 03-02-RangeLoop | https://www.youtube.com/watch?v=i89N4cjh1-g
|
||||
- 03-03-Pointers on variables | https://www.youtube.com/watch?v=owVPa5b1BMc
|
||||
- 03-04-Modulo and Division | https://www.youtube.com/watch?v=NVan-9-Ioec
|
||||
- 03-01-StringsManipulation | https://www.youtube.com/watch?v=8LplJN_8iOU
|
||||
- 03-02-RangeLoop | https://www.youtube.com/watch?v=i89N4cjh1-g
|
||||
- 03-03-Pointers on variables | https://www.youtube.com/watch?v=owVPa5b1BMc
|
||||
- 03-04-Modulo and Division | https://www.youtube.com/watch?v=NVan-9-Ioec
|
||||
|
||||
Exercices:
|
||||
|
||||
- pointone | https://public.01-edu.org/subjects/pointone.en
|
||||
- ultimatepointone | https://public.01-edu.org/subjects/ultimatepointone.en
|
||||
- divmod | https://public.01-edu.org/subjects/divmod.en
|
||||
- ultimatedivmod | https://public.01-edu.org/subjects/ultimatedivmod.en
|
||||
- printstr | https://public.01-edu.org/subjects/printstr.en
|
||||
- strlen | https://public.01-edu.org/subjects/strlen.en
|
||||
- swap | https://public.01-edu.org/subjects/swap.en
|
||||
- strrev | https://public.01-edu.org/subjects/strrev.en
|
||||
- basicatoi | https://public.01-edu.org/subjects/basicatoi.en
|
||||
- basicatoi2 | https://public.01-edu.org/subjects/basicatoi2.en
|
||||
- atoi | https://public.01-edu.org/subjects/atoi.en
|
||||
- sortintegerable | https://public.01-edu.org/subjects/sortintegertable.en
|
||||
- pointone | https://public.01-edu.org/subjects/pointone.en
|
||||
- ultimatepointone | https://public.01-edu.org/subjects/ultimatepointone.en
|
||||
- divmod | https://public.01-edu.org/subjects/divmod.en
|
||||
- ultimatedivmod | https://public.01-edu.org/subjects/ultimatedivmod.en
|
||||
- printstr | https://public.01-edu.org/subjects/printstr.en
|
||||
- strlen | https://public.01-edu.org/subjects/strlen.en
|
||||
- swap | https://public.01-edu.org/subjects/swap.en
|
||||
- strrev | https://public.01-edu.org/subjects/strrev.en
|
||||
- basicatoi | https://public.01-edu.org/subjects/basicatoi.en
|
||||
- basicatoi2 | https://public.01-edu.org/subjects/basicatoi2.en
|
||||
- atoi | https://public.01-edu.org/subjects/atoi.en
|
||||
- sortintegerable | https://public.01-edu.org/subjects/sortintegertable.en
|
||||
|
||||
### Checkpoint 1 (4hours)
|
||||
|
||||
|
@ -106,19 +106,19 @@ Notions: Iterative and recursive programmation
|
|||
|
||||
Videos:
|
||||
|
||||
- 04-01-Iterativity and Recursivity | https://www.youtube.com/watch?v=oCZDdAID5Ik
|
||||
- 04-01-Iterativity and Recursivity | https://www.youtube.com/watch?v=oCZDdAID5Ik
|
||||
|
||||
Exercices:
|
||||
|
||||
- iterativefactorial | https://public.01-edu.org/subjects/iterativefactorial.en
|
||||
- recursivefactorial | https://public.01-edu.org/subjects/recursivefactorial.en
|
||||
- iterativepower | https://public.01-edu.org/subjects/iterativepower.en
|
||||
- recursivepower | https://public.01-edu.org/subjects/recursivepower.en
|
||||
- fibonacci | https://public.01-edu.org/subjects/fibonacci.en
|
||||
- sqrt | https://public.01-edu.org/subjects/sqrt.en
|
||||
- isprime | https://public.01-edu.org/subjects/isprime.en
|
||||
- findnextprime | https://public.01-edu.org/subjects/findnextprime.en
|
||||
- eightqueens | https://public.01-edu.org/subjects/eightqueens.en
|
||||
- iterativefactorial | https://public.01-edu.org/subjects/iterativefactorial.en
|
||||
- recursivefactorial | https://public.01-edu.org/subjects/recursivefactorial.en
|
||||
- iterativepower | https://public.01-edu.org/subjects/iterativepower.en
|
||||
- recursivepower | https://public.01-edu.org/subjects/recursivepower.en
|
||||
- fibonacci | https://public.01-edu.org/subjects/fibonacci.en
|
||||
- sqrt | https://public.01-edu.org/subjects/sqrt.en
|
||||
- isprime | https://public.01-edu.org/subjects/isprime.en
|
||||
- findnextprime | https://public.01-edu.org/subjects/findnextprime.en
|
||||
- eightqueens | https://public.01-edu.org/subjects/eightqueens.en
|
||||
|
||||
### Sprint 5
|
||||
|
||||
|
@ -128,28 +128,28 @@ Notions: String Manipulation and medium-advanced algorithmia
|
|||
|
||||
Videos:
|
||||
|
||||
- 05-01-Runes, Bytes and Strings | https://www.youtube.com/watch?v=-eIU5ISID64
|
||||
- 05-01-Runes, Bytes and Strings | https://www.youtube.com/watch?v=-eIU5ISID64
|
||||
|
||||
Exercices:
|
||||
|
||||
- firstrune | https://public.01-edu.org/subjects/firstrune.en
|
||||
- nrune | https://public.01-edu.org/subjects/nrune.en
|
||||
- lastrune | https://public.01-edu.org/subjects/lastrune.en
|
||||
- index | https://public.01-edu.org/subjects/index.en
|
||||
- compare | https://public.01-edu.org/subjects/compare.en
|
||||
- toupper | https://public.01-edu.org/subjects/toupper.en
|
||||
- tolower | https://public.01-edu.org/subjects/tolower.en
|
||||
- capitalize | https://public.01-edu.org/subjects/capitalize.en
|
||||
- isalpha | https://public.01-edu.org/subjects/isalpha.en
|
||||
- isnumeric | https://public.01-edu.org/subjects/isnumeric.en
|
||||
- islower | https://public.01-edu.org/subjects/islower.en
|
||||
- isupper | https://public.01-edu.org/subjects/isupper.en
|
||||
- isprintable | https://public.01-edu.org/subjects/isprintable.en
|
||||
- concat | https://public.01-edu.org/subjects/concat.en
|
||||
- basicjoin | https://public.01-edu.org/subjects/basicjoin.en
|
||||
- join | https://public.01-edu.org/subjects/join.en
|
||||
- printnbrbase | https://public.01-edu.org/subjects/printnbrbase.en
|
||||
- atoibase | https://public.01-edu.org/subjects/atoibase.en
|
||||
- firstrune | https://public.01-edu.org/subjects/firstrune.en
|
||||
- nrune | https://public.01-edu.org/subjects/nrune.en
|
||||
- lastrune | https://public.01-edu.org/subjects/lastrune.en
|
||||
- index | https://public.01-edu.org/subjects/index.en
|
||||
- compare | https://public.01-edu.org/subjects/compare.en
|
||||
- toupper | https://public.01-edu.org/subjects/toupper.en
|
||||
- tolower | https://public.01-edu.org/subjects/tolower.en
|
||||
- capitalize | https://public.01-edu.org/subjects/capitalize.en
|
||||
- isalpha | https://public.01-edu.org/subjects/isalpha.en
|
||||
- isnumeric | https://public.01-edu.org/subjects/isnumeric.en
|
||||
- islower | https://public.01-edu.org/subjects/islower.en
|
||||
- isupper | https://public.01-edu.org/subjects/isupper.en
|
||||
- isprintable | https://public.01-edu.org/subjects/isprintable.en
|
||||
- concat | https://public.01-edu.org/subjects/concat.en
|
||||
- basicjoin | https://public.01-edu.org/subjects/basicjoin.en
|
||||
- join | https://public.01-edu.org/subjects/join.en
|
||||
- printnbrbase | https://public.01-edu.org/subjects/printnbrbase.en
|
||||
- atoibase | https://public.01-edu.org/subjects/atoibase.en
|
||||
|
||||
### Sprint 6
|
||||
|
||||
|
@ -159,14 +159,14 @@ Notions: Arguments manipulation in programs
|
|||
|
||||
Videos:
|
||||
|
||||
- 06-01-Os.Args | https://www.youtube.com/watch?v=I1xt_TLRhF0
|
||||
- 06-01-Os.Args | https://www.youtube.com/watch?v=I1xt_TLRhF0
|
||||
|
||||
Exercices:
|
||||
|
||||
- printprogramname | https://public.01-edu.org/subjects/printprogramname.en
|
||||
- printparams | https://public.01-edu.org/subjects/printparams.en
|
||||
- revparams | https://public.01-edu.org/subjects/revparams.en
|
||||
- sortparams | https://public.01-edu.org/subjects/sortparams.en
|
||||
- printprogramname | https://public.01-edu.org/subjects/printprogramname.en
|
||||
- printparams | https://public.01-edu.org/subjects/printparams.en
|
||||
- revparams | https://public.01-edu.org/subjects/revparams.en
|
||||
- sortparams | https://public.01-edu.org/subjects/sortparams.en
|
||||
|
||||
### Sprint 7
|
||||
|
||||
|
@ -176,17 +176,17 @@ Notions: Usage of Make and Append
|
|||
|
||||
Videos:
|
||||
|
||||
- 07-01-Make and Append methods | https://www.youtube.com/watch?v=2HHVUM0YQuI
|
||||
- 07-01-Make and Append methods | https://www.youtube.com/watch?v=2HHVUM0YQuI
|
||||
|
||||
Exercices:
|
||||
|
||||
- appendrange | https://public.01-edu.org/subjects/apprendrange.en
|
||||
- makerange | https://public.01-edu.org/subjects/makerange.en
|
||||
- concatparams | https://public.01-edu.org/subjects/concatparams.en
|
||||
- splitwhitespaces | https://public.01-edu.org/subjects/splitwhitespaces.en
|
||||
- printwordstables | https://public.01-edu.org/subjects/printwordstables.en
|
||||
- convertbase | https://public.01-edu.org/subjects/converbase.en
|
||||
- split | https://public.01-edu.org/subjects/split.en
|
||||
- appendrange | https://public.01-edu.org/subjects/apprendrange.en
|
||||
- makerange | https://public.01-edu.org/subjects/makerange.en
|
||||
- concatparams | https://public.01-edu.org/subjects/concatparams.en
|
||||
- splitwhitespaces | https://public.01-edu.org/subjects/splitwhitespaces.en
|
||||
- printwordstables | https://public.01-edu.org/subjects/printwordstables.en
|
||||
- convertbase | https://public.01-edu.org/subjects/converbase.en
|
||||
- split | https://public.01-edu.org/subjects/split.en
|
||||
|
||||
### Checkpoint 2 (4hours)
|
||||
|
||||
|
@ -208,16 +208,16 @@ Notions: Creation of struct types and file manipulation (Open, Read, Close metho
|
|||
|
||||
Videos:
|
||||
|
||||
- 08-01-Structures in Go | https://www.youtube.com/watch?v=-24M7r7VuLY
|
||||
- 08-02-File Manipulation in go | https://www.youtube.com/watch?v=8vUgchQGhcQ
|
||||
- 08-01-Structures in Go | https://www.youtube.com/watch?v=-24M7r7VuLY
|
||||
- 08-02-File Manipulation in go | https://www.youtube.com/watch?v=8vUgchQGhcQ
|
||||
|
||||
Exercices:
|
||||
|
||||
- bool | https://public.01-edu.org/subjects/bool.en
|
||||
- point | https://public.01-edu.org/subjects/point.en
|
||||
- displayfile | https://public.01-edu.org/subjects/displayfile.en
|
||||
- cat | https://public.01-edu.org/subjects/cat.en
|
||||
- ztail | https://public.01-edu.org/subjects/ztail.en
|
||||
- bool | https://public.01-edu.org/subjects/bool.en
|
||||
- point | https://public.01-edu.org/subjects/point.en
|
||||
- displayfile | https://public.01-edu.org/subjects/displayfile.en
|
||||
- cat | https://public.01-edu.org/subjects/cat.en
|
||||
- ztail | https://public.01-edu.org/subjects/ztail.en
|
||||
|
||||
### Sprint 9
|
||||
|
||||
|
@ -227,18 +227,18 @@ Notions: Advance function prototyping
|
|||
|
||||
Videos:
|
||||
|
||||
- 09-01-Functions as Arguments | https://www.youtube.com/watch?v=lw8jUwsluAE
|
||||
- 09-01-Functions as Arguments | https://www.youtube.com/watch?v=lw8jUwsluAE
|
||||
|
||||
Exercices:
|
||||
|
||||
- foreach | https://public.01-edu.org/subjects/foreach.en
|
||||
- map | https://public.01-edu.org/subjects/map.en
|
||||
- any | https://public.01-edu.org/subjects/any.en
|
||||
- countif | https://public.01-edu.org/subjects/countif.en
|
||||
- issorted | https://public.01-edu.org/subjects/issorted.en
|
||||
- doop | https://public.01-edu.org/subjects/doop.en
|
||||
- sortwordarr | https://public.01-edu.org/subjects/sortwordarr.en
|
||||
- advancedsortwordarr | https://public.01-edu.org/subjects/advancedsortwordarr.en
|
||||
- foreach | https://public.01-edu.org/subjects/foreach.en
|
||||
- map | https://public.01-edu.org/subjects/map.en
|
||||
- any | https://public.01-edu.org/subjects/any.en
|
||||
- countif | https://public.01-edu.org/subjects/countif.en
|
||||
- issorted | https://public.01-edu.org/subjects/issorted.en
|
||||
- doop | https://public.01-edu.org/subjects/doop.en
|
||||
- sortwordarr | https://public.01-edu.org/subjects/sortwordarr.en
|
||||
- advancedsortwordarr | https://public.01-edu.org/subjects/advancedsortwordarr.en
|
||||
|
||||
### Sprint 10
|
||||
|
||||
|
@ -248,18 +248,18 @@ Notions: All previously viewed concepts in team work
|
|||
|
||||
Exercices:
|
||||
|
||||
- rot14 | https://public.01-edu.org/subjects/rot14.en
|
||||
- abort | https://public.01-edu.org/subjects/abort.en
|
||||
- collatzcountdown | https://public.01-edu.org/subjects/collatzcountdown.en
|
||||
- comcheck | https://public.01-edu.org/subjects/comcheck.en
|
||||
- enigma | https://public.01-edu.org/subjects/enigma.en
|
||||
- pilot | https://public.01-edu.org/subjects/pilot.en
|
||||
- fixthemain | https://public.01-edu.org/subjects/fixthemain.en
|
||||
- compact | https://public.01-edu.org/subjects/compact.en
|
||||
- activebits | https://public.01-edu.org/subjects/activebits.en
|
||||
- max | https://public.01-edu.org/subjects/max.en
|
||||
- join | https://public.01-edu.org/subjects/join.en
|
||||
- unmatch | https://public.01-edu.org/subjects/unmatch.en
|
||||
- rot14 | https://public.01-edu.org/subjects/rot14.en
|
||||
- abort | https://public.01-edu.org/subjects/abort.en
|
||||
- collatzcountdown | https://public.01-edu.org/subjects/collatzcountdown.en
|
||||
- comcheck | https://public.01-edu.org/subjects/comcheck.en
|
||||
- enigma | https://public.01-edu.org/subjects/enigma.en
|
||||
- pilot | https://public.01-edu.org/subjects/pilot.en
|
||||
- fixthemain | https://public.01-edu.org/subjects/fixthemain.en
|
||||
- compact | https://public.01-edu.org/subjects/compact.en
|
||||
- activebits | https://public.01-edu.org/subjects/activebits.en
|
||||
- max | https://public.01-edu.org/subjects/max.en
|
||||
- join | https://public.01-edu.org/subjects/join.en
|
||||
- unmatch | https://public.01-edu.org/subjects/unmatch.en
|
||||
|
||||
### Checkpoint 3 (4hours)
|
||||
|
||||
|
@ -281,25 +281,25 @@ Notions: Pointers manipulation and data structure
|
|||
|
||||
Videos:
|
||||
|
||||
- 11-01-Linked Lists Introduction | https://www.youtube.com/watch?v=EPICVEbylU0
|
||||
- 11-01-Linked Lists Introduction | https://www.youtube.com/watch?v=EPICVEbylU0
|
||||
|
||||
Exercices:
|
||||
|
||||
- listpushback | https://public.01-edu.org/subjects/listpushback.en
|
||||
- listpushfront | https://public.01-edu.org/subjects/listpushfront.en
|
||||
- listsize | https://public.01-edu.org/subjects/listsize.en
|
||||
- listlast | https://public.01-edu.org/subjects/listlast.en
|
||||
- listclear | https://public.01-edu.org/subjects/listclear.en
|
||||
- listat | https://public.01-edu.org/subjects/listat.en
|
||||
- listreverse | https://public.01-edu.org/subjects/listreverse.en
|
||||
- listforeach | https://public.01-edu.org/subjects/listforeach.en
|
||||
- listforeachif | https://public.01-edu.org/subjects/listforeachif.en
|
||||
- listfind | https://public.01-edu.org/subjects/listfind.en
|
||||
- listremoveif | https://public.01-edu.org/subjects/listremoveif.en
|
||||
- listmerge | https://public.01-edu.org/subjects/listmerge.en
|
||||
- listsort | https://public.01-edu.org/subjects/listsort.en
|
||||
- sortlistinsert | https://public.01-edu.org/subjects/sortlistinsert.en
|
||||
- sortedlistmerge | https://public.01-edu.org/subjects/sortedlistmerge.en
|
||||
- listpushback | https://public.01-edu.org/subjects/listpushback.en
|
||||
- listpushfront | https://public.01-edu.org/subjects/listpushfront.en
|
||||
- listsize | https://public.01-edu.org/subjects/listsize.en
|
||||
- listlast | https://public.01-edu.org/subjects/listlast.en
|
||||
- listclear | https://public.01-edu.org/subjects/listclear.en
|
||||
- listat | https://public.01-edu.org/subjects/listat.en
|
||||
- listreverse | https://public.01-edu.org/subjects/listreverse.en
|
||||
- listforeach | https://public.01-edu.org/subjects/listforeach.en
|
||||
- listforeachif | https://public.01-edu.org/subjects/listforeachif.en
|
||||
- listfind | https://public.01-edu.org/subjects/listfind.en
|
||||
- listremoveif | https://public.01-edu.org/subjects/listremoveif.en
|
||||
- listmerge | https://public.01-edu.org/subjects/listmerge.en
|
||||
- listsort | https://public.01-edu.org/subjects/listsort.en
|
||||
- sortlistinsert | https://public.01-edu.org/subjects/sortlistinsert.en
|
||||
- sortedlistmerge | https://public.01-edu.org/subjects/sortedlistmerge.en
|
||||
|
||||
### Sprint 12
|
||||
|
||||
|
@ -309,21 +309,21 @@ Notions: Advanced Data Structure using binary trees
|
|||
|
||||
Videos:
|
||||
|
||||
- 12-01-Introduction to Binary Trees | https://www.youtube.com/watch?v=3g2WCqWNIVs
|
||||
- 12-01-Introduction to Binary Trees | https://www.youtube.com/watch?v=3g2WCqWNIVs
|
||||
|
||||
Exercices:
|
||||
|
||||
- btreeinsertdata | https://public.01-edu.org/subjects/btreeinsertdata.en
|
||||
- btreeapplyinorder | https://public.01-edu.org/subjects/btreeapplyinorder.en
|
||||
- btreeapplypreorder | https://public.01-edu.org/subjects/btreeapplypreorder.en
|
||||
- btreesearchitem | https://public.01-edu.org/subjects/btreesearchitem.en
|
||||
- btreelevelcount | https://public.01-edu.org/subjects/btreelevelcount.en
|
||||
- btreeisbinary | https://public.01-edu.org/subjects/btreeisbinary.en
|
||||
- btreeapplylevel | https://public.01-edu.org/subjects/btreeapplylevel.en
|
||||
- btreemax | https://public.01-edu.org/subjects/btreemax.en
|
||||
- btreemin | https://public.01-edu.org/subjects/btreemin.en
|
||||
- btreetransplant | https://public.01-edu.org/subjects/btreetransplant.en
|
||||
- btreedeletenode | https://public.01-edu.org/subjects/btreedeletenode.en
|
||||
- btreeinsertdata | https://public.01-edu.org/subjects/btreeinsertdata.en
|
||||
- btreeapplyinorder | https://public.01-edu.org/subjects/btreeapplyinorder.en
|
||||
- btreeapplypreorder | https://public.01-edu.org/subjects/btreeapplypreorder.en
|
||||
- btreesearchitem | https://public.01-edu.org/subjects/btreesearchitem.en
|
||||
- btreelevelcount | https://public.01-edu.org/subjects/btreelevelcount.en
|
||||
- btreeisbinary | https://public.01-edu.org/subjects/btreeisbinary.en
|
||||
- btreeapplylevel | https://public.01-edu.org/subjects/btreeapplylevel.en
|
||||
- btreemax | https://public.01-edu.org/subjects/btreemax.en
|
||||
- btreemin | https://public.01-edu.org/subjects/btreemin.en
|
||||
- btreetransplant | https://public.01-edu.org/subjects/btreetransplant.en
|
||||
- btreedeletenode | https://public.01-edu.org/subjects/btreedeletenode.en
|
||||
|
||||
### Checkpoint 4 - Final Checkpoint (8hours)
|
||||
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
Objects of the Admin can be configured :
|
||||
|
||||
- By setting particular **attributes** to the object
|
||||
- By associating **children** to the object
|
||||
- By setting particular **attributes** to the object
|
||||
- By associating **children** to the object
|
||||
|
||||
Children can be added, deleted, reordered in the list. Also, it's possible to configure it in a special way for the parent object, by setting children attributes for all the children.
|
||||
|
||||
|
@ -28,13 +28,13 @@ This documentation explains how to associate a child to a parent object.
|
|||
|
||||
#### 3. Set up the new child:
|
||||
|
||||
- Enter its name in the input "Add a child name"
|
||||
- Select your step object in the select input
|
||||
- Click on "ADD"
|
||||
- Enter its name in the input "Add a child name"
|
||||
- Select your step object in the select input
|
||||
- Click on "ADD"
|
||||
|
||||
Your step is then related to its parent. You can see it in the _Children_ section of the parent's object. There, you can now:
|
||||
|
||||
- Delete the child from its parent (the actual object of your child will not be deleted).
|
||||
- Reorder it in the children's list, by dragging it to the place you want.
|
||||
- Update its original settings by clicking on the eye icon of its reference (redirection to object edit page of the child).
|
||||
<img width="1229" alt="Capture d’écran 2019-04-22 à 19 51 12" src="img/56518936-a1e19400-6538-11e9-81c7-520ffd365cff.png">
|
||||
- Delete the child from its parent (the actual object of your child will not be deleted).
|
||||
- Reorder it in the children's list, by dragging it to the place you want.
|
||||
- Update its original settings by clicking on the eye icon of its reference (redirection to object edit page of the child).
|
||||
<img width="1229" alt="Capture d’écran 2019-04-22 à 19 51 12" src="img/56518936-a1e19400-6538-11e9-81c7-520ffd365cff.png">
|
||||
|
|
|
@ -8,27 +8,27 @@
|
|||
|
||||
### Pin 1
|
||||
|
||||
- Link back to the "Objects" page ;
|
||||
- Editable name field, hit 'enter' or 'cmd + s' or click on the floppy-disk icon to save ;
|
||||
- Major dependencies visualisation, (where my object is used as a child), click the label to navigate to the dependence ;
|
||||
- External URL, this is an optional parameter, it's use to point at an other source of content or information needed by the object. We generaly use to point at a Git repository ;
|
||||
- Link back to the "Objects" page ;
|
||||
- Editable name field, hit 'enter' or 'cmd + s' or click on the floppy-disk icon to save ;
|
||||
- Major dependencies visualisation, (where my object is used as a child), click the label to navigate to the dependence ;
|
||||
- External URL, this is an optional parameter, it's use to point at an other source of content or information needed by the object. We generaly use to point at a Git repository ;
|
||||
|
||||
### Pin 2
|
||||
|
||||
- Delete Button, Warning there, it will destroy your object! ;
|
||||
- Type of your Object (`organisation`, `campus`, `onboarding`, `cursus`, `quest`, `exercise`), save on select ;
|
||||
- Status of your Object (`draft`, `online`, `offline`), save on select ;
|
||||
- The first and last name of the original author ;
|
||||
- Delete Button, Warning there, it will destroy your object! ;
|
||||
- Type of your Object (`organisation`, `campus`, `onboarding`, `cursus`, `quest`, `exercise`), save on select ;
|
||||
- Status of your Object (`draft`, `online`, `offline`), save on select ;
|
||||
- The first and last name of the original author ;
|
||||
|
||||
### Pin 3
|
||||
|
||||
- Object Attribute edition area, manage all the attributes relative to this Object. These attributes will be exposed to its relationship ;
|
||||
- Object Attribute edition area, manage all the attributes relative to this Object. These attributes will be exposed to its relationship ;
|
||||
|
||||
### Pin 4
|
||||
|
||||
- Object Children edition area ;
|
||||
- Children Attributes edition area, these attributes impact and overload all the following children. Works the same way as standard attributes ;
|
||||
- Add a child, allows to add a child to the children list, more information here -> [Object Child creation](object-child-creation.md) ;
|
||||
- Children List, allows you to reorganise, delete and edit child. Each child can be overload with its own attributes, the edition works the same way as the original attributes ;
|
||||
- Object Children edition area ;
|
||||
- Children Attributes edition area, these attributes impact and overload all the following children. Works the same way as standard attributes ;
|
||||
- Add a child, allows to add a child to the children list, more information here -> [Object Child creation](object-child-creation.md) ;
|
||||
- Children List, allows you to reorganise, delete and edit child. Each child can be overload with its own attributes, the edition works the same way as the original attributes ;
|
||||
|
||||
More informations about attribute overload system [here](object-attribute-system.md)
|
||||
|
|
|
@ -11,12 +11,12 @@ It structure can be visualized in two parts. The first one is the definition of
|
|||
|
||||
This is the minimal structure of an object:
|
||||
|
||||
- name
|
||||
- type (`organisation`, `campus`, `onboarding`, `cursus`, `quest`, `exercise`)
|
||||
- status (`draft`, `online`, `offline`)
|
||||
- attrs {}
|
||||
- childrenAttrs {}
|
||||
- children {}
|
||||
- name
|
||||
- type (`organisation`, `campus`, `onboarding`, `cursus`, `quest`, `exercise`)
|
||||
- status (`draft`, `online`, `offline`)
|
||||
- attrs {}
|
||||
- childrenAttrs {}
|
||||
- children {}
|
||||
|
||||
## Browse Objects:
|
||||
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
|
||||
## Image creation steps
|
||||
|
||||
- [Installation of Ubuntu](ubuntu-installation.md)
|
||||
- minimal OS installation (downloads ~200 MB)
|
||||
- Software installation (downloads ~900 MB)
|
||||
- Optimization
|
||||
- improve speed
|
||||
- reduce image size
|
||||
- reduce power (CPU) & memory usage
|
||||
- reduce surface of attack
|
||||
- reduce bandwidth usage
|
||||
- Customization
|
||||
- machine-dependent (drivers, bug workarounds...)
|
||||
- time zone of the school
|
||||
- school scripts
|
||||
- Cleaning
|
||||
- logs
|
||||
- temporary files
|
||||
- histories
|
||||
- caches
|
||||
- auto-generated IDs
|
||||
- Preparation of the disk image
|
||||
- zero unallocated space of filesystem (~7 GB of data remains)
|
||||
- (optional) create compressed image with [lz4](https://lz4.github.io/lz4) (the resulting image is ~3.2 GB)
|
||||
- [Installation of Ubuntu](ubuntu-installation.md)
|
||||
- minimal OS installation (downloads ~200 MB)
|
||||
- Software installation (downloads ~900 MB)
|
||||
- Optimization
|
||||
- improve speed
|
||||
- reduce image size
|
||||
- reduce power (CPU) & memory usage
|
||||
- reduce surface of attack
|
||||
- reduce bandwidth usage
|
||||
- Customization
|
||||
- machine-dependent (drivers, bug workarounds...)
|
||||
- time zone of the school
|
||||
- school scripts
|
||||
- Cleaning
|
||||
- logs
|
||||
- temporary files
|
||||
- histories
|
||||
- caches
|
||||
- auto-generated IDs
|
||||
- Preparation of the disk image
|
||||
- zero unallocated space of filesystem (~7 GB of data remains)
|
||||
- (optional) create compressed image with [lz4](https://lz4.github.io/lz4) (the resulting image is ~3.2 GB)
|
||||
|
||||
## Network installation
|
||||
|
||||
- Boot through PXE [UDPcast](http://udpcast.linux.lu) which allows an efficient transfer of the disk image (using multicast or broadcast)
|
||||
- Boot through PXE [UDPcast](http://udpcast.linux.lu) which allows an efficient transfer of the disk image (using multicast or broadcast)
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
## Other considerations
|
||||
|
||||
- The monitor must be flicker-free (no PWM) to preserve the student's attention & eye health.
|
||||
- To avoid damaging the PC ports, all cables (USB, Audio) must be connected to cheaper and easier to replace extension cables.
|
||||
- Energy consumption is an important criterion to be taken into account.
|
||||
- It is better to buy the computers without a Windows licence, as it is an unnecessary extra cost.
|
||||
- The monitor must be flicker-free (no PWM) to preserve the student's attention & eye health.
|
||||
- To avoid damaging the PC ports, all cables (USB, Audio) must be connected to cheaper and easier to replace extension cables.
|
||||
- Energy consumption is an important criterion to be taken into account.
|
||||
- It is better to buy the computers without a Windows licence, as it is an unnecessary extra cost.
|
||||
|
|
|
@ -12,27 +12,27 @@ Notions: basic usage and interaction with a command line terminal.
|
|||
|
||||
Videos:
|
||||
|
||||
- 1-2 `curl` with the GitHub api and Example of shell file | https://www.youtube.com/watch?v=A0Mqc215igw
|
||||
- 1-3 `touch`, `chmod` and `echo` | https://www.youtube.com/watch?v=21h-vsuXgDU
|
||||
- 1-4 `find` and `grep` | https://www.youtube.com/watch?v=7a1JSWHhJlM
|
||||
- 1-5 `cut`, `sed` and `tr` | https://www.youtube.com/watch?v=Nil7rVP3eMI
|
||||
- 1-6 `jq` and `wc` | https://www.youtube.com/watch?v=cQmcaOseuiA&
|
||||
- 1-2 `curl` with the GitHub api and Example of shell file | https://www.youtube.com/watch?v=A0Mqc215igw
|
||||
- 1-3 `touch`, `chmod` and `echo` | https://www.youtube.com/watch?v=21h-vsuXgDU
|
||||
- 1-4 `find` and `grep` | https://www.youtube.com/watch?v=7a1JSWHhJlM
|
||||
- 1-5 `cut`, `sed` and `tr` | https://www.youtube.com/watch?v=Nil7rVP3eMI
|
||||
- 1-6 `jq` and `wc` | https://www.youtube.com/watch?v=cQmcaOseuiA&
|
||||
|
||||
Exercices:
|
||||
|
||||
- introduction | https://public.01-edu.org/subjects/introduction.en
|
||||
- make-it-better | https://public.01-edu.org/subjects/make-it-better.en
|
||||
- to-git-or-not-to-git | https://public.01-edu.org/subjects/to-git-or-not-to-git.en
|
||||
- who-are-you | https://public.01-edu.org/subjects/who-are-you.en
|
||||
- cl-camp1 | https://public.01-edu.org/subjects/cl-camp1.en
|
||||
- cl-camp2 | https://public.01-edu.org/subjects/cl-camp2.en
|
||||
- cl-camp3 | https://public.01-edu.org/subjects/cl-camp3.en
|
||||
- cl-camp4 | https://public.01-edu.org/subjects/cl-camp4.en
|
||||
- cl-camp5 | https://public.01-edu.org/subjects/cl-camp5.en
|
||||
- cl-camp6 | https://public.01-edu.org/subjects/cl-camp6.en
|
||||
- cl-camp7 | https://public.01-edu.org/subjects/cl-camp7.en
|
||||
- cl-camp8 | https://public.01-edu.org/subjects/cl-camp8.en
|
||||
- now-get-to-work | https://public.01-edu.org/subjects/now-get-to-work.en
|
||||
- introduction | https://public.01-edu.org/subjects/introduction.en
|
||||
- make-it-better | https://public.01-edu.org/subjects/make-it-better.en
|
||||
- to-git-or-not-to-git | https://public.01-edu.org/subjects/to-git-or-not-to-git.en
|
||||
- who-are-you | https://public.01-edu.org/subjects/who-are-you.en
|
||||
- cl-camp1 | https://public.01-edu.org/subjects/cl-camp1.en
|
||||
- cl-camp2 | https://public.01-edu.org/subjects/cl-camp2.en
|
||||
- cl-camp3 | https://public.01-edu.org/subjects/cl-camp3.en
|
||||
- cl-camp4 | https://public.01-edu.org/subjects/cl-camp4.en
|
||||
- cl-camp5 | https://public.01-edu.org/subjects/cl-camp5.en
|
||||
- cl-camp6 | https://public.01-edu.org/subjects/cl-camp6.en
|
||||
- cl-camp7 | https://public.01-edu.org/subjects/cl-camp7.en
|
||||
- cl-camp8 | https://public.01-edu.org/subjects/cl-camp8.en
|
||||
- now-get-to-work | https://public.01-edu.org/subjects/now-get-to-work.en
|
||||
|
||||
### Quest 2
|
||||
|
||||
|
@ -42,21 +42,21 @@ Notions: Variables declaration, Loops, if and else statement, usage of z01.Print
|
|||
|
||||
Videos:
|
||||
|
||||
- 02-01-If and Else Statements in Go | https://www.youtube.com/watch?v=rnF1_SfeGE4
|
||||
- 02-02-ForLoops | https://www.youtube.com/watch?v=Bt47lx6q2-4
|
||||
- 02-03-PrintRune function | https://www.youtube.com/watch?v=o8JrvI3jqoM
|
||||
- 02-04-Variables Declaration and ascii | https://www.youtube.com/watch?v=RCNOV8m0hJQ
|
||||
- 02-01-If and Else Statements in Go | https://www.youtube.com/watch?v=rnF1_SfeGE4
|
||||
- 02-02-ForLoops | https://www.youtube.com/watch?v=Bt47lx6q2-4
|
||||
- 02-03-PrintRune function | https://www.youtube.com/watch?v=o8JrvI3jqoM
|
||||
- 02-04-Variables Declaration and ascii | https://www.youtube.com/watch?v=RCNOV8m0hJQ
|
||||
|
||||
Exercices:
|
||||
|
||||
- printalphabet | https://public.01-edu.org/subjects/printalphabet.en
|
||||
- printreversealphabet | https://public.01-edu.org/subjects/printreversealphabet.en
|
||||
- prindigits | https://public.01-edu.org/subjects/printdigits.en
|
||||
- isnegative | https://public.01-edu.org/subjects/isnegative.en
|
||||
- printcomb | https://public.01-edu.org/subjects/printcomb.en
|
||||
- printcomb2 | https://public.01-edu.org/subjects/printcomb2.en
|
||||
- printnbr | https://public.01-edu.org/subjects/printnbr.en
|
||||
- printcombn | https://public.01-edu.org/subjects/printcombn.en
|
||||
- printalphabet | https://public.01-edu.org/subjects/printalphabet.en
|
||||
- printreversealphabet | https://public.01-edu.org/subjects/printreversealphabet.en
|
||||
- prindigits | https://public.01-edu.org/subjects/printdigits.en
|
||||
- isnegative | https://public.01-edu.org/subjects/isnegative.en
|
||||
- printcomb | https://public.01-edu.org/subjects/printcomb.en
|
||||
- printcomb2 | https://public.01-edu.org/subjects/printcomb2.en
|
||||
- printnbr | https://public.01-edu.org/subjects/printnbr.en
|
||||
- printcombn | https://public.01-edu.org/subjects/printcombn.en
|
||||
|
||||
### Quest 3
|
||||
|
||||
|
@ -66,25 +66,25 @@ Notions: String Manupulation, Range Loops, Pointers, Modulo and Division relativ
|
|||
|
||||
Videos:
|
||||
|
||||
- 03-01-StringsManipulation | https://www.youtube.com/watch?v=8LplJN_8iOU
|
||||
- 03-02-RangeLoop | https://www.youtube.com/watch?v=i89N4cjh1-g
|
||||
- 03-03-Pointers on variables | https://www.youtube.com/watch?v=owVPa5b1BMc
|
||||
- 03-04-Modulo and Division | https://www.youtube.com/watch?v=NVan-9-Ioec
|
||||
- 03-01-StringsManipulation | https://www.youtube.com/watch?v=8LplJN_8iOU
|
||||
- 03-02-RangeLoop | https://www.youtube.com/watch?v=i89N4cjh1-g
|
||||
- 03-03-Pointers on variables | https://www.youtube.com/watch?v=owVPa5b1BMc
|
||||
- 03-04-Modulo and Division | https://www.youtube.com/watch?v=NVan-9-Ioec
|
||||
|
||||
Exercices:
|
||||
|
||||
- pointone | https://public.01-edu.org/subjects/pointone.en
|
||||
- ultimatepointone | https://public.01-edu.org/subjects/ultimatepointone.en
|
||||
- divmod | https://public.01-edu.org/subjects/divmod.en
|
||||
- ultimatedivmod | https://public.01-edu.org/subjects/ultimatedivmod.en
|
||||
- printstr | https://public.01-edu.org/subjects/printstr.en
|
||||
- strlen | https://public.01-edu.org/subjects/strlen.en
|
||||
- swap | https://public.01-edu.org/subjects/swap.en
|
||||
- strrev | https://public.01-edu.org/subjects/strrev.en
|
||||
- basicatoi | https://public.01-edu.org/subjects/basicatoi.en
|
||||
- basicatoi2 | https://public.01-edu.org/subjects/basicatoi2.en
|
||||
- atoi | https://public.01-edu.org/subjects/atoi.en
|
||||
- sortintegerable | https://public.01-edu.org/subjects/sortintegertable.en
|
||||
- pointone | https://public.01-edu.org/subjects/pointone.en
|
||||
- ultimatepointone | https://public.01-edu.org/subjects/ultimatepointone.en
|
||||
- divmod | https://public.01-edu.org/subjects/divmod.en
|
||||
- ultimatedivmod | https://public.01-edu.org/subjects/ultimatedivmod.en
|
||||
- printstr | https://public.01-edu.org/subjects/printstr.en
|
||||
- strlen | https://public.01-edu.org/subjects/strlen.en
|
||||
- swap | https://public.01-edu.org/subjects/swap.en
|
||||
- strrev | https://public.01-edu.org/subjects/strrev.en
|
||||
- basicatoi | https://public.01-edu.org/subjects/basicatoi.en
|
||||
- basicatoi2 | https://public.01-edu.org/subjects/basicatoi2.en
|
||||
- atoi | https://public.01-edu.org/subjects/atoi.en
|
||||
- sortintegerable | https://public.01-edu.org/subjects/sortintegertable.en
|
||||
|
||||
### Exam 1 (4hours)
|
||||
|
||||
|
@ -106,19 +106,19 @@ Notions: Iterative and recursive programmation
|
|||
|
||||
Videos:
|
||||
|
||||
- 04-01-Iterativity and Recursivity | https://www.youtube.com/watch?v=oCZDdAID5Ik
|
||||
- 04-01-Iterativity and Recursivity | https://www.youtube.com/watch?v=oCZDdAID5Ik
|
||||
|
||||
Exercices:
|
||||
|
||||
- iterativefactorial | https://public.01-edu.org/subjects/iterativefactorial.en
|
||||
- recursivefactorial | https://public.01-edu.org/subjects/recursivefactorial.en
|
||||
- iterativepower | https://public.01-edu.org/subjects/iterativepower.en
|
||||
- recursivepower | https://public.01-edu.org/subjects/recursivepower.en
|
||||
- fibonacci | https://public.01-edu.org/subjects/fibonacci.en
|
||||
- sqrt | https://public.01-edu.org/subjects/sqrt.en
|
||||
- isprime | https://public.01-edu.org/subjects/isprime.en
|
||||
- findnextprime | https://public.01-edu.org/subjects/findnextprime.en
|
||||
- eightqueens | https://public.01-edu.org/subjects/eightqueens.en
|
||||
- iterativefactorial | https://public.01-edu.org/subjects/iterativefactorial.en
|
||||
- recursivefactorial | https://public.01-edu.org/subjects/recursivefactorial.en
|
||||
- iterativepower | https://public.01-edu.org/subjects/iterativepower.en
|
||||
- recursivepower | https://public.01-edu.org/subjects/recursivepower.en
|
||||
- fibonacci | https://public.01-edu.org/subjects/fibonacci.en
|
||||
- sqrt | https://public.01-edu.org/subjects/sqrt.en
|
||||
- isprime | https://public.01-edu.org/subjects/isprime.en
|
||||
- findnextprime | https://public.01-edu.org/subjects/findnextprime.en
|
||||
- eightqueens | https://public.01-edu.org/subjects/eightqueens.en
|
||||
|
||||
### Quest 5
|
||||
|
||||
|
@ -128,28 +128,28 @@ Notions: String Manipulation and medium-advanced algorithmia
|
|||
|
||||
Videos:
|
||||
|
||||
- 05-01-Runes, Bytes and Strings | https://www.youtube.com/watch?v=-eIU5ISID64
|
||||
- 05-01-Runes, Bytes and Strings | https://www.youtube.com/watch?v=-eIU5ISID64
|
||||
|
||||
Exercices:
|
||||
|
||||
- firstrune | https://public.01-edu.org/subjects/firstrune.en
|
||||
- nrune | https://public.01-edu.org/subjects/nrune.en
|
||||
- lastrune | https://public.01-edu.org/subjects/lastrune.en
|
||||
- index | https://public.01-edu.org/subjects/index.en
|
||||
- compare | https://public.01-edu.org/subjects/compare.en
|
||||
- toupper | https://public.01-edu.org/subjects/toupper.en
|
||||
- tolower | https://public.01-edu.org/subjects/tolower.en
|
||||
- capitalize | https://public.01-edu.org/subjects/capitalize.en
|
||||
- isalpha | https://public.01-edu.org/subjects/isalpha.en
|
||||
- isnumeric | https://public.01-edu.org/subjects/isnumeric.en
|
||||
- islower | https://public.01-edu.org/subjects/islower.en
|
||||
- isupper | https://public.01-edu.org/subjects/isupper.en
|
||||
- isprintable | https://public.01-edu.org/subjects/isprintable.en
|
||||
- concat | https://public.01-edu.org/subjects/concat.en
|
||||
- basicjoin | https://public.01-edu.org/subjects/basicjoin.en
|
||||
- join | https://public.01-edu.org/subjects/join.en
|
||||
- printnbrbase | https://public.01-edu.org/subjects/printnbrbase.en
|
||||
- atoibase | https://public.01-edu.org/subjects/atoibase.en
|
||||
- firstrune | https://public.01-edu.org/subjects/firstrune.en
|
||||
- nrune | https://public.01-edu.org/subjects/nrune.en
|
||||
- lastrune | https://public.01-edu.org/subjects/lastrune.en
|
||||
- index | https://public.01-edu.org/subjects/index.en
|
||||
- compare | https://public.01-edu.org/subjects/compare.en
|
||||
- toupper | https://public.01-edu.org/subjects/toupper.en
|
||||
- tolower | https://public.01-edu.org/subjects/tolower.en
|
||||
- capitalize | https://public.01-edu.org/subjects/capitalize.en
|
||||
- isalpha | https://public.01-edu.org/subjects/isalpha.en
|
||||
- isnumeric | https://public.01-edu.org/subjects/isnumeric.en
|
||||
- islower | https://public.01-edu.org/subjects/islower.en
|
||||
- isupper | https://public.01-edu.org/subjects/isupper.en
|
||||
- isprintable | https://public.01-edu.org/subjects/isprintable.en
|
||||
- concat | https://public.01-edu.org/subjects/concat.en
|
||||
- basicjoin | https://public.01-edu.org/subjects/basicjoin.en
|
||||
- join | https://public.01-edu.org/subjects/join.en
|
||||
- printnbrbase | https://public.01-edu.org/subjects/printnbrbase.en
|
||||
- atoibase | https://public.01-edu.org/subjects/atoibase.en
|
||||
|
||||
### Quest 6
|
||||
|
||||
|
@ -159,14 +159,14 @@ Notions: Arguments manipulation in programs
|
|||
|
||||
Videos:
|
||||
|
||||
- 06-01-Os.Args | https://www.youtube.com/watch?v=I1xt_TLRhF0
|
||||
- 06-01-Os.Args | https://www.youtube.com/watch?v=I1xt_TLRhF0
|
||||
|
||||
Exercices:
|
||||
|
||||
- printprogramname | https://public.01-edu.org/subjects/printprogramname.en
|
||||
- printparams | https://public.01-edu.org/subjects/printparams.en
|
||||
- revparams | https://public.01-edu.org/subjects/revparams.en
|
||||
- sortparams | https://public.01-edu.org/subjects/sortparams.en
|
||||
- printprogramname | https://public.01-edu.org/subjects/printprogramname.en
|
||||
- printparams | https://public.01-edu.org/subjects/printparams.en
|
||||
- revparams | https://public.01-edu.org/subjects/revparams.en
|
||||
- sortparams | https://public.01-edu.org/subjects/sortparams.en
|
||||
|
||||
### Quest 7
|
||||
|
||||
|
@ -176,17 +176,17 @@ Notions: Usage of Make and Append
|
|||
|
||||
Videos:
|
||||
|
||||
- 07-01-Make and Append methods | https://www.youtube.com/watch?v=2HHVUM0YQuI
|
||||
- 07-01-Make and Append methods | https://www.youtube.com/watch?v=2HHVUM0YQuI
|
||||
|
||||
Exercices:
|
||||
|
||||
- appendrange | https://public.01-edu.org/subjects/apprendrange.en
|
||||
- makerange | https://public.01-edu.org/subjects/makerange.en
|
||||
- concatparams | https://public.01-edu.org/subjects/concatparams.en
|
||||
- splitwhitespaces | https://public.01-edu.org/subjects/splitwhitespaces.en
|
||||
- printwordstables | https://public.01-edu.org/subjects/printwordstables.en
|
||||
- convertbase | https://public.01-edu.org/subjects/converbase.en
|
||||
- split | https://public.01-edu.org/subjects/split.en
|
||||
- appendrange | https://public.01-edu.org/subjects/apprendrange.en
|
||||
- makerange | https://public.01-edu.org/subjects/makerange.en
|
||||
- concatparams | https://public.01-edu.org/subjects/concatparams.en
|
||||
- splitwhitespaces | https://public.01-edu.org/subjects/splitwhitespaces.en
|
||||
- printwordstables | https://public.01-edu.org/subjects/printwordstables.en
|
||||
- convertbase | https://public.01-edu.org/subjects/converbase.en
|
||||
- split | https://public.01-edu.org/subjects/split.en
|
||||
|
||||
### Exam 2 (4hours)
|
||||
|
||||
|
@ -208,16 +208,16 @@ Notions: Creation of struct types and file manipulation (Open, Read, Close metho
|
|||
|
||||
Videos:
|
||||
|
||||
- 08-01-Structures in Go | https://www.youtube.com/watch?v=-24M7r7VuLY
|
||||
- 08-02-File Manipulation in go | https://www.youtube.com/watch?v=8vUgchQGhcQ
|
||||
- 08-01-Structures in Go | https://www.youtube.com/watch?v=-24M7r7VuLY
|
||||
- 08-02-File Manipulation in go | https://www.youtube.com/watch?v=8vUgchQGhcQ
|
||||
|
||||
Exercices:
|
||||
|
||||
- bool | https://public.01-edu.org/subjects/bool.en
|
||||
- point | https://public.01-edu.org/subjects/point.en
|
||||
- displayfile | https://public.01-edu.org/subjects/displayfile.en
|
||||
- cat | https://public.01-edu.org/subjects/cat.en
|
||||
- ztail | https://public.01-edu.org/subjects/ztail.en
|
||||
- bool | https://public.01-edu.org/subjects/bool.en
|
||||
- point | https://public.01-edu.org/subjects/point.en
|
||||
- displayfile | https://public.01-edu.org/subjects/displayfile.en
|
||||
- cat | https://public.01-edu.org/subjects/cat.en
|
||||
- ztail | https://public.01-edu.org/subjects/ztail.en
|
||||
|
||||
### Quest 9
|
||||
|
||||
|
@ -227,18 +227,18 @@ Notions: Advance function prototyping
|
|||
|
||||
Videos:
|
||||
|
||||
- 09-01-Functions as Arguments | https://www.youtube.com/watch?v=lw8jUwsluAE
|
||||
- 09-01-Functions as Arguments | https://www.youtube.com/watch?v=lw8jUwsluAE
|
||||
|
||||
Exercices:
|
||||
|
||||
- foreach | https://public.01-edu.org/subjects/foreach.en
|
||||
- map | https://public.01-edu.org/subjects/map.en
|
||||
- any | https://public.01-edu.org/subjects/any.en
|
||||
- countif | https://public.01-edu.org/subjects/countif.en
|
||||
- issorted | https://public.01-edu.org/subjects/issorted.en
|
||||
- doop | https://public.01-edu.org/subjects/doop.en
|
||||
- sortwordarr | https://public.01-edu.org/subjects/sortwordarr.en
|
||||
- advancedsortwordarr | https://public.01-edu.org/subjects/advancedsortwordarr.en
|
||||
- foreach | https://public.01-edu.org/subjects/foreach.en
|
||||
- map | https://public.01-edu.org/subjects/map.en
|
||||
- any | https://public.01-edu.org/subjects/any.en
|
||||
- countif | https://public.01-edu.org/subjects/countif.en
|
||||
- issorted | https://public.01-edu.org/subjects/issorted.en
|
||||
- doop | https://public.01-edu.org/subjects/doop.en
|
||||
- sortwordarr | https://public.01-edu.org/subjects/sortwordarr.en
|
||||
- advancedsortwordarr | https://public.01-edu.org/subjects/advancedsortwordarr.en
|
||||
|
||||
### Quest 10
|
||||
|
||||
|
@ -248,18 +248,18 @@ Notions: All previously viewed concepts in team work
|
|||
|
||||
Exercices:
|
||||
|
||||
- rot14 | https://public.01-edu.org/subjects/rot14.en
|
||||
- abort | https://public.01-edu.org/subjects/abort.en
|
||||
- collatzcountdown | https://public.01-edu.org/subjects/collatzcountdown.en
|
||||
- comcheck | https://public.01-edu.org/subjects/comcheck.en
|
||||
- enigma | https://public.01-edu.org/subjects/enigma.en
|
||||
- pilot | https://public.01-edu.org/subjects/pilot.en
|
||||
- fixthemain | https://public.01-edu.org/subjects/fixthemain.en
|
||||
- compact | https://public.01-edu.org/subjects/compact.en
|
||||
- activebits | https://public.01-edu.org/subjects/activebits.en
|
||||
- max | https://public.01-edu.org/subjects/max.en
|
||||
- join | https://public.01-edu.org/subjects/join.en
|
||||
- unmatch | https://public.01-edu.org/subjects/unmatch.en
|
||||
- rot14 | https://public.01-edu.org/subjects/rot14.en
|
||||
- abort | https://public.01-edu.org/subjects/abort.en
|
||||
- collatzcountdown | https://public.01-edu.org/subjects/collatzcountdown.en
|
||||
- comcheck | https://public.01-edu.org/subjects/comcheck.en
|
||||
- enigma | https://public.01-edu.org/subjects/enigma.en
|
||||
- pilot | https://public.01-edu.org/subjects/pilot.en
|
||||
- fixthemain | https://public.01-edu.org/subjects/fixthemain.en
|
||||
- compact | https://public.01-edu.org/subjects/compact.en
|
||||
- activebits | https://public.01-edu.org/subjects/activebits.en
|
||||
- max | https://public.01-edu.org/subjects/max.en
|
||||
- join | https://public.01-edu.org/subjects/join.en
|
||||
- unmatch | https://public.01-edu.org/subjects/unmatch.en
|
||||
|
||||
### Exam 3 (4hours)
|
||||
|
||||
|
@ -281,25 +281,25 @@ Notions: Pointers manipulation and data structure
|
|||
|
||||
Videos:
|
||||
|
||||
- 11-01-Linked Lists Introduction | https://www.youtube.com/watch?v=EPICVEbylU0
|
||||
- 11-01-Linked Lists Introduction | https://www.youtube.com/watch?v=EPICVEbylU0
|
||||
|
||||
Exercices:
|
||||
|
||||
- listpushback | https://public.01-edu.org/subjects/listpushback.en
|
||||
- listpushfront | https://public.01-edu.org/subjects/listpushfront.en
|
||||
- listsize | https://public.01-edu.org/subjects/listsize.en
|
||||
- listlast | https://public.01-edu.org/subjects/listlast.en
|
||||
- listclear | https://public.01-edu.org/subjects/listclear.en
|
||||
- listat | https://public.01-edu.org/subjects/listat.en
|
||||
- listreverse | https://public.01-edu.org/subjects/listreverse.en
|
||||
- listforeach | https://public.01-edu.org/subjects/listforeach.en
|
||||
- listforeachif | https://public.01-edu.org/subjects/listforeachif.en
|
||||
- listfind | https://public.01-edu.org/subjects/listfind.en
|
||||
- listremoveif | https://public.01-edu.org/subjects/listremoveif.en
|
||||
- listmerge | https://public.01-edu.org/subjects/listmerge.en
|
||||
- listsort | https://public.01-edu.org/subjects/listsort.en
|
||||
- sortlistinsert | https://public.01-edu.org/subjects/sortlistinsert.en
|
||||
- sortedlistmerge | https://public.01-edu.org/subjects/sortedlistmerge.en
|
||||
- listpushback | https://public.01-edu.org/subjects/listpushback.en
|
||||
- listpushfront | https://public.01-edu.org/subjects/listpushfront.en
|
||||
- listsize | https://public.01-edu.org/subjects/listsize.en
|
||||
- listlast | https://public.01-edu.org/subjects/listlast.en
|
||||
- listclear | https://public.01-edu.org/subjects/listclear.en
|
||||
- listat | https://public.01-edu.org/subjects/listat.en
|
||||
- listreverse | https://public.01-edu.org/subjects/listreverse.en
|
||||
- listforeach | https://public.01-edu.org/subjects/listforeach.en
|
||||
- listforeachif | https://public.01-edu.org/subjects/listforeachif.en
|
||||
- listfind | https://public.01-edu.org/subjects/listfind.en
|
||||
- listremoveif | https://public.01-edu.org/subjects/listremoveif.en
|
||||
- listmerge | https://public.01-edu.org/subjects/listmerge.en
|
||||
- listsort | https://public.01-edu.org/subjects/listsort.en
|
||||
- sortlistinsert | https://public.01-edu.org/subjects/sortlistinsert.en
|
||||
- sortedlistmerge | https://public.01-edu.org/subjects/sortedlistmerge.en
|
||||
|
||||
### Quest 12
|
||||
|
||||
|
@ -309,21 +309,21 @@ Notions: Advanced Data Structure using binary trees
|
|||
|
||||
Videos:
|
||||
|
||||
- 12-01-Introduction to Binary Trees | https://www.youtube.com/watch?v=3g2WCqWNIVs
|
||||
- 12-01-Introduction to Binary Trees | https://www.youtube.com/watch?v=3g2WCqWNIVs
|
||||
|
||||
Exercices:
|
||||
|
||||
- btreeinsertdata | https://public.01-edu.org/subjects/btreeinsertdata.en
|
||||
- btreeapplyinorder | https://public.01-edu.org/subjects/btreeapplyinorder.en
|
||||
- btreeapplypreorder | https://public.01-edu.org/subjects/btreeapplypreorder.en
|
||||
- btreesearchitem | https://public.01-edu.org/subjects/btreesearchitem.en
|
||||
- btreelevelcount | https://public.01-edu.org/subjects/btreelevelcount.en
|
||||
- btreeisbinary | https://public.01-edu.org/subjects/btreeisbinary.en
|
||||
- btreeapplylevel | https://public.01-edu.org/subjects/btreeapplylevel.en
|
||||
- btreemax | https://public.01-edu.org/subjects/btreemax.en
|
||||
- btreemin | https://public.01-edu.org/subjects/btreemin.en
|
||||
- btreetransplant | https://public.01-edu.org/subjects/btreetransplant.en
|
||||
- btreedeletenode | https://public.01-edu.org/subjects/btreedeletenode.en
|
||||
- btreeinsertdata | https://public.01-edu.org/subjects/btreeinsertdata.en
|
||||
- btreeapplyinorder | https://public.01-edu.org/subjects/btreeapplyinorder.en
|
||||
- btreeapplypreorder | https://public.01-edu.org/subjects/btreeapplypreorder.en
|
||||
- btreesearchitem | https://public.01-edu.org/subjects/btreesearchitem.en
|
||||
- btreelevelcount | https://public.01-edu.org/subjects/btreelevelcount.en
|
||||
- btreeisbinary | https://public.01-edu.org/subjects/btreeisbinary.en
|
||||
- btreeapplylevel | https://public.01-edu.org/subjects/btreeapplylevel.en
|
||||
- btreemax | https://public.01-edu.org/subjects/btreemax.en
|
||||
- btreemin | https://public.01-edu.org/subjects/btreemin.en
|
||||
- btreetransplant | https://public.01-edu.org/subjects/btreetransplant.en
|
||||
- btreedeletenode | https://public.01-edu.org/subjects/btreedeletenode.en
|
||||
|
||||
### Exam 4 - Final Exam (8hours)
|
||||
|
||||
|
|
|
@ -4,34 +4,34 @@
|
|||
|
||||
Rationale :
|
||||
|
||||
- Reduce the number of potential bugs and problems
|
||||
- The remaining bugs will be easier to identify/isolate & fix
|
||||
- Easier maintenance
|
||||
- Lower human capital required
|
||||
- Reduce the number of potential bugs and problems
|
||||
- The remaining bugs will be easier to identify/isolate & fix
|
||||
- Easier maintenance
|
||||
- Lower human capital required
|
||||
|
||||
## Limit security & filtering mechanisms
|
||||
|
||||
Especially during the launch, rationale :
|
||||
|
||||
- Reduce complexity (see above)
|
||||
- Alem is a school, not a bank, so the security requirements are lower
|
||||
- Some students will be able to bypass security systems in all cases
|
||||
- And they will spread the word quickly
|
||||
- The only reliable way to identify students will be security cameras and staff attention
|
||||
- Students will share accounts and USB drives
|
||||
- They will open connections to the outside and there is no definitive way to prevent this
|
||||
- We will "hire" the students who have found vulnerabilities using technical skills and creativity
|
||||
- We cannot anticipate every breach hundreds of students will find & exploit
|
||||
- Focus on endpoint security rather than network security (firewall on each node)
|
||||
- Reduce complexity of the network and make it more flexible
|
||||
- Reduce complexity (see above)
|
||||
- Alem is a school, not a bank, so the security requirements are lower
|
||||
- Some students will be able to bypass security systems in all cases
|
||||
- And they will spread the word quickly
|
||||
- The only reliable way to identify students will be security cameras and staff attention
|
||||
- Students will share accounts and USB drives
|
||||
- They will open connections to the outside and there is no definitive way to prevent this
|
||||
- We will "hire" the students who have found vulnerabilities using technical skills and creativity
|
||||
- We cannot anticipate every breach hundreds of students will find & exploit
|
||||
- Focus on endpoint security rather than network security (firewall on each node)
|
||||
- Reduce complexity of the network and make it more flexible
|
||||
|
||||
## Promote open, neutral network & technologies
|
||||
|
||||
Rationale :
|
||||
|
||||
- Students will spend more time learning things and exchanging ideas than bypassing censorship
|
||||
- Students will have more extensive knowledge and skills
|
||||
- It is better to make them aware of their situation than to try to stop them
|
||||
- A student's motivation is very much influenced by his or her environment
|
||||
- An environment with limitations will limit the spectrum of things that stimulate the student's curiosity
|
||||
- A focus will made on increasing student's empowerement in order to make them feel accountable for their own actions. If the student cheats, he has to understand that he is only hindering his own progress.
|
||||
- Students will spend more time learning things and exchanging ideas than bypassing censorship
|
||||
- Students will have more extensive knowledge and skills
|
||||
- It is better to make them aware of their situation than to try to stop them
|
||||
- A student's motivation is very much influenced by his or her environment
|
||||
- An environment with limitations will limit the spectrum of things that stimulate the student's curiosity
|
||||
- A focus will made on increasing student's empowerement in order to make them feel accountable for their own actions. If the student cheats, he has to understand that he is only hindering his own progress.
|
||||
|
|
|
@ -2,30 +2,30 @@
|
|||
|
||||
## Alem
|
||||
|
||||
- Hardware
|
||||
- Maintenance & replacement of parts
|
||||
- HP machines
|
||||
- Inventory (associates MAC address or other ID to the physical location of the machine)
|
||||
- [BIOS configuration](bios-configuration.md)
|
||||
- Connected on Ethernet network
|
||||
- Audio & USB extension cables (to protect the PC ports)
|
||||
- Computers & cables are physically attached to the table (to prevent stealing or damage)
|
||||
- Monitor brightness (the default might be too high and it cannot be controlled by software)
|
||||
- Server (virtualized with at least these dedicated resources)
|
||||
- CPU : 8 threads
|
||||
- RAM : 64 GB
|
||||
- SSD : 512 GB
|
||||
- NIC : pass-through or bridged ? (see with Vitalii)
|
||||
- Software
|
||||
- DHCP
|
||||
- DNS
|
||||
- PXE
|
||||
- Image creation & deployment (with the help of team 01)
|
||||
- Hardware
|
||||
- Maintenance & replacement of parts
|
||||
- HP machines
|
||||
- Inventory (associates MAC address or other ID to the physical location of the machine)
|
||||
- [BIOS configuration](bios-configuration.md)
|
||||
- Connected on Ethernet network
|
||||
- Audio & USB extension cables (to protect the PC ports)
|
||||
- Computers & cables are physically attached to the table (to prevent stealing or damage)
|
||||
- Monitor brightness (the default might be too high and it cannot be controlled by software)
|
||||
- Server (virtualized with at least these dedicated resources)
|
||||
- CPU : 8 threads
|
||||
- RAM : 64 GB
|
||||
- SSD : 512 GB
|
||||
- NIC : pass-through or bridged ? (see with Vitalii)
|
||||
- Software
|
||||
- DHCP
|
||||
- DNS
|
||||
- PXE
|
||||
- Image creation & deployment (with the help of team 01)
|
||||
|
||||
## 01
|
||||
|
||||
- Software maintenance
|
||||
- Implement the features requested or identified at the Alem School
|
||||
- Bug fix
|
||||
- Technical advice
|
||||
- Pedagogical support
|
||||
- Software maintenance
|
||||
- Implement the features requested or identified at the Alem School
|
||||
- Bug fix
|
||||
- Technical advice
|
||||
- Pedagogical support
|
||||
|
|
|
@ -9,9 +9,9 @@ Bonus exercises are available in quests 02 / 03 / 04 / 05 / 07 / 08 / 09.
|
|||
Making a review involves 2 students who are goning to review each other's exercise.
|
||||
Each user has to :
|
||||
|
||||
- **check** the code of the other one on Github
|
||||
- **bet** if it is going to fail or succeed in the Review interface
|
||||
- **run** his own exercise in the Review interface to give a result to compare with the bet, and state if it was right or wrong
|
||||
- **check** the code of the other one on Github
|
||||
- **bet** if it is going to fail or succeed in the Review interface
|
||||
- **run** his own exercise in the Review interface to give a result to compare with the bet, and state if it was right or wrong
|
||||
|
||||
## Usage
|
||||
|
||||
|
@ -29,13 +29,13 @@ Once you and the other student have confirmed the match, you can go and check th
|
|||
|
||||
When you have checked his code, those 4 steps will have to be completed to achieve the review :
|
||||
|
||||
- You have to bet if the exercise of the other student will fail or succeed after running the tester
|
||||
- The other student has to do the same with your exercise and make his own bet, that you will see on the component `Review of your exercise`
|
||||
<img width="1073" alt="Screenshot 2019-10-17 at 02.20.18" src="img/reviews/Screenshot 2019-10-17 at 02.20.18.jpg">
|
||||
- You have to bet if the exercise of the other student will fail or succeed after running the tester
|
||||
- The other student has to do the same with your exercise and make his own bet, that you will see on the component `Review of your exercise`
|
||||
<img width="1073" alt="Screenshot 2019-10-17 at 02.20.18" src="img/reviews/Screenshot 2019-10-17 at 02.20.18.jpg">
|
||||
|
||||
- Once the other student's bet is set, the tester button unblocks and you have to run it on your exercise to output the result determining if your exercise has failed or succeeded ; this result is compared to the other student's bet to determine if it was wrong or right
|
||||
- The other student also has to run the tester on his exercise to determine his result and so if your bet was wrong or right
|
||||
<img width="1073" alt="Screenshot 2019-10-17 at 02.22.30" src="img/reviews/Screenshot 2019-10-17 at 02.22.30.jpg">
|
||||
- Once the other student's bet is set, the tester button unblocks and you have to run it on your exercise to output the result determining if your exercise has failed or succeeded ; this result is compared to the other student's bet to determine if it was wrong or right
|
||||
- The other student also has to run the tester on his exercise to determine his result and so if your bet was wrong or right
|
||||
<img width="1073" alt="Screenshot 2019-10-17 at 02.22.30" src="img/reviews/Screenshot 2019-10-17 at 02.22.30.jpg">
|
||||
|
||||
In fact, a bet is succeeded if it is equal to the tester output :
|
||||
<img width="1073" alt="Screenshot 2019-10-17 at 02.24.04" src="img/reviews/Screenshot 2019-10-17 at 02.24.04.jpg">
|
||||
|
|
|
@ -32,8 +32,8 @@ Download and boot the ISO image `amd64` of [Debian](https://www.debian.org/distr
|
|||
|
||||
Select :
|
||||
|
||||
- "Advanced options ..."
|
||||
- "... Automated install"
|
||||
- "Advanced options ..."
|
||||
- "... Automated install"
|
||||
|
||||
The network is automatically configured with DHCP, you can also configure it manually.
|
||||
|
||||
|
@ -44,4 +44,3 @@ raw.githubusercontent.com/01-edu/public/master/scripts/preseed.cfg
|
|||
```
|
||||
|
||||
and select "Continue", let us know when the server's remote access is ready, we will configure it.
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
**Linux compatible only**
|
||||
|
||||
| Component | Recommended specifications |
|
||||
| --------- | --------------------------------- |
|
||||
| Processor | 16 threads x86-64 (64 bits) |
|
||||
| Memory | 64 GB ECC DDR4 2133 Mhz frequency |
|
||||
| Disk | 500 GB SSD NVMe |
|
||||
| Component | Recommended specifications |
|
||||
| --------- | --------------------------- |
|
||||
| Processor | 16 threads x86-64 (64 bits) |
|
||||
| Memory | 16 GB DDR4 |
|
||||
| Disk | 500 GB SSD NVMe |
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
# Tasks
|
||||
|
||||
- [x] Install, connect, check the server and the HP clients (_Alem_, _Vitalii_)
|
||||
- [x] Check the settings of the virtual machine (_01_, _Vitalii_)
|
||||
- [x] Install the server (_01_, _Vitalii_)
|
||||
- [x] Tests & benchmark of the server (_01_)
|
||||
- [x] Test the [OS deployment](https://github.com/01-edu/public/blob/master/docs/os-deployment.md) (_01_, _Vitalii_)
|
||||
- [ ] Write process documentation (_01_, _Alem_, _Vitalii_)
|
||||
- [ ] Ensure the tester only works inside the school (_01_, _Alem_)
|
||||
- [ ] Ensure the exam app works as expected (_01_, _Alem_)
|
||||
- [ ] Test the entire piscine (_01_, _Alem_)
|
|
@ -10,19 +10,19 @@ Screenshots of the installation of Ubuntu in Virtual Box are [here](https://gith
|
|||
|
||||
Download and boot the [last Ubuntu release](http://releases.ubuntu.com/19.10/ubuntu-19.10-desktop-amd64.iso).
|
||||
|
||||
- Create a new virtual machine named "Ubuntu" with at least 4096 MB of RAM
|
||||
- Use the fixed size storage allocation (to have more performance)
|
||||
- In the settings of the VM
|
||||
- System -> Motherboard : check "Enable EFI"
|
||||
- System -> Processor : Select at least 2 processors
|
||||
- Display -> Screen : Put "Video Memory" to the maximum
|
||||
- Enable 3D acceleration
|
||||
- Storage
|
||||
- Remove IDE controller
|
||||
- Add Optical Drive to the SATA controller
|
||||
- Choose your Ubuntu ISO image
|
||||
- Close the settings (click OK)
|
||||
- Run the VM
|
||||
- Create a new virtual machine named "Ubuntu" with at least 4096 MB of RAM
|
||||
- Use the fixed size storage allocation (to have more performance)
|
||||
- In the settings of the VM
|
||||
- System -> Motherboard : check "Enable EFI"
|
||||
- System -> Processor : Select at least 2 processors
|
||||
- Display -> Screen : Put "Video Memory" to the maximum
|
||||
- Enable 3D acceleration
|
||||
- Storage
|
||||
- Remove IDE controller
|
||||
- Add Optical Drive to the SATA controller
|
||||
- Choose your Ubuntu ISO image
|
||||
- Close the settings (click OK)
|
||||
- Run the VM
|
||||
|
||||
Follow the screenshots (some settings can be personalized, such as keyboard layout, location, password, login automatically, but **do not change the username**)
|
||||
|
||||
|
|
124
rc/README.md
124
rc/README.md
|
@ -37,83 +37,95 @@ The program must be executed passing the go source file to be analyze as the fir
|
|||
|
||||
- The remaining argument (from 2 to ...):
|
||||
|
||||
Can be (without any particular order):
|
||||
Can be (without any particular order):
|
||||
|
||||
- Allowed imports and functions from a package
|
||||
- `<package>.*` for full imports (all functions from that package are allowed)
|
||||
- `<package>`.`<function>` for partial imports (only the function is allowed)
|
||||
- `<package>`.`<function>#amout` for certain amounts (only certain amount os a function is allowed)
|
||||
- Ex: `fmt.*` (all functions from `fmt` are allowed), `github.com/01-edu/z01.PrintRune` (only `z01.PrintRune` is allowed), `append#2` (the only amount of `append`'s allowed is 2)
|
||||
- Allowed built-in functions
|
||||
- Use the name of the built-in function
|
||||
- Ex: `make`, `append`, `len`.
|
||||
- Allowed casting
|
||||
- by using the type of casting, ex: for allowing `string` casting, use `string`
|
||||
- Or use the flag `--cast`, to allow every type of casting
|
||||
- Allowed imports and functions from a package
|
||||
- `<package>.*` for full imports (all functions from that package are allowed)
|
||||
- `<package>`.`<function>` for partial imports (only the function is allowed)
|
||||
- `<package>`.`<function>#amout` for certain amounts (only certain amount os a function is allowed)
|
||||
- Ex: `fmt.*` (all functions from `fmt` are allowed), `github.com/01-edu/z01.PrintRune` (only `z01.PrintRune` is allowed), `append#2` (the only amount of `append`'s allowed is 2)
|
||||
- Allowed built-in functions
|
||||
|
||||
- Import relative packages
|
||||
- Use the relative path
|
||||
- Ex: `../piscine`, `..`, `.`
|
||||
- Use the name of the built-in function
|
||||
- Ex: `make`, `append`, `len`.
|
||||
- Allowed casting
|
||||
- by using the type of casting, ex: for allowing `string` casting, use `string`
|
||||
- Or use the flag `--cast`, to allow every type of casting
|
||||
|
||||
- Import relative packages
|
||||
|
||||
- Use the relative path
|
||||
- Ex: `../piscine`, `..`, `.`
|
||||
|
||||
- Unallow for loops
|
||||
- Use the flags `--no-for`.
|
||||
- Note: remember to use it before the `--no-array` flag.
|
||||
- ex:
|
||||
```console
|
||||
_$ ./rc main.go fmt.* github.com/01-edu/z01.PrintRune len --no-array <...> --no-for
|
||||
```
|
||||
the last line produces undesired behaviors.
|
||||
- Unallow literals
|
||||
- Use the flag `--no-lit="{PATTERN}"`
|
||||
- Note: `"{PATTERN}"` must be a valid RegExp.
|
||||
- ex:
|
||||
```console
|
||||
_$ ./rc main.go fmt.* github.com/01-edu/z01.PrintRune len --no-array --no-lit=[b-yB-Y]
|
||||
```
|
||||
|
||||
- Unallow for loops
|
||||
- Use the flags `--no-for`.
|
||||
- Note: remember to use it before the `--no-array` flag.
|
||||
- ex:
|
||||
```console
|
||||
_$ ./rc main.go fmt.* github.com/01-edu/z01.PrintRune len --no-array <...> --no-for
|
||||
```
|
||||
the last line produces undesired behaviors.
|
||||
- Unallow literals
|
||||
- Use the flag `--no-lit="{PATTERN}"`
|
||||
- Note: `"{PATTERN}"` must be a valid RegExp.
|
||||
- ex:
|
||||
```console
|
||||
_$ ./rc main.go fmt.* github.com/01-edu/z01.PrintRune len --no-array --no-lit=[b-yB-Y]
|
||||
```
|
||||
- Optional lasts arguments
|
||||
- The flag `--no-array` must be given as the last argument or to signal that all the arguments after are unallowed array types
|
||||
- The flag `--no-array` must be given as the last argument or to signal that all the arguments after are unallowed array types
|
||||
|
||||
### Usage:
|
||||
|
||||
- To allow the import of the whole `fmt` package, `z01.PrintRune` and the built-in functions len in the file `main.go`
|
||||
|
||||
The imports must be writen exactly the way are writen inside the source code, example:
|
||||
The imports must be writen exactly the way are writen inside the source code, example:
|
||||
|
||||
```console
|
||||
_$ ./rc main.go fmt.* github.com/01-edu/z01.PrintRune len
|
||||
```
|
||||
|
||||
- More examples:
|
||||
|
||||
- import "fmt" is allowed by executing
|
||||
```console
|
||||
_$ ./rc sourcefile.go fmt.*
|
||||
```
|
||||
|
||||
- import "go/parser" is allowed by executing
|
||||
```console
|
||||
_$ ./rc sourcefile.go go/parser.*
|
||||
```
|
||||
```console
|
||||
_$ ./rc sourcefile.go fmt.*
|
||||
```
|
||||
|
||||
- import "github.com/01-edu/z01" is allowed by executing
|
||||
```console
|
||||
./rc sourcefile.go github.com/01-edu/z01.*
|
||||
```
|
||||
- import "go/parser" is allowed by executing
|
||||
|
||||
- import "../../../all/tests/go/solutions" is allowed by executing
|
||||
```console
|
||||
_$ ./rc sourcefile.go ../../../all/tests/go/solutions
|
||||
```
|
||||
(no `.*` is needed, all the functions from this relative package are allowed)
|
||||
```console
|
||||
_$ ./rc sourcefile.go go/parser.*
|
||||
```
|
||||
|
||||
- import "github.com/01-edu/z01" is allowed by executing
|
||||
|
||||
```console
|
||||
./rc sourcefile.go github.com/01-edu/z01.*
|
||||
```
|
||||
|
||||
- import "../../../all/tests/go/solutions" is allowed by executing
|
||||
|
||||
```console
|
||||
_$ ./rc sourcefile.go ../../../all/tests/go/solutions
|
||||
```
|
||||
|
||||
(no `.*` is needed, all the functions from this relative package are allowed)
|
||||
|
||||
- allow all type of casting
|
||||
|
||||
```console
|
||||
_$ ./rc sourcefile.go ../../../all/tests/go/solutions/ztail/ztail.go fmt.* github.com/01-edu/z01 os.* strconv.* make len append --cast
|
||||
```
|
||||
- this will allow all type of casting in the file ztail.go
|
||||
```console
|
||||
_$ ./rc sourcefile.go ../../../all/tests/go/solutions/ztail/ztail.go fmt.* github.com/01-edu/z01 os.* strconv.* make len append --cast
|
||||
```
|
||||
|
||||
- this will allow all type of casting in the file ztail.go
|
||||
|
||||
- to allow just one type of casting
|
||||
|
||||
```console
|
||||
_$ ./rc sourcefile.go ../../../all/tests/go/solutions/ztail/ztail.go fmt.* github.com/01-edu/z01 os.* strconv.* make len append rune
|
||||
```
|
||||
- this will allow `rune`, but not `int8`, ..., `string`, `float32`, ...
|
||||
```console
|
||||
_$ ./rc sourcefile.go ../../../all/tests/go/solutions/ztail/ztail.go fmt.* github.com/01-edu/z01 os.* strconv.* make len append rune
|
||||
```
|
||||
|
||||
- this will allow `rune`, but not `int8`, ..., `string`, `float32`, ...
|
||||
|
|
12
rc/rc.go
12
rc/rc.go
|
@ -43,7 +43,7 @@ var (
|
|||
funcOccurrences map[string]int
|
||||
)
|
||||
|
||||
//pkgFunc for all the functions of a given package
|
||||
// pkgFunc for all the functions of a given package
|
||||
type pkgFunc struct {
|
||||
functions []string
|
||||
path string
|
||||
|
@ -93,6 +93,7 @@ func (fv *fileVisitor) getPos(n ast.Node) string {
|
|||
func (p *pkgVisitor) getPos(n ast.Node) string {
|
||||
return p.Fset.Position(n.Pos()).String()
|
||||
}
|
||||
|
||||
func (c *callVisitor) getPos(n ast.Node) string {
|
||||
return c.Fset.Position(n.Pos()).String()
|
||||
}
|
||||
|
@ -135,7 +136,7 @@ func getPkgFunc(path string, fsetPkg *token.FileSet) {
|
|||
|
||||
}
|
||||
|
||||
//reformat from the data base
|
||||
// reformat from the data base
|
||||
func splitArgs(args string) []string {
|
||||
result := strings.Split(args, " ")
|
||||
return result
|
||||
|
@ -198,12 +199,12 @@ func removeAmount(s string) string {
|
|||
return strRm
|
||||
}
|
||||
|
||||
//compares if the function is used a certain amount of times allowed
|
||||
// compares if the function is used a certain amount of times allowed
|
||||
func allowedAmount(occurrences map[string]int, allowedImports []string) {
|
||||
function := ""
|
||||
funcSelector := ""
|
||||
for _, v := range allowedImports {
|
||||
//pkg in case it's a build in function and slice in case it's a selector function
|
||||
// pkg in case it's a build in function and slice in case it's a selector function
|
||||
pkg, slice := trimRelativeImport(v)
|
||||
if slice != nil {
|
||||
function = strings.Join(slice, ".")
|
||||
|
@ -531,7 +532,7 @@ func (fv *fileVisitor) Visit(n ast.Node) ast.Visitor {
|
|||
if x, ok := expr.X.(*ast.Ident); ok {
|
||||
fv.selectExpr = append(fv.selectExpr, x.Name+"."+expr.Sel.Name)
|
||||
|
||||
//saves the function in to the map, from the package
|
||||
// saves the function in to the map, from the package
|
||||
if importPkg[x.Name] != nil {
|
||||
importPkg[x.Name].functions = append(importPkg[x.Name].functions, x.Name+"."+expr.Sel.Name)
|
||||
}
|
||||
|
@ -549,7 +550,6 @@ func (fv *fileVisitor) Visit(n ast.Node) ast.Visitor {
|
|||
position: fv.getPos(n),
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if exp, ok := n.(*ast.FuncDecl); ok {
|
||||
|
|
|
@ -7,7 +7,7 @@ Write a function, `ActiveBits`, that returns the number of active `bits` (bits w
|
|||
### Expected function
|
||||
|
||||
```go
|
||||
func ActiveBits(n int) uint {
|
||||
func ActiveBits(n int) int {
|
||||
|
||||
}
|
||||
```
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## addlinkednumbers
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testing are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
You have two numbers represented by a linked list, where each NodeAddL contains a single digit.
|
||||
|
@ -39,9 +28,7 @@ Here is a possible program to test your function:
|
|||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
import "fmt"
|
||||
|
||||
func pushFront(node *NodeAddL, num int) *NodeAddL {
|
||||
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a function `AdvancedSortWordArr` that sorts a `string` array, based on the function `f` passed in parameter.
|
||||
Write a function `AdvancedSortWordArr` that sorts a slice of `string`, based on the function `f` passed in parameter.
|
||||
|
||||
### Expected function
|
||||
|
||||
```go
|
||||
func AdvancedSortWordArr(array []string, f func(a, b string) int) {
|
||||
func AdvancedSortWordArr(a []string, f func(a, b string) int) {
|
||||
|
||||
}
|
||||
```
|
||||
|
|
|
@ -10,7 +10,7 @@ The letters are only the ones from the latin alphabet.
|
|||
### Expected function
|
||||
|
||||
```go
|
||||
func AlphaCount(str string) int {
|
||||
func AlphaCount(s string) int {
|
||||
|
||||
}
|
||||
```
|
||||
|
@ -28,8 +28,8 @@ import (
|
|||
)
|
||||
|
||||
func main() {
|
||||
str := "Hello 78 World! 4455 /"
|
||||
nb := piscine.AlphaCount(str)
|
||||
s := "Hello 78 World! 4455 /"
|
||||
nb := piscine.AlphaCount(s)
|
||||
fmt.Println(nb)
|
||||
}
|
||||
```
|
||||
|
|
|
@ -11,7 +11,7 @@ The case of the letter stays the same, for example :
|
|||
|
||||
The final result will be followed by a newline (`'\n'`).
|
||||
|
||||
If the number of arguments is different from 1, the program displays only a newline (`'\n'`).
|
||||
If the number of arguments is different from 1, the program displays nothing.
|
||||
|
||||
### Usage
|
||||
|
||||
|
@ -21,7 +21,6 @@ student@ubuntu:~/[[ROOT]]/alphamirror$ ./alphamirror "abc"
|
|||
zyx
|
||||
student@ubuntu:~/[[ROOT]]/alphamirror$ ./alphamirror "My horse is Amazing." | cat -e
|
||||
Nb slihv rh Znzarmt.$
|
||||
student@ubuntu:~/[[ROOT]]/alphamirror$ ./alphamirror | cat -e
|
||||
$
|
||||
student@ubuntu:~/[[ROOT]]/alphamirror$ ./alphamirror
|
||||
student@ubuntu:~/[[ROOT]]/alphamirror$
|
||||
```
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a function `Any` that returns `true`, for a `string` array :
|
||||
Write a function `Any` that returns `true`, for a `string` slice :
|
||||
|
||||
- if, when that `string` array is passed through an `f` function, at least one element returns `true`.
|
||||
- if, when that `string` slice is passed through an `f` function, at least one element returns `true`.
|
||||
|
||||
### Expected function
|
||||
|
||||
```go
|
||||
func Any(f func(string) bool, arr []string) bool {
|
||||
func Any(f func(string) bool, a []string) bool {
|
||||
|
||||
}
|
||||
```
|
||||
|
@ -27,11 +27,11 @@ import (
|
|||
)
|
||||
|
||||
func main() {
|
||||
tab1 := []string{"Hello", "how", "are", "you"}
|
||||
tab2 := []string{"This", "is", "4", "you"}
|
||||
a1 := []string{"Hello", "how", "are", "you"}
|
||||
a2 := []string{"This", "is", "4", "you"}
|
||||
|
||||
result1 := piscine.Any(piscine.IsNumeric, tab1)
|
||||
result2 := piscine.Any(piscine.IsNumeric, tab2)
|
||||
result1 := piscine.Any(piscine.IsNumeric, a1)
|
||||
result2 := piscine.Any(piscine.IsNumeric, a2)
|
||||
|
||||
fmt.Println(result1)
|
||||
fmt.Println(result2)
|
||||
|
|
|
@ -11,22 +11,22 @@ In the first line `{123}`
|
|||
In the second line `<Hello> (World)!`
|
||||
|
||||
```
|
||||
__ __
|
||||
/ / _ ____ _____ \ \
|
||||
| | / | |___ \ |___ / | |
|
||||
/ / | | __) | |_ \ \ \
|
||||
\ \ | | / __/ ___) | / /
|
||||
| | |_| |_____| |____/ | |
|
||||
\_\ /_/
|
||||
|
||||
__ _ _ _ _ __ __ __ __ _ _ __ _
|
||||
/ / | | | | | | | | \ \ / / \ \ / / | | | | \ \ | |
|
||||
/ / | |__| | ___ | | | | ___ \ \ | | \ \ /\ / / ___ _ __ | | __| | | | | |
|
||||
< < | __ | / _ \ | | | | / _ \ > > | | \ \/ \/ / / _ \ | '__| | | / _` | | | | |
|
||||
\ \ | | | | | __/ | | | | | (_) | / / | | \ /\ / | (_) | | | | | | (_| | | | |_|
|
||||
\_\ |_| |_| \___| |_| |_| \___/ /_/ | | \/ \/ \___/ |_| |_| \__,_| | | (_)
|
||||
\_\ /_/
|
||||
|
||||
__ __
|
||||
/ / _ ____ _____ \ \
|
||||
| | / | |___ \ |___ / | |
|
||||
/ / | | __) | |_ \ \ \
|
||||
\ \ | | / __/ ___) | / /
|
||||
| | |_| |_____| |____/ | |
|
||||
\_\ /_/
|
||||
|
||||
__ _ _ _ _ __ __ __ __ _ _ __ _
|
||||
/ / | | | | | | | | \ \ / / \ \ / / | | | | \ \ | |
|
||||
/ / | |__| | ___ | | | | ___ \ \ | | \ \ /\ / / ___ _ __ | | __| | | | | |
|
||||
< < | __ | / _ \ | | | | / _ \ > > | | \ \/ \/ / / _ \ | '__| | | / _` | | | | |
|
||||
\ \ | | | | | __/ | | | | | (_) | / / | | \ /\ / | (_) | | | | | | (_| | | | |_|
|
||||
\_\ |_| |_| \___| |_| |_| \___/ /_/ | | \/ \/ \___/ |_| |_| \__,_| | | (_)
|
||||
\_\ /_/
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right result as above?
|
||||
|
@ -34,14 +34,14 @@ In the second line `<Hello> (World)!`
|
|||
##### Try to input `"123??"` using the template/banner standard.
|
||||
|
||||
```
|
||||
___ ___
|
||||
_ ____ _____ |__ \ |__ \
|
||||
/ | |___ \ |___ / ) | ) |
|
||||
| | __) | |_ \ / / / /
|
||||
| | / __/ ___) | |_| |_|
|
||||
|_| |_____| |____/ (_) (_)
|
||||
|
||||
|
||||
___ ___
|
||||
_ ____ _____ |__ \ |__ \
|
||||
/ | |___ \ |___ / ) | ) |
|
||||
| | __) | |_ \ / / / /
|
||||
| | / __/ ___) | |_| |_|
|
||||
|_| |_____| |____/ (_) (_)
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right result as above?
|
||||
|
@ -49,14 +49,14 @@ In the second line `<Hello> (World)!`
|
|||
##### Try to input `"$% "="` using the template/banner shadow.
|
||||
|
||||
```
|
||||
_| _|
|
||||
_| _|_| _| _| _|
|
||||
_|_|_| _|_| _| _|_|_|_|_|
|
||||
_|_| _|
|
||||
_|_| _| _|_| _|_|_|_|_|
|
||||
_|_|_| _| _|_|
|
||||
_|
|
||||
|
||||
_| _|
|
||||
_| _|_| _| _| _|
|
||||
_|_|_| _|_| _| _|_|_|_|_|
|
||||
_|_| _|
|
||||
_|_| _| _|_| _|_|_|_|_|
|
||||
_|_|_| _| _|_|
|
||||
_|
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right result as above?
|
||||
|
@ -64,14 +64,14 @@ _|_|_| _| _|_|
|
|||
##### Try to input `"123 T/fs#R"` using the template/banner thinkertoy.
|
||||
|
||||
```
|
||||
|
||||
0 -- o-o o-O-o o o-o | | o--o
|
||||
/| o o | | / | -O-O- | |
|
||||
o | / oo | o -O- o-o | | O-Oo
|
||||
| / | | / | \ -O-O- | \
|
||||
o-o-o o--o o-o o o o o-o | | o o
|
||||
|
||||
|
||||
|
||||
0 -- o-o o-O-o o o-o | | o--o
|
||||
/| o o | | / | -O-O- | |
|
||||
o | / oo | o -O- o-o | | O-Oo
|
||||
| / | | / | \ -O-O- | \
|
||||
o-o-o o--o o-o o o o o-o | | o o
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right result as above?
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
##### Try passing as arguments `"hello" standard`
|
||||
|
||||
```
|
||||
_ _ _
|
||||
| | | | | |
|
||||
| |__ ___ | | | | ___
|
||||
| _ \ / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
_ _ _
|
||||
| | | | | |
|
||||
| |__ ___ | | | | ___
|
||||
| _ \ / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the string in the right template as an ASCII art representation as above?
|
||||
|
@ -20,14 +20,14 @@
|
|||
##### Try passing as arguments `"hello world" shadow`
|
||||
|
||||
```
|
||||
|
||||
_| _| _| _| _|
|
||||
_|_|_| _|_| _| _| _|_| _| _| _| _|_| _| _|_| _| _|_|_|
|
||||
_| _| _|_|_|_| _| _| _| _| _| _| _| _| _| _|_| _| _| _|
|
||||
_| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _|
|
||||
_| _| _|_|_| _| _| _|_| _| _| _|_| _| _| _|_|_|
|
||||
|
||||
|
||||
|
||||
_| _| _| _| _|
|
||||
_|_|_| _|_| _| _| _|_| _| _| _| _|_| _| _|_| _| _|_|_|
|
||||
_| _| _|_|_|_| _| _| _| _| _| _| _| _| _| _|_| _| _| _|
|
||||
_| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _|
|
||||
_| _| _|_|_| _| _| _|_| _| _| _|_| _| _| _|_|_|
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the string in the right template as an ASCII art representation as above?
|
||||
|
@ -35,14 +35,14 @@ _| _| _|_|_| _| _| _|_| _| _| _|_| _| _|
|
|||
##### Try passing as arguments `"nice 2 meet you" thinkertoy`
|
||||
|
||||
```
|
||||
|
||||
-- o
|
||||
o o o |
|
||||
o-o o-o o-o / o-O-o o-o o-o -o- o o o-o o o
|
||||
| | | | |-' / | | | |-' |-' | | | | | | |
|
||||
o o | o-o o-o o--o o o o o-o o-o o o--O o-o o--o
|
||||
|
|
||||
o--o
|
||||
|
||||
-- o
|
||||
o o o |
|
||||
o-o o-o o-o / o-O-o o-o o-o -o- o o o-o o o
|
||||
| | | | |-' / | | | |-' |-' | | | | | | |
|
||||
o o | o-o o-o o--o o o o o-o o-o o o--O o-o o--o
|
||||
|
|
||||
o--o
|
||||
```
|
||||
|
||||
###### Does it display the string in the right template as an ASCII art representation as above?
|
||||
|
@ -50,14 +50,14 @@ o o | o-o o-o o--o o o o o-o o-o o o--O o-o o--o
|
|||
##### Try passing as arguments `"you & me" standard`
|
||||
|
||||
```
|
||||
|
||||
___
|
||||
_ _ ___ _ _ ( _ ) _ __ ___ ___
|
||||
| | | | / _ \ | | | | / _ \/\ | '_ ` _ \ / _ \
|
||||
| |_| | | (_) | | |_| | | (_> < | | | | | | | __/
|
||||
\__, | \___/ \__,_| \___/\/ |_| |_| |_| \___|
|
||||
__/ /
|
||||
|___/
|
||||
|
||||
___
|
||||
_ _ ___ _ _ ( _ ) _ __ ___ ___
|
||||
| | | | / _ \ | | | | / _ \/\ | '_ ` _ \ / _ \
|
||||
| |_| | | (_) | | |_| | | (_> < | | | | | | | __/
|
||||
\__, | \___/ \__,_| \___/\/ |_| |_| |_| \___|
|
||||
__/ /
|
||||
|___/
|
||||
```
|
||||
|
||||
###### Does it display the string in the right template as an ASCII art representation as above?
|
||||
|
@ -65,14 +65,14 @@ o o | o-o o-o o--o o o o o-o o-o o o--O o-o o--o
|
|||
##### Try passing as arguments `"123" shadow`
|
||||
|
||||
```
|
||||
|
||||
_| _|_| _|_|_|
|
||||
_|_| _| _| _|
|
||||
_| _| _|_|
|
||||
_| _| _|
|
||||
_| _|_|_|_| _|_|_|
|
||||
|
||||
|
||||
|
||||
_| _|_| _|_|_|
|
||||
_|_| _| _| _|
|
||||
_| _| _|_|
|
||||
_| _| _|
|
||||
_| _|_|_|_| _|_|_|
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the string in the right template as an ASCII art representation as above?
|
||||
|
@ -80,14 +80,14 @@ _|_| _| _| _|
|
|||
##### Try passing as arguments `/(\") thinkertoy`
|
||||
|
||||
```
|
||||
o o
|
||||
o / | | \
|
||||
/ o o
|
||||
o | |
|
||||
/ o o
|
||||
o \ /
|
||||
|
||||
|
||||
o o
|
||||
o / | | \
|
||||
/ o o
|
||||
o | |
|
||||
/ o o
|
||||
o \ /
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the string in the right template as an ASCII art representation as above?
|
||||
|
@ -95,14 +95,14 @@ o \ /
|
|||
##### Try passing as arguments `ABCDEFGHIJKLMNOPQRSTUVWXYZ shadow`
|
||||
|
||||
```
|
||||
|
||||
_|_| _|_|_| _|_|_| _|_|_| _|_|_|_| _|_|_|_| _|_|_| _| _| _|_|_| _| _| _| _| _| _| _| _| _|_| _|_|_| _|_| _|_|_| _|_|_| _|_|_|_|_| _| _| _| _| _| _| _| _| _| _| _|_|_|_|_|
|
||||
_| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _|_| _|_| _|_| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _|
|
||||
_|_|_|_| _|_|_| _| _| _| _|_|_| _|_|_| _| _|_| _|_|_|_| _| _| _|_| _| _| _| _| _| _| _| _| _| _|_|_| _| _|_| _|_|_| _|_| _| _| _| _| _| _| _| _| _| _| _|
|
||||
_| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _|_| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _|
|
||||
_| _| _|_|_| _|_|_| _|_|_| _|_|_|_| _| _|_|_| _| _| _|_|_| _|_| _| _| _|_|_|_| _| _| _| _| _|_| _| _|_| _| _| _| _|_|_| _| _|_| _| _| _| _| _| _| _|_|_|_|_|
|
||||
|
||||
|
||||
|
||||
_|_| _|_|_| _|_|_| _|_|_| _|_|_|_| _|_|_|_| _|_|_| _| _| _|_|_| _| _| _| _| _| _| _| _| _|_| _|_|_| _|_| _|_|_| _|_|_| _|_|_|_|_| _| _| _| _| _| _| _| _| _| _| _|_|_|_|_|
|
||||
_| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _|_| _|_| _|_| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _|
|
||||
_|_|_|_| _|_|_| _| _| _| _|_|_| _|_|_| _| _|_| _|_|_|_| _| _| _|_| _| _| _| _| _| _| _| _| _| _|_|_| _| _|_| _|_|_| _|_| _| _| _| _| _| _| _| _| _| _| _|
|
||||
_| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _|_| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _|
|
||||
_| _| _|_|_| _|_|_| _|_|_| _|_|_|_| _| _|_|_| _| _| _|_|_| _|_| _| _| _|_|_|_| _| _| _| _| _|_| _| _|_| _| _| _| _|_|_| _| _|_| _| _| _| _| _| _| _|_|_|_|_|
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
@ -111,14 +111,14 @@ _| _| _|_|_| _|_|_| _|_|_| _|_|_|_| _| _|_|_| _| _| _|_|_|
|
|||
##### Try passing as arguments `\"#$%&/()*+,-./ thinkertoy`
|
||||
|
||||
```
|
||||
o o | |
|
||||
| | | | -O-O- O o / \ o | o o
|
||||
-O-O- o | | o / o / o o \|/ | /
|
||||
| | -O-O- / /| o | | --O-- -o- o
|
||||
-O-O- | | o / o o-O- / o o /|\ | o-o /
|
||||
| | -O-O- O | o \ / o | o o O o
|
||||
| | |
|
||||
|
||||
o o | |
|
||||
| | | | -O-O- O o / \ o | o o
|
||||
-O-O- o | | o / o / o o \|/ | /
|
||||
| | -O-O- / /| o | | --O-- -o- o
|
||||
-O-O- | | o / o o-O- / o o /|\ | o-o /
|
||||
| | -O-O- O | o \ / o | o o O o
|
||||
| | |
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the string in the right template as an ASCII art representation as above?
|
||||
|
@ -126,14 +126,14 @@ o o | |
|
|||
##### Try passing as arguments `"It's Working" thinkertoy`
|
||||
|
||||
```
|
||||
o
|
||||
o-O-o o | o o o
|
||||
| | | | | / o
|
||||
| -o- o-o o o o o-o o-o OO o-o o--o
|
||||
| | \ \ / \ / | | | | \ | | | | |
|
||||
o-O-o o o-o o o o-o o o o | o o o--O
|
||||
|
|
||||
o--o
|
||||
o
|
||||
o-O-o o | o o o
|
||||
| | | | | / o
|
||||
| -o- o-o o o o o-o o-o OO o-o o--o
|
||||
| | \ \ / \ / | | | | \ | | | | |
|
||||
o-O-o o o-o o o o-o o o o | o o o--O
|
||||
|
|
||||
o--o
|
||||
```
|
||||
|
||||
###### Does it display the string in the right template as an ASCII art representation as above?
|
||||
|
|
|
@ -29,34 +29,34 @@ This project will help you learn about :
|
|||
```console
|
||||
student@ubuntu:~/ascii-art$ go build
|
||||
student@ubuntu:~/ascii-art$ ./ascii-art "hello" standard
|
||||
_ _ _
|
||||
| | | | | |
|
||||
| |__ ___ | | | | ___
|
||||
| _ \ / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
_ _ _
|
||||
| | | | | |
|
||||
| |__ ___ | | | | ___
|
||||
| _ \ / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
|
||||
student@ubuntu:~/ascii-art$ ./ascii-art "Hello There!" shadow
|
||||
|
||||
_| _| _| _| _|_|_|_|_| _| _|
|
||||
_| _| _|_| _| _| _|_| _| _|_|_| _|_| _| _|_| _|_| _|
|
||||
_|_|_|_| _|_|_|_| _| _| _| _| _| _| _| _|_|_|_| _|_| _|_|_|_| _|
|
||||
_| _| _| _| _| _| _| _| _| _| _| _| _|
|
||||
_| _| _|_|_| _| _| _|_| _| _| _| _|_|_| _| _|_|_| _|
|
||||
|
||||
|
||||
|
||||
_| _| _| _| _|_|_|_|_| _| _|
|
||||
_| _| _|_| _| _| _|_| _| _|_|_| _|_| _| _|_| _|_| _|
|
||||
_|_|_|_| _|_|_|_| _| _| _| _| _| _| _| _|_|_|_| _|_| _|_|_|_| _|
|
||||
_| _| _| _| _| _| _| _| _| _| _| _| _|
|
||||
_| _| _|_|_| _| _| _|_| _| _| _| _|_|_| _| _|_|_| _|
|
||||
|
||||
|
||||
|
||||
student@ubuntu:~/ascii-art$ ./ascii-art "Hello There!" thinkertoy
|
||||
|
||||
o o o o o-O-o o
|
||||
| | | | | | o
|
||||
O--O o-o | | o-o | O--o o-o o-o o-o |
|
||||
| | |-' | | | | | | | |-' | |-' o
|
||||
o o o-o o o o-o o o o o-o o o-o
|
||||
O
|
||||
|
||||
|
||||
o o o o o-O-o o
|
||||
| | | | | | o
|
||||
O--O o-o | | o-o | O--o o-o o-o o-o |
|
||||
| | |-' | | | | | | | |-' | |-' o
|
||||
o o o-o o o o-o o o o o-o o o-o
|
||||
O
|
||||
|
||||
|
||||
student@ubuntu:~/ascii-art$
|
||||
```
|
||||
|
|
|
@ -6,22 +6,22 @@
|
|||
|
||||
```
|
||||
student$ cat test00.txt
|
||||
|
||||
_|_|_|_| _| _|
|
||||
_| _| _|_| _|_|_| _|_|_|_|
|
||||
_|_|_| _| _|_| _|_| _|
|
||||
_| _| _| _|_| _|
|
||||
_| _| _| _|_|_| _|_|
|
||||
|
||||
|
||||
|
||||
_|_|_|_|_| _|
|
||||
_| _|_| _|_|_| _|_|_|_|
|
||||
_| _|_|_|_| _|_| _|
|
||||
_| _| _|_| _|
|
||||
_| _|_|_| _|_|_| _|_|
|
||||
|
||||
|
||||
|
||||
_|_|_|_| _| _|
|
||||
_| _| _|_| _|_|_| _|_|_|_|
|
||||
_|_|_| _| _|_| _|_| _|
|
||||
_| _| _| _|_| _|
|
||||
_| _| _| _|_|_| _|_|
|
||||
|
||||
|
||||
|
||||
_|_|_|_|_| _|
|
||||
_| _|_| _|_|_| _|_|_|_|
|
||||
_| _|_|_|_| _|_| _|
|
||||
_| _| _|_| _|
|
||||
_| _|_|_| _|_|_| _|_|
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it save the right output in the right file?
|
||||
|
@ -30,14 +30,14 @@ _|_|_|_|_| _|
|
|||
|
||||
```
|
||||
student$ cat test01.txt
|
||||
_ _ _
|
||||
| | | | | |
|
||||
| |__ ___ | | | | ___
|
||||
| _ \ / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
_ _ _
|
||||
| | | | | |
|
||||
| |__ ___ | | | | ___
|
||||
| _ \ / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it save the right output in the right file?
|
||||
|
@ -46,14 +46,14 @@ student$ cat test01.txt
|
|||
|
||||
```
|
||||
student$ cat test02.txt
|
||||
__ _ _ _ _ __
|
||||
_ ____ _____ \ \ _| || |_ | | (_) / /
|
||||
/ | |___ \ |___ / ______ \ \ |_ __ _| / __) / /
|
||||
| | __) | |_ \ |______| > > _| || |_ \__ \ / /
|
||||
| | / __/ ___) | / / |_ __ _| ( / / / _
|
||||
|_| |_____| |____/ /_/ |_||_| |_| /_/ (_)
|
||||
|
||||
|
||||
__ _ _ _ _ __
|
||||
_ ____ _____ \ \ _| || |_ | | (_) / /
|
||||
/ | |___ \ |___ / ______ \ \ |_ __ _| / __) / /
|
||||
| | __) | |_ \ |______| > > _| || |_ \__ \ / /
|
||||
| | / __/ ___) | / / |_ __ _| ( / / / _
|
||||
|_| |_____| |____/ /_/ |_||_| |_| /_/ (_)
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it save the right output in the right file?
|
||||
|
@ -62,14 +62,14 @@ student$ cat test02.txt
|
|||
|
||||
```
|
||||
student$ cat test03.txt
|
||||
|
||||
_| _| _|_|_| _|_| _| _| _| _| _|_| _| _| _|_|_|_|_|
|
||||
_| _| _| _| _| _| _|_|_|_|_| _|_|_| _|_| _| _| _| _| _|
|
||||
_|_|_|_| _|_| _| _|_|_|_|_| _| _| _| _|_| _| _|_| _| _| _|_|_| _|
|
||||
_| _| _| _| _|_|_|_|_| _|_| _| _|_| _| _| _| _| _| _|
|
||||
_| _|_|_| _|_|_|_| _| _| _| _|_|_| _| _|_| _|_| _| _| _|_|_|_|
|
||||
_| _|
|
||||
_|_|_|_|_|_|
|
||||
|
||||
_| _| _|_|_| _|_| _| _| _| _| _|_| _| _| _|_|_|_|_|
|
||||
_| _| _| _| _| _| _|_|_|_|_| _|_|_| _|_| _| _| _| _| _|
|
||||
_|_|_|_| _|_| _| _|_|_|_|_| _| _| _| _|_| _| _|_| _| _| _|_|_| _|
|
||||
_| _| _| _| _|_|_|_|_| _|_| _| _|_| _| _| _| _| _| _|
|
||||
_| _|_|_| _|_|_|_| _| _| _| _|_|_| _| _|_| _|_| _| _| _|_|_|_|
|
||||
_| _|
|
||||
_|_|_|_|_|_|
|
||||
```
|
||||
|
||||
###### Does it save the right output in the right file?
|
||||
|
@ -78,14 +78,14 @@ _|_|_|_| _|_| _| _|_|_|_|_| _| _| _| _|_| _
|
|||
|
||||
```
|
||||
student$ cat test04.txt
|
||||
|
||||
_|_|_|_|_| _|
|
||||
_| _|_|_| _|_| _| _|_| _|_|
|
||||
_| _| _| _|_|_|_| _|_| _|_|_|_|
|
||||
_| _| _| _| _| _|
|
||||
_| _| _| _|_|_| _| _|_|_|
|
||||
|
||||
|
||||
|
||||
_|_|_|_|_| _|
|
||||
_| _|_|_| _|_| _| _|_| _|_|
|
||||
_| _| _| _|_|_|_| _|_| _|_|_|_|
|
||||
_| _| _| _| _| _|
|
||||
_| _| _| _|_|_| _| _|_|_|
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it save the right output in the right file?
|
||||
|
@ -94,14 +94,14 @@ _|_|_|_|_| _|
|
|||
|
||||
```
|
||||
student$ cat test05.txt
|
||||
o o | |
|
||||
0 -- o-o o | | | | -O-O- O o
|
||||
/| o o | \ -O-O- o | | o / / \
|
||||
o | / oo O | | -O-O- / o O-o
|
||||
| / | o-o / -O-O- | | o / o \
|
||||
o-o-o o--o o-o o | | -O-O- O o-
|
||||
| |
|
||||
|
||||
o o | |
|
||||
0 -- o-o o | | | | -O-O- O o
|
||||
/| o o | \ -O-O- o | | o / / \
|
||||
o | / oo O | | -O-O- / o O-o
|
||||
| / | o-o / -O-O- | | o / o \
|
||||
o-o-o o--o o-o o | | -O-O- O o-
|
||||
| |
|
||||
|
||||
```
|
||||
|
||||
###### Does it save the right output in the right file?
|
||||
|
@ -111,30 +111,30 @@ o-o-o o--o o-o o | | -O-O- O o-
|
|||
```
|
||||
student$ cat test06.txt
|
||||
|
||||
|
||||
--
|
||||
o o
|
||||
/ o o o-o o o
|
||||
/ | | | | | |
|
||||
o--o o--O o-o o--o
|
||||
|
|
||||
o--o
|
||||
|
||||
--
|
||||
o o
|
||||
/ o o o-o o o
|
||||
/ | | | | | |
|
||||
o--o o--O o-o o--o
|
||||
|
|
||||
o--o
|
||||
```
|
||||
|
||||
###### Does it save the right output in the right file?
|
||||
|
||||
##### Try passing as arguments `"Testing long output!" standard --output=test07.txt`
|
||||
##### Try passing as arguments `"Testing long output!" standard --output=test07.txt`
|
||||
|
||||
```
|
||||
student$ cat test07.txt
|
||||
_______ _ _ _ _ _ _
|
||||
|__ __| | | (_) __ _ | | __ _ | | | | | |
|
||||
| | ___ ___ | |_ _ _ __ / _` | | | ___ _ __ / _` | ___ _ _ | |_ _ __ _ _ | |_ | |
|
||||
| | / _ \ / __| | __| | | | '_ \ | (_| | | | / _ \ | '_ \ | (_| | / _ \ | | | | | __| | '_ \ | | | | | __| | |
|
||||
| | | __/ \__ \ \ |_ | | | | | | \__, | | | | (_) | | | | | \__, | | (_) | | |_| | \ |_ | |_) | | |_| | \ |_ |_|
|
||||
|_| \___| |___/ \__| |_| |_| |_| __/ | |_| \___/ |_| |_| __/ | \___/ \__,_| \__| | .__/ \__,_| \__| (_)
|
||||
|___/ |___/ | |
|
||||
|_|
|
||||
_______ _ _ _ _ _ _
|
||||
|__ __| | | (_) __ _ | | __ _ | | | | | |
|
||||
| | ___ ___ | |_ _ _ __ / _` | | | ___ _ __ / _` | ___ _ _ | |_ _ __ _ _ | |_ | |
|
||||
| | / _ \ / __| | __| | | | '_ \ | (_| | | | / _ \ | '_ \ | (_| | / _ \ | | | | | __| | '_ \ | | | | | __| | |
|
||||
| | | __/ \__ \ \ |_ | | | | | | \__, | | | | (_) | | | | | \__, | | (_) | | |_| | \ |_ | |_) | | |_| | \ |_ |_|
|
||||
|_| \___| |___/ \__| |_| |_| |_| __/ | |_| \___/ |_| |_| __/ | \___/ \__,_| \__| | .__/ \__,_| \__| (_)
|
||||
|___/ |___/ | |
|
||||
|_|
|
||||
```
|
||||
|
||||
###### Does it save the right output in the right file?
|
||||
|
|
|
@ -31,25 +31,25 @@ This project will help you learn about :
|
|||
student@ubuntu:~/ascii-art$ go build
|
||||
student@ubuntu:~/ascii-art$ ./ascii-art "hello" standard --output=banner.txt
|
||||
student@ubuntu:~/ascii-art$ cat banner.txt
|
||||
_ _ _
|
||||
| | | | | |
|
||||
| |__ ___ | | | | ___
|
||||
| _ \ / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
_ _ _
|
||||
| | | | | |
|
||||
| |__ ___ | | | | ___
|
||||
| _ \ / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
|
||||
student@ubuntu:~/ascii-art$ ./ascii-art "Hello There!" shadow --output=banner.txt
|
||||
student@ubuntu:~/ascii-art$ cat banner.txt
|
||||
|
||||
_| _| _| _| _|_|_|_|_| _| _|
|
||||
_| _| _|_| _| _| _|_| _| _|_|_| _|_| _| _|_| _|_| _|
|
||||
_|_|_|_| _|_|_|_| _| _| _| _| _| _| _| _|_|_|_| _|_| _|_|_|_| _|
|
||||
_| _| _| _| _| _| _| _| _| _| _| _| _|
|
||||
_| _| _|_|_| _| _| _|_| _| _| _| _|_|_| _| _|_|_| _|
|
||||
|
||||
|
||||
|
||||
_| _| _| _| _|_|_|_|_| _| _|
|
||||
_| _| _|_| _| _| _|_| _| _|_|_| _|_| _| _|_| _|_| _|
|
||||
_|_|_|_| _|_|_|_| _| _| _| _| _| _| _| _|_|_|_| _|_| _|_|_|_| _|
|
||||
_| _| _| _| _| _| _| _| _| _| _| _| _|
|
||||
_| _| _|_|_| _| _| _|_| _| _| _| _|_|_| _| _|_|_| _|
|
||||
|
||||
|
||||
|
||||
student@ubuntu:~/ascii-art$
|
||||
```
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
### example00
|
||||
|
||||
```console
|
||||
_ _ _ _ __ __ _ _
|
||||
| | | | | | | | \ \ / / | | | |
|
||||
| |__| | ___ | | | | ___ \ \ /\ / / ___ _ __ | | __| |
|
||||
| __ | / _ \ | | | | / _ \ \ \/ \/ / / _ \ | '__| | | / _` |
|
||||
| | | | | __/ | | | | | (_) | \ /\ / | (_) | | | | | | (_| |
|
||||
|_| |_| \___| |_| |_| \___/ \/ \/ \___/ |_| |_| \__,_|
|
||||
|
||||
|
||||
_ _ _ _ __ __ _ _
|
||||
| | | | | | | | \ \ / / | | | |
|
||||
| |__| | ___ | | | | ___ \ \ /\ / / ___ _ __ | | __| |
|
||||
| __ | / _ \ | | | | / _ \ \ \/ \/ / / _ \ | '__| | | / _` |
|
||||
| | | | | __/ | | | | | (_) | \ /\ / | (_) | | | | | | (_| |
|
||||
|_| |_| \___| |_| |_| \___/ \/ \/ \___/ |_| |_| \__,_|
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
@ -20,14 +20,14 @@
|
|||
### example01
|
||||
|
||||
```console
|
||||
|
||||
_ ____ _____
|
||||
/ | |___ \ |___ /
|
||||
| | __) | |_ \
|
||||
| | / __/ ___) |
|
||||
|_| |_____| |____/
|
||||
|
||||
|
||||
|
||||
_ ____ _____
|
||||
/ | |___ \ |___ /
|
||||
| | __) | |_ \
|
||||
| | / __/ ___) |
|
||||
|_| |_____| |____/
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
@ -35,14 +35,14 @@
|
|||
### example02
|
||||
|
||||
```console
|
||||
_ _ __ ___
|
||||
_| || |_ ______ \ \ | _|
|
||||
|_ __ _| |______| \ \ | |
|
||||
_| || |_ ______ \ \ | |
|
||||
|_ __ _| |______| \ \ | |
|
||||
|_||_| \_\ | |_
|
||||
|___|
|
||||
|
||||
_ _ __ ___
|
||||
_| || |_ ______ \ \ | _|
|
||||
|_ __ _| |______| \ \ | |
|
||||
_| || |_ ______ \ \ | |
|
||||
|_ __ _| |______| \ \ | |
|
||||
|_||_| \_\ | |_
|
||||
|___|
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
@ -50,69 +50,69 @@
|
|||
### example03
|
||||
|
||||
```console
|
||||
__ _ _ _ __
|
||||
/ / | | | | (_) __ _ ___ ____ _____ _ _ \ \
|
||||
| | ___ ___ _ __ ___ | |_ | |__ _ _ __ / _` | ( _ ) |___ \ |___ / | || | | |
|
||||
| | / __| / _ \ | '_ ` _ \ | __| | _ \ | | | '_ \ | (_| | / _ \/\ __) | |_ \ | || |_ | |
|
||||
| | \__ \ | (_) | | | | | | | \ |_ | | | | | | | | | | \__, | | (_> < / __/ ___) | |__ _| | |
|
||||
| | |___/ \___/ |_| |_| |_| \__| |_| |_| |_| |_| |_| __/ | \___/\/ |_____| |____/ |_| | |
|
||||
\_\ |___/ /_/
|
||||
|
||||
__ _ _ _ __
|
||||
/ / | | | | (_) __ _ ___ ____ _____ _ _ \ \
|
||||
| | ___ ___ _ __ ___ | |_ | |__ _ _ __ / _` | ( _ ) |___ \ |___ / | || | | |
|
||||
| | / __| / _ \ | '_ ` _ \ | __| | _ \ | | | '_ \ | (_| | / _ \/\ __) | |_ \ | || |_ | |
|
||||
| | \__ \ | (_) | | | | | | | \ |_ | | | | | | | | | | \__, | | (_> < / __/ ___) | |__ _| | |
|
||||
| | |___/ \___/ |_| |_| |_| \__| |_| |_| |_| |_| |_| __/ | \___/\/ |_____| |____/ |_| | |
|
||||
\_\ |___/ /_/
|
||||
|
||||
|
||||
```
|
||||
|
||||
### example04
|
||||
|
||||
```console
|
||||
_ _ __ _ _ _ _ _
|
||||
| | | | / _| __ _ | | (_) (_) _ | | | |
|
||||
__ _ | |__ ___ __| | ___ | |_ / _` | | |__ _ _ | | _ | | _ __ ___ _ __ ___ _ __ __ _ _ __ ___ | |_ _ _ __ __ __ __ __ __ _ _ ____
|
||||
/ _` | | '_ \ / __| / _` | / _ \ | _| | (_| | | _ \ | | | | | |/ / | | | '_ ` _ \ | '_ \ / _ \ | '_ \ / _` | | '__| / __| | __| | | | | \ \ / / \ \ /\ / / \ \/ / | | | | |_ /
|
||||
| (_| | | |_) | | (__ | (_| | | __/ | | \__, | | | | | | | | | | < | | | | | | | | | | | | | (_) | | |_) | | (_| | | | \__ \ \ |_ | |_| | \ V / \ V V / > < | |_| | / /
|
||||
\__,_| |_.__/ \___| \__,_| \___| |_| __/ | |_| |_| |_| | | |_|\_\ |_| |_| |_| |_| |_| |_| \___/ | .__/ \__, | |_| |___/ \__| \__,_| \_/ \_/\_/ /_/\_\ \__, | /___|
|
||||
|___/ _/ | | | | | __/ /
|
||||
|__/ |_| |_| |___/
|
||||
_ _ __ _ _ _ _ _
|
||||
| | | | / _| __ _ | | (_) (_) _ | | | |
|
||||
__ _ | |__ ___ __| | ___ | |_ / _` | | |__ _ _ | | _ | | _ __ ___ _ __ ___ _ __ __ _ _ __ ___ | |_ _ _ __ __ __ __ __ __ _ _ ____
|
||||
/ _` | | '_ \ / __| / _` | / _ \ | _| | (_| | | _ \ | | | | | |/ / | | | '_ ` _ \ | '_ \ / _ \ | '_ \ / _` | | '__| / __| | __| | | | | \ \ / / \ \ /\ / / \ \/ / | | | | |_ /
|
||||
| (_| | | |_) | | (__ | (_| | | __/ | | \__, | | | | | | | | | | < | | | | | | | | | | | | | (_) | | |_) | | (_| | | | \__ \ \ |_ | |_| | \ V / \ V V / > < | |_| | / /
|
||||
\__,_| |_.__/ \___| \__,_| \___| |_| __/ | |_| |_| |_| | | |_|\_\ |_| |_| |_| |_| |_| |_| \___/ | .__/ \__, | |_| |___/ \__| \__,_| \_/ \_/\_/ /_/\_\ \__, | /___|
|
||||
|___/ _/ | | | | | __/ /
|
||||
|__/ |_| |_| |___/
|
||||
|
||||
```
|
||||
|
||||
### example05
|
||||
|
||||
```console
|
||||
__ _ _ _ _ _ _ _ __ _ __ __ _ __
|
||||
\ \ | | ( | ) _| || |_ | | (_) / / ___ ( ) / / \ \ /\| |/\ _ / /
|
||||
\ \ | | V V |_ __ _| / __) / / ( _ ) |/ | | | | \ ` ' / _| |_ ______ / /
|
||||
\ \ | | _| || |_ \__ \ / / / _ \/\ | | | | |_ _| |_ _| |______| / /
|
||||
\ \ |_| |_ __ _| ( / / / _ | (_> < | | | | / , . \ |_| _ _ / /
|
||||
\_\ (_) |_||_| |_| /_/ (_) \___/\/ | | | | \/|_|\/ ( ) (_) /_/
|
||||
\_\ /_/ |/
|
||||
|
||||
__ _ _ _ _ _ _ _ __ _ __ __ _ __
|
||||
\ \ | | ( | ) _| || |_ | | (_) / / ___ ( ) / / \ \ /\| |/\ _ / /
|
||||
\ \ | | V V |_ __ _| / __) / / ( _ ) |/ | | | | \ ` ' / _| |_ ______ / /
|
||||
\ \ | | _| || |_ \__ \ / / / _ \/\ | | | | |_ _| |_ _| |______| / /
|
||||
\ \ |_| |_ __ _| ( / / / _ | (_> < | | | | / , . \ |_| _ _ / /
|
||||
\_\ (_) |_||_| |_| /_/ (_) \___/\/ | | | | \/|_|\/ ( ) (_) /_/
|
||||
\_\ /_/ |/
|
||||
|
||||
|
||||
```
|
||||
|
||||
### example06
|
||||
|
||||
```console
|
||||
__ __ ___
|
||||
_ _ / / ______ \ \ |__ \ ____
|
||||
(_) (_) / / |______| \ \ ) | / __ \
|
||||
< < ______ > > / / / / _` |
|
||||
_ _ \ \ |______| / / |_| | | (_| |
|
||||
(_) ( ) \_\ /_/ (_) \ \__,_|
|
||||
|/ \____/
|
||||
|
||||
__ __ ___
|
||||
_ _ / / ______ \ \ |__ \ ____
|
||||
(_) (_) / / |______| \ \ ) | / __ \
|
||||
< < ______ > > / / / / _` |
|
||||
_ _ \ \ |______| / / |_| | | (_| |
|
||||
(_) ( ) \_\ /_/ (_) \ \__,_|
|
||||
|/ \____/
|
||||
|
||||
|
||||
```
|
||||
|
||||
### example07
|
||||
|
||||
```console
|
||||
____ _____ _____ ______ ______ _____ _ _ _____ _ _ __ _ __ __ _ _ ____ _____ ____ _____ _____ _______ _ _ __ __ __ __ __ __ __ __ ______
|
||||
/\ | _ \ / ____| | __ \ | ____| | ____| / ____| | | | | |_ _| | | | |/ / | | | \/ | | \ | | / __ \ | __ \ / __ \ | __ \ / ____| |__ __| | | | | \ \ / / \ \ / / \ \ / / \ \ / / |___ /
|
||||
/ \ | |_) | | | | | | | | |__ | |__ | | __ | |__| | | | | | | ' / | | | \ / | | \| | | | | | | |__) | | | | | | |__) | | (___ | | | | | | \ \ / / \ \ /\ / / \ V / \ \_/ / / /
|
||||
/ /\ \ | _ < | | | | | | | __| | __| | | |_ | | __ | | | _ | | | < | | | |\/| | | . ` | | | | | | ___/ | | | | | _ / \___ \ | | | | | | \ \/ / \ \/ \/ / > < \ / / /
|
||||
/ ____ \ | |_) | | |____ | |__| | | |____ | | | |__| | | | | | _| |_ | |__| | | . \ | |____ | | | | | |\ | | |__| | | | | |__| | | | \ \ ____) | | | | |__| | \ / \ /\ / / . \ | | / /__
|
||||
/_/ \_\ |____/ \_____| |_____/ |______| |_| \_____| |_| |_| |_____| \____/ |_|\_\ |______| |_| |_| |_| \_| \____/ |_| \___\_\ |_| \_\ |_____/ |_| \____/ \/ \/ \/ /_/ \_\ |_| /_____|
|
||||
|
||||
|
||||
____ _____ _____ ______ ______ _____ _ _ _____ _ _ __ _ __ __ _ _ ____ _____ ____ _____ _____ _______ _ _ __ __ __ __ __ __ __ __ ______
|
||||
/\ | _ \ / ____| | __ \ | ____| | ____| / ____| | | | | |_ _| | | | |/ / | | | \/ | | \ | | / __ \ | __ \ / __ \ | __ \ / ____| |__ __| | | | | \ \ / / \ \ / / \ \ / / \ \ / / |___ /
|
||||
/ \ | |_) | | | | | | | | |__ | |__ | | __ | |__| | | | | | | ' / | | | \ / | | \| | | | | | | |__) | | | | | | |__) | | (___ | | | | | | \ \ / / \ \ /\ / / \ V / \ \_/ / / /
|
||||
/ /\ \ | _ < | | | | | | | __| | __| | | |_ | | __ | | | _ | | | < | | | |\/| | | . ` | | | | | | ___/ | | | | | _ / \___ \ | | | | | | \ \/ / \ \/ \/ / > < \ / / /
|
||||
/ ____ \ | |_) | | |____ | |__| | | |____ | | | |__| | | | | | _| |_ | |__| | | . \ | |____ | | | | | |\ | | |__| | | | | |__| | | | \ \ ____) | | | | |__| | \ / \ /\ / / . \ | | / /__
|
||||
/_/ \_\ |____/ \_____| |_____/ |______| |_| \_____| |_| |_| |_____| \____/ |_|\_\ |______| |_| |_| |_| \_| \____/ |_| \___\_\ |_| \_\ |_____/ |_| \____/ \/ \/ \/ /_/ \_\ |_| /_____|
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
|
|
@ -33,14 +33,14 @@ This project will help you learn about :
|
|||
```console
|
||||
student@ubuntu:~/ascii-art$ go build
|
||||
student@ubuntu:~/ascii-art$ cat file.txt
|
||||
_ _ _
|
||||
| | | | | |
|
||||
| |__ ___ | | | | ___
|
||||
| _ \ / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
_ _ _
|
||||
| | | | | |
|
||||
| |__ ___ | | | | ___
|
||||
| _ \ / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
|
||||
student@ubuntu:~/ascii-art$ ./ascii-art --reverse=file.txt
|
||||
hello
|
||||
|
|
|
@ -3,231 +3,267 @@
|
|||
###### Has the requirement for the allowed packages been respected? (Reminder for this project: (only [standard packages](https://golang.org/pkg/)
|
||||
|
||||
##### Try passing as argument `"hello"`.
|
||||
|
||||
```
|
||||
_ _ _
|
||||
| | | | | |
|
||||
| |__ ___ | | | | ___
|
||||
| _ \ / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
_ _ _
|
||||
| | | | | |
|
||||
| |__ ___ | | | | ___
|
||||
| _ \ / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing as argument `"HELLO"`.
|
||||
|
||||
```
|
||||
_ _ ______ _ _ ____
|
||||
| | | | | ____| | | | | / __ \
|
||||
| |__| | | |__ | | | | | | | |
|
||||
| __ | | __| | | | | | | | |
|
||||
| | | | | |____ | |____ | |____ | |__| |
|
||||
|_| |_| |______| |______| |______| \____/
|
||||
|
||||
|
||||
_ _ ______ _ _ ____
|
||||
| | | | | ____| | | | | / __ \
|
||||
| |__| | | |__ | | | | | | | |
|
||||
| __ | | __| | | | | | | | |
|
||||
| | | | | |____ | |____ | |____ | |__| |
|
||||
|_| |_| |______| |______| |______| \____/
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing as argument `"HeLlo HuMaN"`.
|
||||
|
||||
```
|
||||
_ _ _ _ _ _ __ __ _ _
|
||||
| | | | | | | | | | | | | \/ | | \ | |
|
||||
| |__| | ___ | | | | ___ | |__| | _ _ | \ / | __ _ | \| |
|
||||
| __ | / _ \ | | | | / _ \ | __ | | | | | | |\/| | / _` | | . ` |
|
||||
| | | | | __/ | |____ | | | (_) | | | | | | |_| | | | | | | (_| | | |\ |
|
||||
|_| |_| \___| |______| |_| \___/ |_| |_| \__,_| |_| |_| \__,_| |_| \_|
|
||||
|
||||
|
||||
_ _ _ _ _ _ __ __ _ _
|
||||
| | | | | | | | | | | | | \/ | | \ | |
|
||||
| |__| | ___ | | | | ___ | |__| | _ _ | \ / | __ _ | \| |
|
||||
| __ | / _ \ | | | | / _ \ | __ | | | | | | |\/| | / _` | | . ` |
|
||||
| | | | | __/ | |____ | | | (_) | | | | | | |_| | | | | | | (_| | | |\ |
|
||||
|_| |_| \___| |______| |_| \___/ |_| |_| \__,_| |_| |_| \__,_| |_| \_|
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing as argument `"1Hello 2There"`.
|
||||
|
||||
```
|
||||
_ _ _ _ _______ _
|
||||
_ | | | | | | | | ____ |__ __| | |
|
||||
/ | | |__| | ___ | | | | ___ |___ \ | | | |__ ___ _ __ ___
|
||||
| | | __ | / _ \ | | | | / _ \ __) | | | | _ \ / _ \ | '__| / _ \
|
||||
| | | | | | | __/ | | | | | (_) | / __/ | | | | | | | __/ | | | __/
|
||||
|_| |_| |_| \___| |_| |_| \___/ |_____| |_| |_| |_| \___| |_| \___|
|
||||
|
||||
|
||||
_ _ _ _ _______ _
|
||||
_ | | | | | | | | ____ |__ __| | |
|
||||
/ | | |__| | ___ | | | | ___ |___ \ | | | |__ ___ _ __ ___
|
||||
| | | __ | / _ \ | | | | / _ \ __) | | | | _ \ / _ \ | '__| / _ \
|
||||
| | | | | | | __/ | | | | | (_) | / __/ | | | | | | | __/ | | | __/
|
||||
|_| |_| |_| \___| |_| |_| \___/ |_____| |_| |_| |_| \___| |_| \___|
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing as argument `"Hello\nThere"`.
|
||||
|
||||
```
|
||||
_ _ _ _
|
||||
| | | | | | | |
|
||||
| |__| | ___ | | | | ___
|
||||
| __ | / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
_______ _
|
||||
|__ __| | |
|
||||
| | | |__ ___ _ __ ___
|
||||
| | | _ \ / _ \ | '__| / _ \
|
||||
| | | | | | | __/ | | | __/
|
||||
|_| |_| |_| \___| |_| \___|
|
||||
|
||||
|
||||
_ _ _ _
|
||||
| | | | | | | |
|
||||
| |__| | ___ | | | | ___
|
||||
| __ | / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
_______ _
|
||||
|__ __| | |
|
||||
| | | |__ ___ _ __ ___
|
||||
| | | _ \ / _ \ | '__| / _ \
|
||||
| | | | | | | __/ | | | __/
|
||||
|_| |_| |_| \___| |_| \___|
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing `"{Hello & There #}"` as argument.
|
||||
|
||||
```
|
||||
__ _ _ _ _ _______ _ _ _ __
|
||||
/ / | | | | | | | | ___ |__ __| | | _| || |_ \ \
|
||||
| | | |__| | ___ | | | | ___ ( _ ) | | | |__ ___ _ __ ___ |_ __ _| | |
|
||||
/ / | __ | / _ \ | | | | / _ \ / _ \/\ | | | _ \ / _ \ | '__| / _ \ _| || |_ \ \
|
||||
\ \ | | | | | __/ | | | | | (_) | | (_> < | | | | | | | __/ | | | __/ |_ __ _| / /
|
||||
| | |_| |_| \___| |_| |_| \___/ \___/\/ |_| |_| |_| \___| |_| \___| |_||_| | |
|
||||
\_\ /_/
|
||||
|
||||
__ _ _ _ _ _______ _ _ _ __
|
||||
/ / | | | | | | | | ___ |__ __| | | _| || |_ \ \
|
||||
| | | |__| | ___ | | | | ___ ( _ ) | | | |__ ___ _ __ ___ |_ __ _| | |
|
||||
/ / | __ | / _ \ | | | | / _ \ / _ \/\ | | | _ \ / _ \ | '__| / _ \ _| || |_ \ \
|
||||
\ \ | | | | | __/ | | | | | (_) | | (_> < | | | | | | | __/ | | | __/ |_ __ _| / /
|
||||
| | |_| |_| \___| |_| |_| \___/ \___/\/ |_| |_| |_| \___| |_| \___| |_||_| | |
|
||||
\_\ /_/
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing `"hello There 1 to 2!"` as argument.
|
||||
|
||||
```
|
||||
_ _ _ _______ _ _ _
|
||||
| | | | | | |__ __| | | _ | | ____ | |
|
||||
| |__ ___ | | | | ___ | | | |__ ___ _ __ ___ / | | |_ ___ |___ \ | |
|
||||
| _ \ / _ \ | | | | / _ \ | | | _ \ / _ \ | '__| / _ \ | | | __| / _ \ __) | | |
|
||||
| | | | | __/ | | | | | (_) | | | | | | | | __/ | | | __/ | | \ |_ | (_) | / __/ |_|
|
||||
|_| |_| \___| |_| |_| \___/ |_| |_| |_| \___| |_| \___| |_| \__| \___/ |_____| (_)
|
||||
|
||||
|
||||
_ _ _ _______ _ _ _
|
||||
| | | | | | |__ __| | | _ | | ____ | |
|
||||
| |__ ___ | | | | ___ | | | |__ ___ _ __ ___ / | | |_ ___ |___ \ | |
|
||||
| _ \ / _ \ | | | | / _ \ | | | _ \ / _ \ | '__| / _ \ | | | __| / _ \ __) | | |
|
||||
| | | | | __/ | | | | | (_) | | | | | | | | __/ | | | __/ | | \ |_ | (_) | / __/ |_|
|
||||
|_| |_| \___| |_| |_| \___/ |_| |_| |_| \___| |_| \___| |_| \__| \___/ |_____| (_)
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing `"MaD3IrA&LiSboN"` as argument.
|
||||
|
||||
```
|
||||
__ __ _____ _____ _ _ _____ _ _ _
|
||||
| \/ | | __ \ _____ |_ _| /\ ___ | | (_) / ____| | | | \ | |
|
||||
| \ / | __ _ | | | | |___ / | | _ __ / \ ( _ ) | | _ | (___ | |__ ___ | \| |
|
||||
| |\/| | / _` | | | | | |_ \ | | | '__| / /\ \ / _ \/\ | | | | \___ \ | '_ \ / _ \ | . ` |
|
||||
| | | | | (_| | | |__| | ___) | _| |_ | | / ____ \ | (_> < | |____ | | ____) | | |_) | | (_) | | |\ |
|
||||
|_| |_| \__,_| |_____/ |____/ |_____| |_| /_/ \_\ \___/\/ |______| |_| |_____/ |_.__/ \___/ |_| \_|
|
||||
|
||||
|
||||
__ __ _____ _____ _ _ _____ _ _ _
|
||||
| \/ | | __ \ _____ |_ _| /\ ___ | | (_) / ____| | | | \ | |
|
||||
| \ / | __ _ | | | | |___ / | | _ __ / \ ( _ ) | | _ | (___ | |__ ___ | \| |
|
||||
| |\/| | / _` | | | | | |_ \ | | | '__| / /\ \ / _ \/\ | | | | \___ \ | '_ \ / _ \ | . ` |
|
||||
| | | | | (_| | | |__| | ___) | _| |_ | | / ____ \ | (_> < | |____ | | ____) | | |_) | | (_) | | |\ |
|
||||
|_| |_| \__,_| |_____/ |____/ |_____| |_| /_/ \_\ \___/\/ |______| |_| |_____/ |_.__/ \___/ |_| \_|
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing `"1a\"#FdwHywR&/()="` as argument.
|
||||
|
||||
```
|
||||
_ _ _ _ ______ _ _ _ _____ __ __ __
|
||||
_ ( | ) _| || |_ | ____| | | | | | | | __ \ ___ / / / / \ \ ______
|
||||
/ | __ _ V V |_ __ _| | |__ __| | __ __ | |__| | _ _ __ __ | |__) | ( _ ) / / | | | | |______|
|
||||
| | / _` | _| || |_ | __| / _` | \ \ /\ / / | __ | | | | | \ \ /\ / / | _ / / _ \/\ / / | | | | ______
|
||||
| | | (_| | |_ __ _| | | | (_| | \ V V / | | | | | |_| | \ V V / | | \ \ | (_> < / / | | | | |______|
|
||||
|_| \__,_| |_||_| |_| \__,_| \_/\_/ |_| |_| \__, | \_/\_/ |_| \_\ \___/\/ /_/ | | | |
|
||||
__/ / \_\ /_/
|
||||
|___/
|
||||
_ _ _ _ ______ _ _ _ _____ __ __ __
|
||||
_ ( | ) _| || |_ | ____| | | | | | | | __ \ ___ / / / / \ \ ______
|
||||
/ | __ _ V V |_ __ _| | |__ __| | __ __ | |__| | _ _ __ __ | |__) | ( _ ) / / | | | | |______|
|
||||
| | / _` | _| || |_ | __| / _` | \ \ /\ / / | __ | | | | | \ \ /\ / / | _ / / _ \/\ / / | | | | ______
|
||||
| | | (_| | |_ __ _| | | | (_| | \ V V / | | | | | |_| | \ V V / | | \ \ | (_> < / / | | | | |______|
|
||||
|_| \__,_| |_||_| |_| \__,_| \_/\_/ |_| |_| \__, | \_/\_/ |_| \_\ \___/\/ /_/ | | | |
|
||||
__/ / \_\ /_/
|
||||
|___/
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing `"{|}~"` as argument.
|
||||
|
||||
```
|
||||
__ _ __ /\/|
|
||||
/ / | | \ \ |/\/
|
||||
| | | | | |
|
||||
/ / | | \ \
|
||||
\ \ | | / /
|
||||
| | | | | |
|
||||
\_\ | | /_/
|
||||
|_|
|
||||
__ _ __ /\/|
|
||||
/ / | | \ \ |/\/
|
||||
| | | | | |
|
||||
/ / | | \ \
|
||||
\ \ | | / /
|
||||
| | | | | |
|
||||
\_\ | | /_/
|
||||
|_|
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing `"[\]^_ 'a"` as argument.
|
||||
|
||||
```
|
||||
___ __ ___ /\ _
|
||||
| _| \ \ |_ | |/\| ( )
|
||||
| | \ \ | | |/ __ _
|
||||
| | \ \ | | / _` |
|
||||
| | \ \ | | | (_| |
|
||||
| |_ \_\ _| | \__,_|
|
||||
|___| |___| ______
|
||||
|______|
|
||||
___ __ ___ /\ _
|
||||
| _| \ \ |_ | |/\| ( )
|
||||
| | \ \ | | |/ __ _
|
||||
| | \ \ | | / _` |
|
||||
| | \ \ | | | (_| |
|
||||
| |_ \_\ _| | \__,_|
|
||||
|___| |___| ______
|
||||
|______|
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing `"RGB"` as argument.
|
||||
|
||||
```
|
||||
_____ _____ ____
|
||||
| __ \ / ____| | _ \
|
||||
| |__) | | | __ | |_) |
|
||||
| _ / | | |_ | | _ <
|
||||
| | \ \ | |__| | | |_) |
|
||||
|_| \_\ \_____| |____/
|
||||
|
||||
|
||||
_____ _____ ____
|
||||
| __ \ / ____| | _ \
|
||||
| |__) | | | __ | |_) |
|
||||
| _ / | | |_ | | _ <
|
||||
| | \ \ | |__| | | |_) |
|
||||
|_| \_\ \_____| |____/
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing `":;<=>?@"` as argument.
|
||||
|
||||
```
|
||||
__ __ ___
|
||||
_ _ / / ______ \ \ |__ \ ____
|
||||
(_) (_) / / |______| \ \ ) | / __ \
|
||||
< < ______ > > / / / / _` |
|
||||
_ _ \ \ |______| / / |_| | | (_| |
|
||||
(_) ( ) \_\ /_/ (_) \ \__,_|
|
||||
|/ \____/
|
||||
|
||||
__ __ ___
|
||||
_ _ / / ______ \ \ |__ \ ____
|
||||
(_) (_) / / |______| \ \ ) | / __ \
|
||||
< < ______ > > / / / / _` |
|
||||
_ _ \ \ |______| / / |_| | | (_| |
|
||||
(_) ( ) \_\ /_/ (_) \ \__,_|
|
||||
|/ \____/
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing `"\!\" #$%&'()*+,-./"` as argument.
|
||||
|
||||
```
|
||||
__ _ _ _ _ _ _ _ __ _ __ __ _ __
|
||||
\ \ | | ( | ) _| || |_ | | (_) / / ___ ( ) / / \ \ /\| |/\ _ / /
|
||||
\ \ | | V V |_ __ _| / __) / / ( _ ) |/ | | | | \ ` ' / _| |_ ______ / /
|
||||
\ \ | | _| || |_ \__ \ / / / _ \/\ | | | | |_ _| |_ _| |______| / /
|
||||
\ \ |_| |_ __ _| ( / / / _ | (_> < | | | | / , . \ |_| _ _ / /
|
||||
\_\ (_) |_||_| |_| /_/ (_) \___/\/ | | | | \/|_|\/ ( ) (_) /_/
|
||||
\_\ /_/ |/
|
||||
|
||||
__ _ _ _ _ _ _ _ __ _ __ __ _ __
|
||||
\ \ | | ( | ) _| || |_ | | (_) / / ___ ( ) / / \ \ /\| |/\ _ / /
|
||||
\ \ | | V V |_ __ _| / __) / / ( _ ) |/ | | | | \ ` ' / _| |_ ______ / /
|
||||
\ \ | | _| || |_ \__ \ / / / _ \/\ | | | | |_ _| |_ _| |______| / /
|
||||
\ \ |_| |_ __ _| ( / / / _ | (_> < | | | | / , . \ |_| _ _ / /
|
||||
\_\ (_) |_||_| |_| /_/ (_) \___/\/ | | | | \/|_|\/ ( ) (_) /_/
|
||||
\_\ /_/ |/
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing `"ABCDEFGHIJKLMNOPQRSTUVWXYZ"` as argument.
|
||||
|
||||
```
|
||||
____ _____ _____ ______ ______ _____ _ _ _____ _ _ __ _ __ __ _ _ ____ _____ ____ _____ _____ _______ _ _ __ __ __ __ __ __ __ __ ______
|
||||
/\ | _ \ / ____| | __ \ | ____| | ____| / ____| | | | | |_ _| | | | |/ / | | | \/ | | \ | | / __ \ | __ \ / __ \ | __ \ / ____| |__ __| | | | | \ \ / / \ \ / / \ \ / / \ \ / / |___ /
|
||||
/ \ | |_) | | | | | | | | |__ | |__ | | __ | |__| | | | | | | ' / | | | \ / | | \| | | | | | | |__) | | | | | | |__) | | (___ | | | | | | \ \ / / \ \ /\ / / \ V / \ \_/ / / /
|
||||
/ /\ \ | _ < | | | | | | | __| | __| | | |_ | | __ | | | _ | | | < | | | |\/| | | . ` | | | | | | ___/ | | | | | _ / \___ \ | | | | | | \ \/ / \ \/ \/ / > < \ / / /
|
||||
/ ____ \ | |_) | | |____ | |__| | | |____ | | | |__| | | | | | _| |_ | |__| | | . \ | |____ | | | | | |\ | | |__| | | | | |__| | | | \ \ ____) | | | | |__| | \ / \ /\ / / . \ | | / /__
|
||||
/_/ \_\ |____/ \_____| |_____/ |______| |_| \_____| |_| |_| |_____| \____/ |_|\_\ |______| |_| |_| |_| \_| \____/ |_| \___\_\ |_| \_\ |_____/ |_| \____/ \/ \/ \/ /_/ \_\ |_| /_____|
|
||||
|
||||
|
||||
____ _____ _____ ______ ______ _____ _ _ _____ _ _ __ _ __ __ _ _ ____ _____ ____ _____ _____ _______ _ _ __ __ __ __ __ __ __ __ ______
|
||||
/\ | _ \ / ____| | __ \ | ____| | ____| / ____| | | | | |_ _| | | | |/ / | | | \/ | | \ | | / __ \ | __ \ / __ \ | __ \ / ____| |__ __| | | | | \ \ / / \ \ / / \ \ / / \ \ / / |___ /
|
||||
/ \ | |_) | | | | | | | | |__ | |__ | | __ | |__| | | | | | | ' / | | | \ / | | \| | | | | | | |__) | | | | | | |__) | | (___ | | | | | | \ \ / / \ \ /\ / / \ V / \ \_/ / / /
|
||||
/ /\ \ | _ < | | | | | | | __| | __| | | |_ | | __ | | | _ | | | < | | | |\/| | | . ` | | | | | | ___/ | | | | | _ / \___ \ | | | | | | \ \/ / \ \/ \/ / > < \ / / /
|
||||
/ ____ \ | |_) | | |____ | |__| | | |____ | | | |__| | | | | | _| |_ | |__| | | . \ | |____ | | | | | |\ | | |__| | | | | |__| | | | \ \ ____) | | | | |__| | \ / \ /\ / / . \ | | / /__
|
||||
/_/ \_\ |____/ \_____| |_____/ |______| |_| \_____| |_| |_| |_____| \____/ |_|\_\ |______| |_| |_| |_| \_| \____/ |_| \___\_\ |_| \_\ |_____/ |_| \____/ \/ \/ \/ /_/ \_\ |_| /_____|
|
||||
|
||||
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing `"abcdefghijklmnopqrstuvwxyz"` as argument.
|
||||
|
||||
```
|
||||
_ _ __ _ _ _ _ _
|
||||
| | | | / _| __ _ | | (_) (_) _ | | | |
|
||||
__ _ | |__ ___ __| | ___ | |_ / _` | | |__ _ _ | | _ | | _ __ ___ _ __ ___ _ __ __ _ _ __ ___ | |_ _ _ __ __ __ __ __ __ _ _ ____
|
||||
/ _` | | '_ \ / __| / _` | / _ \ | _| | (_| | | _ \ | | | | | |/ / | | | '_ ` _ \ | '_ \ / _ \ | '_ \ / _` | | '__| / __| | __| | | | | \ \ / / \ \ /\ / / \ \/ / | | | | |_ /
|
||||
| (_| | | |_) | | (__ | (_| | | __/ | | \__, | | | | | | | | | | < | | | | | | | | | | | | | (_) | | |_) | | (_| | | | \__ \ \ |_ | |_| | \ V / \ V V / > < | |_| | / /
|
||||
\__,_| |_.__/ \___| \__,_| \___| |_| __/ | |_| |_| |_| | | |_|\_\ |_| |_| |_| |_| |_| |_| \___/ | .__/ \__, | |_| |___/ \__| \__,_| \_/ \_/\_/ /_/\_\ \__, | /___|
|
||||
|___/ _/ | | | | | __/ /
|
||||
|__/ |_| |_| |___/
|
||||
_ _ __ _ _ _ _ _
|
||||
| | | | / _| __ _ | | (_) (_) _ | | | |
|
||||
__ _ | |__ ___ __| | ___ | |_ / _` | | |__ _ _ | | _ | | _ __ ___ _ __ ___ _ __ __ _ _ __ ___ | |_ _ _ __ __ __ __ __ __ _ _ ____
|
||||
/ _` | | '_ \ / __| / _` | / _ \ | _| | (_| | | _ \ | | | | | |/ / | | | '_ ` _ \ | '_ \ / _ \ | '_ \ / _` | | '__| / __| | __| | | | | \ \ / / \ \ /\ / / \ \/ / | | | | |_ /
|
||||
| (_| | | |_) | | (__ | (_| | | __/ | | \__, | | | | | | | | | | < | | | | | | | | | | | | | (_) | | |_) | | (_| | | | \__ \ \ |_ | |_| | \ V / \ V V / > < | |_| | / /
|
||||
\__,_| |_.__/ \___| \__,_| \___| |_| __/ | |_| |_| |_| | | |_|\_\ |_| |_| |_| |_| |_| |_| \___/ | .__/ \__, | |_| |___/ \__| \__,_| \_/ \_/\_/ /_/\_\ \__, | /___|
|
||||
|___/ _/ | | | | | __/ /
|
||||
|__/ |_| |_| |___/
|
||||
```
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as above?
|
||||
|
||||
##### Try passing `<a random string>` with at least four lower case letters and three upper case letters.
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as expected?
|
||||
|
||||
##### Try passing `<a random string>` with at least five lower case letters, a space and two numbers.
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as expected?
|
||||
|
||||
##### Try passing `<a random string>` with at least one upper case letters and 3 special characters.
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as expected?
|
||||
|
||||
##### Try passing `<a random string>` with at least two lower case letters, two spaces, one number, two special characters and three upper case letters.
|
||||
|
||||
###### Does it display the right graphical representation in ASCII as expected?
|
||||
|
||||
#### Basic
|
||||
|
|
|
@ -71,49 +71,49 @@ etc
|
|||
```console
|
||||
student@ubuntu:~/ascii-art$ go build
|
||||
student@ubuntu:~/ascii-art$ ./ascii-art "hello"
|
||||
_ _ _
|
||||
| | | | | |
|
||||
| |__ ___ | | | | ___
|
||||
| _ \ / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
_ _ _
|
||||
| | | | | |
|
||||
| |__ ___ | | | | ___
|
||||
| _ \ / _ \ | | | | / _ \
|
||||
| | | | | __/ | | | | | (_) |
|
||||
|_| |_| \___| |_| |_| \___/
|
||||
|
||||
|
||||
student@ubuntu:~/ascii-art$ ./ascii-art "HeLlO"
|
||||
_ _ _ _ ____
|
||||
| | | | | | | | / __ \
|
||||
| |__| | ___ | | | | | | | |
|
||||
| __ | / _ \ | | | | | | | |
|
||||
| | | | | __/ | |____ | | | |__| |
|
||||
|_| |_| \___| |______| |_| \____/
|
||||
|
||||
|
||||
_ _ _ _ ____
|
||||
| | | | | | | | / __ \
|
||||
| |__| | ___ | | | | | | | |
|
||||
| __ | / _ \ | | | | | | | |
|
||||
| | | | | __/ | |____ | | | |__| |
|
||||
|_| |_| \___| |______| |_| \____/
|
||||
|
||||
|
||||
student@ubuntu:~/ascii-art$ ./ascii-art "Hello There"
|
||||
_ _ _ _ _______ _
|
||||
| | | | | | | | |__ __| | |
|
||||
| |__| | ___ | | | | ___ | | | |__ ___ _ __ ___
|
||||
| __ | / _ \ | | | | / _ \ | | | _ \ / _ \ | '__| / _ \
|
||||
| | | | | __/ | | | | | (_) | | | | | | | | __/ | | | __/
|
||||
|_| |_| \___| |_| |_| \___/ |_| |_| |_| \___| |_| \___|
|
||||
|
||||
|
||||
_ _ _ _ _______ _
|
||||
| | | | | | | | |__ __| | |
|
||||
| |__| | ___ | | | | ___ | | | |__ ___ _ __ ___
|
||||
| __ | / _ \ | | | | / _ \ | | | _ \ / _ \ | '__| / _ \
|
||||
| | | | | __/ | | | | | (_) | | | | | | | | __/ | | | __/
|
||||
|_| |_| \___| |_| |_| \___/ |_| |_| |_| \___| |_| \___|
|
||||
|
||||
|
||||
student@ubuntu:~/ascii-art$ ./ascii-art "1Hello 2There"
|
||||
_ _ _ _ _______ _
|
||||
_ | | | | | | | | ____ |__ __| | |
|
||||
/ | | |__| | ___ | | | | ___ |___ \ | | | |__ ___ _ __ ___
|
||||
| | | __ | / _ \ | | | | / _ \ __) | | | | _ \ / _ \ | '__| / _ \
|
||||
| | | | | | | __/ | | | | | (_) | / __/ | | | | | | | __/ | | | __/
|
||||
|_| |_| |_| \___| |_| |_| \___/ |_____| |_| |_| |_| \___| |_| \___|
|
||||
|
||||
|
||||
_ _ _ _ _______ _
|
||||
_ | | | | | | | | ____ |__ __| | |
|
||||
/ | | |__| | ___ | | | | ___ |___ \ | | | |__ ___ _ __ ___
|
||||
| | | __ | / _ \ | | | | / _ \ __) | | | | _ \ / _ \ | '__| / _ \
|
||||
| | | | | | | __/ | | | | | (_) | / __/ | | | | | | | __/ | | | __/
|
||||
|_| |_| |_| \___| |_| |_| \___/ |_____| |_| |_| |_| \___| |_| \___|
|
||||
|
||||
|
||||
student@ubuntu:~/ascii-art$ ./ascii-art "{Hello There}"
|
||||
__ _ _ _ _ _______ _ __
|
||||
/ / | | | | | | | | |__ __| | | \ \
|
||||
| | | |__| | ___ | | | | ___ | | | |__ ___ _ __ ___ | |
|
||||
/ / | __ | / _ \ | | | | / _ \ | | | _ \ / _ \ | '__| / _ \ \ \
|
||||
\ \ | | | | | __/ | | | | | (_) | | | | | | | | __/ | | | __/ / /
|
||||
| | |_| |_| \___| |_| |_| \___/ |_| |_| |_| \___| |_| \___| | |
|
||||
\_\ /_/
|
||||
|
||||
__ _ _ _ _ _______ _ __
|
||||
/ / | | | | | | | | |__ __| | | \ \
|
||||
| | | |__| | ___ | | | | ___ | | | |__ ___ _ __ ___ | |
|
||||
/ / | __ | / _ \ | | | | / _ \ | | | _ \ / _ \ | '__| / _ \ \ \
|
||||
\ \ | | | | | __/ | | | | | (_) | | | | | | | | __/ | | | __/ / /
|
||||
| | |_| |_| \___| |_| |_| \___/ |_| |_| |_| \___| |_| \___| | |
|
||||
\_\ /_/
|
||||
|
||||
student@ubuntu:~/ascii-art$
|
||||
```
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## atoibaseprog
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function that takes a `string` number and its `string` base in parameters and returns its conversion as an `int`.
|
||||
|
@ -42,9 +31,7 @@ Here is a possible program to test your function :
|
|||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
fmt.Println(AtoiBase("125", "0123456789"))
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## atoiprog
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
- Write a function that simulates the behaviour of the `Atoi` function in Go. `Atoi` transforms a number represented as a `string` in a number represented as an `int`.
|
||||
|
@ -36,9 +25,7 @@ Here is a possible program to test your function :
|
|||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
s := "12345"
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
- Write a function that simulates the behaviour of the atoi function in Go. Atoi transforms a number defined as a `string` in a number defined as an `int`.
|
||||
- Write a function that simulates the behaviour of the `Atoi` function in Go. `Atoi` transforms a number defined as a `string` in a number defined as an `int`.
|
||||
|
||||
- Atoi returns `0` if the `string` is not considered as a valid number. For this exercise **only valid** `string` chains will be tested. They will only contain one or several digits as characters.
|
||||
- Atoi returns `0` if the `string` is not considered as a valid number. For this exercise **only valid** `string` will be tested. They will only contain one or several digits as characters.
|
||||
|
||||
- For this exercise the handling of the signs `+` or `-` does not have to be taken into account.
|
||||
|
||||
- This function will **only** have to return the `int`. For this exercise the `error` return of atoi is not required.
|
||||
- This function will **only** have to return the `int`. For this exercise the `error` return of `Atoi` is not required.
|
||||
|
||||
### Expected function
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
- Write a function that simulates the behaviour of the atoi function in Go. Atoi transforms a number defined as a `string` in a number defined as an `int`.
|
||||
- Write a function that simulates the behaviour of the `Atoi` function in Go. `Atoi` transforms a number defined as a `string` in a number defined as an `int`.
|
||||
|
||||
- Atoi returns `0` if the `string` is not considered as a valid number. For this exercise **non-valid `string` chains will be tested**. Some will contain non-digits characters.
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a function that returns the concatenation of all the `string` of a table of `string` passed in argument.
|
||||
Write a function that returns the concatenation of all the `string` of a slice of `string` passed in argument.
|
||||
|
||||
### Expected function
|
||||
|
||||
|
|
|
@ -13,11 +13,9 @@ Create a `.go` file.
|
|||
### Code to be copied
|
||||
|
||||
```go
|
||||
func printStr(str string) {
|
||||
arrayStr := []rune(str)
|
||||
|
||||
for i := 0; i < len(arrayStr); i++ {
|
||||
z01.PrintRune(arrayStr[i])
|
||||
func printStr(s string) {
|
||||
for _, r := range s {
|
||||
z01.PrintRune(r)
|
||||
}
|
||||
z01.PrintRune('\n')
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ Symbols considered as brackets are parentheses `(` and `)`, square brackets `[`
|
|||
|
||||
An opening bracket must always be closed by the good closing bracket in the correct order. A `string` which does not contain any bracket is considered as a correctly bracketed `string`.
|
||||
|
||||
If there is no argument, the program must print only a newline.
|
||||
If there is no argument, the program must print nothing.
|
||||
|
||||
### Usage
|
||||
|
||||
|
@ -21,7 +21,6 @@ Error$
|
|||
student@ubuntu:~/[[ROOT]]/brackets$ ./brackets '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' | cat -e
|
||||
OK$
|
||||
OK$
|
||||
student@ubuntu:~/[[ROOT]]/brackets$ ./brackets | cat -e
|
||||
$
|
||||
student@ubuntu:~/[[ROOT]]/brackets$ ./brackets
|
||||
student@ubuntu:~/[[ROOT]]/brackets$
|
||||
```
|
||||
|
|
|
@ -26,9 +26,9 @@ Here is a possible program to test your function :
|
|||
package main
|
||||
|
||||
func main() {
|
||||
//rootNode initialized with the value "who"
|
||||
//rootNode1 initialized with the value "are"
|
||||
//rootNode2 initialized with the value "you"
|
||||
// rootNode initialized with the value "who"
|
||||
// rootNode1 initialized with the value "are"
|
||||
// rootNode2 initialized with the value "you"
|
||||
printRoot(rootNode)
|
||||
printRoot(rootNode1)
|
||||
printRoot(rootNode2)
|
||||
|
|
|
@ -8,7 +8,7 @@ Write a program that capitalizes the first letter of each word **and** lowercase
|
|||
|
||||
- If there is more than one argument the program should print `Too many arguments`.
|
||||
|
||||
- If there is no arguments given the program should print a newline ("`\n`").
|
||||
- If there is no arguments given the program should print nothing.
|
||||
|
||||
### Usage :
|
||||
|
||||
|
@ -19,6 +19,5 @@ Hello! How Are You? How+Are+Things+4you?$
|
|||
student@ubuntu:~/capitalizeprog$ ./capitalizeprog Hello! How are you? | cat -e
|
||||
Too many arguments$
|
||||
student@ubuntu:~/capitalizeprog$ ./capitalizeprog
|
||||
|
||||
student@ubuntu:~/capitalizeprog$
|
||||
```
|
||||
|
|
|
@ -1,21 +1,9 @@
|
|||
## changeorder
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testing are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
You are given a linked list, where each node contains a single digit.
|
||||
Change order of linked list so that elements with odd index come first, elements
|
||||
with even index come afterwards.
|
||||
Change order of linked list so that elements with odd index come first, elements with even index come afterwards.
|
||||
You have to return pointer/reference to the beginning of new list
|
||||
|
||||
### Expected function and structure
|
||||
|
@ -40,9 +28,7 @@ Here is a possible program to test your function:
|
|||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
import "fmt"
|
||||
|
||||
// I implemented pushBack for this
|
||||
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## chunk
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function called `Chunk` that receives as parameters a slice, `slice []int`, and an number `size int`. The goal of this function is to chunk a slice into many sub slices where each sub slice has the length of `size`.
|
||||
|
|
|
@ -12,7 +12,7 @@ A "word" is defined as a part of a `string` delimited either by spaces/tabs, or
|
|||
by the start/end of the `string`.
|
||||
|
||||
If the number of arguments is not 1, or if there are no words to display, the
|
||||
program displays a newline ("`\n`").
|
||||
program displays nothing.
|
||||
|
||||
### Usage :
|
||||
|
||||
|
@ -24,7 +24,6 @@ student@ubuntu:~/[[ROOT]]/cleanstr$ ./cleanstr " only it's harder "
|
|||
only it's harder$
|
||||
student@ubuntu:~/[[ROOT]]/cleanstr$ ./cleanstr " how funny" "Did you hear Mathilde ?"
|
||||
$
|
||||
student@ubuntu:~/[[ROOT]]/cleanstr$ ./cleanstr "" | cat -e
|
||||
$
|
||||
student@ubuntu:~/[[ROOT]]/cleanstr$ ./cleanstr ""
|
||||
student@ubuntu:~/[[ROOT]]/cleanstr$
|
||||
```
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a function `Compact` that takes a pointer to a slice of strings as the argument.
|
||||
Write a function `Compact` that takes a pointer to a slice of `string` as the argument.
|
||||
This function must:
|
||||
|
||||
- Return the number of elements with non-`nil`.
|
||||
- Return the number of elements with non-zero value.
|
||||
|
||||
- Compact, i.e., delete the elements with `nil` in the slice.
|
||||
- Compact, i.e., delete the elements with zero-values in the slice.
|
||||
|
||||
### Expected functions
|
||||
|
||||
|
@ -33,18 +33,18 @@ import (
|
|||
const N = 6
|
||||
|
||||
func main() {
|
||||
arr := make([]string, N)
|
||||
arr[0] = "a"
|
||||
arr[2] = "b"
|
||||
arr[4] = "c"
|
||||
a := make([]string, N)
|
||||
a[0] = "a"
|
||||
a[2] = "b"
|
||||
a[4] = "c"
|
||||
|
||||
for _, v := range arr {
|
||||
for _, v := range a {
|
||||
fmt.Println(v)
|
||||
}
|
||||
|
||||
fmt.Println("Size after compacting:", piscine.Compact(&arr))
|
||||
fmt.Println("Size after compacting:", piscine.Compact(&a))
|
||||
|
||||
for _, v := range arr {
|
||||
for _, v := range a {
|
||||
fmt.Println(v)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,8 +3,7 @@
|
|||
### Instructions
|
||||
|
||||
Write a function that takes the arguments received in parameters and returns them as a `string`.
|
||||
|
||||
The arguments must be **separated** by a `\n`.
|
||||
The `string` is the result of all the arguments concatenated with a newline (`\n`) between.
|
||||
|
||||
### Expected function
|
||||
|
||||
|
|
|
@ -19,6 +19,6 @@ In the output put '\n' at the end.
|
|||
Input: `./main **a** **b** **c** **d** **e** **f**`
|
||||
|
||||
```console
|
||||
$> ./main 12 11 13 20 4 6
|
||||
$ ./main 12 11 13 20 4 6
|
||||
102
|
||||
```
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a function `CountIf` that returns the number of elements of a `string` array for which the `f` function returns `true`.
|
||||
Write a function `CountIf` that returns the number of elements of a `string` slice for which the `f` function returns `true`.
|
||||
|
||||
### Expected function
|
||||
|
||||
|
|
|
@ -2,10 +2,9 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a program that takes a `string`, and displays the first `a` character it
|
||||
encounters in it, followed by a newline (`'\n'`). If there are no `a` characters in the
|
||||
string, the program just writes `a` followed by a newline (`'\n'`). If the number of parameters is not
|
||||
1, the program displays an `a` followed by a newline (`'\n'`).
|
||||
Write a program that takes a `string`, and displays the first `a` character it encounters in it, followed by a newline (`'\n'`).
|
||||
If there are no `a` characters in the string, the program just writes `a` followed by a newline (`'\n'`).
|
||||
If the number of parameters is not 1, the program displays an `a` followed by a newline (`'\n'`).
|
||||
|
||||
### Usage
|
||||
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a program that displays the alphabet, with even letters in uppercase, and
|
||||
odd letters in lowercase, followed by a newline (`'\n'`).
|
||||
Write a program that displays the alphabet, with even letters in uppercase, and odd letters in lowercase, followed by a newline (`'\n'`).
|
||||
|
||||
### Usage
|
||||
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a program that displays the alphabet in reverse, with even letters in
|
||||
uppercase, and odd letters in lowercase, followed by a newline (`'\n'`).
|
||||
Write a program that displays the alphabet in reverse, with even letters in uppercase, and odd letters in lowercase, followed by a newline (`'\n'`).
|
||||
|
||||
### Usage
|
||||
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a program that takes a `string`, and displays the first `z` character it encounters in it, followed by a newline (`'\n'`). If there are no `z` characters in the string, the program just writes `z` followed by a newline (`'\n'`). If the number of parameters is not 1, the program displays an `z` followed by a newline (`'\n'`).
|
||||
Write a program that takes a `string`, and displays the first `z` character it encounters in it, followed by a newline (`'\n'`).
|
||||
If there are no `z` characters in the string, the program just writes `z` followed by a newline (`'\n'`).
|
||||
If the number of parameters is not 1, the program displays an `z` followed by a newline (`'\n'`).
|
||||
|
||||
### Usage
|
||||
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## doppelganger
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
You are given 2 strings. Find out if first string contains second string. If it does, return index of the first string where second string occurs last time. If it does not contain, return "-1"
|
||||
|
@ -20,7 +9,7 @@ You are given 2 strings. Find out if first string contains second string. If it
|
|||
```go
|
||||
package main
|
||||
|
||||
func DoppelGanger(big, little string) int {
|
||||
func DoppelGanger(s, substr string) int {
|
||||
|
||||
}
|
||||
```
|
||||
|
@ -28,9 +17,7 @@ func DoppelGanger(big, little string) int {
|
|||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
var result int
|
||||
|
|
|
@ -2,15 +2,13 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a program that takes a `string` and displays it with exactly three spaces
|
||||
between each word, with no spaces or tabs at either the beginning nor the end.
|
||||
Write a program that takes a `string` and displays it with exactly three spaces between each word, with no spaces or tabs at either the beginning nor the end.
|
||||
|
||||
The `string` will be followed by a newline (`'\n'`).
|
||||
|
||||
A word is a sequence of alphanumerical characters.
|
||||
|
||||
If the number of parameters is not 1, or if there are no word, the program displays
|
||||
a newline.
|
||||
If the number of parameters is not 1, or if there are no word, the program displays nothing.
|
||||
|
||||
### Usage
|
||||
|
||||
|
@ -22,7 +20,6 @@ student@ubuntu:~/[[ROOT]]/expandstr$ ./expandstr " only it's harder " | cat
|
|||
only it's harder$
|
||||
student@ubuntu:~/[[ROOT]]/expandstr$ ./expandstr " how funny it is" "did you hear, Mathilde ?" | cat -e
|
||||
$
|
||||
student@ubuntu:~/[[ROOT]]/expandstr$ ./expandstr | cat -e
|
||||
$
|
||||
student@ubuntu:~/[[ROOT]]/expandstr$ ./expandstr
|
||||
student@ubuntu:~/[[ROOT]]/expandstr$
|
||||
```
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## fib
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
|
||||
|
@ -37,9 +26,7 @@ Here is a possible program to test your function :
|
|||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
fmt.Println(Fib(0))
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## findprevprime
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(\`\`\`func main()\`\`\`) even if empty.
|
||||
- The function main declared needs to **also pass** the \`Restrictions Checker\`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a \`program\`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function that returns the first prime number that is equal or inferior to the `int` passed as parameter.
|
||||
|
@ -32,9 +21,7 @@ Here is a possible [program](TODO-LINK) to test your function :
|
|||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
fmt.Println(FindPrevPrime(5))
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## firstruneprog
|
||||
|
||||
> ### **WARNING! VERY IMPORTANT!**
|
||||
>
|
||||
> For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function that returns the first `rune` of a `string`.
|
||||
|
|
|
@ -8,7 +8,7 @@ Write a program that takes a `string` and displays its first word, followed by a
|
|||
|
||||
- The output will be followed by a newline (`'\n'`).
|
||||
|
||||
- If the number of parameters is not 1, or if there are no words, the program displays a newline (`'\n'`).
|
||||
- If the number of parameters is not 1, or if there are no words, the program displays nothing.
|
||||
|
||||
### Usage
|
||||
|
||||
|
@ -19,8 +19,6 @@ hello
|
|||
student@ubuntu:~/[[ROOT]]/test$ ./test "hello ......... bye"
|
||||
hello
|
||||
student@ubuntu:~/[[ROOT]]/test$ ./test
|
||||
|
||||
student@ubuntu:~/[[ROOT]]/test$ ./test "hello" "there"
|
||||
|
||||
student@ubuntu:~/[[ROOT]]/test$
|
||||
```
|
||||
|
|
|
@ -10,9 +10,8 @@ Fix the following program.
|
|||
package piscine
|
||||
|
||||
func PrintStr(str string) {
|
||||
arrayRune := []rune(str)
|
||||
for _, s := range arrayRune {
|
||||
z01.PrintRune(s)
|
||||
for _, r := range str {
|
||||
z01.PrintRune(r)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## foldint
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker\`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function called `FoldInt` that simulates the behavior of reduce from JavaScript.
|
||||
|
@ -20,7 +9,7 @@ The function should have as parameters a function, `f func(int, int) int` a slic
|
|||
### Expected function
|
||||
|
||||
```go
|
||||
func FoldInt(f func(int, int) int, arr []int, n int) {
|
||||
func FoldInt(f func(int, int) int, a []int, n int) {
|
||||
|
||||
}
|
||||
```
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a function `ForEach` that, for an `int` array, applies a function on each elements of that array.
|
||||
Write a function `ForEach` that, for an `int` slice, applies a function on each elements of that slice.
|
||||
|
||||
### Expected function
|
||||
|
||||
```go
|
||||
func ForEach(f func(int), arr []int) {
|
||||
func ForEach(f func(int), a []int) {
|
||||
|
||||
}
|
||||
```
|
||||
|
@ -22,8 +22,8 @@ package main
|
|||
import piscine ".."
|
||||
|
||||
func main() {
|
||||
arr := []int{1, 2, 3, 4, 5, 6}
|
||||
piscine.ForEach(piscine.PrintNbr, arr)
|
||||
a := []int{1, 2, 3, 4, 5, 6}
|
||||
piscine.ForEach(piscine.PrintNbr, a)
|
||||
}
|
||||
```
|
||||
|
||||
|
|
|
@ -1,24 +1,13 @@
|
|||
## foreachprog
|
||||
|
||||
##**WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function `ForEach` that, for an `int` array, applies a function on each elements of that array.
|
||||
Write a function `ForEach` that, for an `int` slice, applies a function on each elements of that slice.
|
||||
|
||||
### Expected function
|
||||
|
||||
```go
|
||||
func ForEach(f func(int), arr []int) {
|
||||
func ForEach(f func(int), a []int) {
|
||||
|
||||
}
|
||||
```
|
||||
|
@ -31,8 +20,8 @@ Here is a possible program to test your function :
|
|||
package main
|
||||
|
||||
func main() {
|
||||
arr := []int{1, 2, 3, 4, 5, 6}
|
||||
ForEach(PrintNbr, arr)
|
||||
a := []int{1, 2, 3, 4, 5, 6}
|
||||
ForEach(PrintNbr, a)
|
||||
}
|
||||
|
||||
func PrintNbr(int) {
|
||||
|
|
|
@ -6,9 +6,7 @@ Write a program that takes a positive `int` and displays its prime factors, foll
|
|||
|
||||
- Factors must be displayed in ascending order and separated by `*`.
|
||||
|
||||
- If the number of parameters is different from 1, the program displays a newline.
|
||||
|
||||
- The input, when there is one, will always be valid.
|
||||
- If the number of arguments is different from 1, if the argument is invalid or if the integer doesn't have a prime factor, the program displays nothing.
|
||||
|
||||
### Usage
|
||||
|
||||
|
@ -25,10 +23,7 @@ student@ubuntu:~/[[ROOT]]/test$ ./test 804577
|
|||
student@ubuntu:~/[[ROOT]]/test$ ./test 42
|
||||
2*3*7
|
||||
student@ubuntu:~/[[ROOT]]/test$ ./test a
|
||||
|
||||
student@ubuntu:~/[[ROOT]]/test$ ./test 0
|
||||
|
||||
student@ubuntu:~/[[ROOT]]/test$ ./test 1
|
||||
|
||||
student@ubuntu:~/[[ROOT]]/test$
|
||||
```
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## game23
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
|
||||
|
@ -35,9 +24,7 @@ Here is a possible program to test your function :
|
|||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
fmt.Println(Game23(1, 3))
|
||||
|
|
|
@ -6,7 +6,7 @@ Write a program that takes two `string` representing two strictly positive integ
|
|||
|
||||
The program displays their greatest common divisor followed by a newline (`'\n'`).
|
||||
|
||||
If the number of parameters is different from 2, the program displays a newline.
|
||||
If the number of parameters is different from 2, the program displays nothing.
|
||||
|
||||
All arguments tested will be positive `int` values.
|
||||
|
||||
|
@ -16,15 +16,13 @@ All arguments tested will be positive `int` values.
|
|||
student@ubuntu:~/[[ROOT]]/gcd$ go build
|
||||
student@ubuntu:~/[[ROOT]]/gcd$ ./gcd 42 10 | cat -e
|
||||
2$
|
||||
student@ubuntu:~/[[ROOT]]/gcd$ ./gcd 42 12 | cat -e
|
||||
6$
|
||||
student@ubuntu:~/[[ROOT]]/gcd$ ./gcd 14 77 | cat -e
|
||||
7$
|
||||
student@ubuntu:~/[[ROOT]]/gcd$ ./gcd 17 3 | cat -e
|
||||
1$
|
||||
student@ubuntu:~/[[ROOT]]/gcd$ ./gcd | cat -e
|
||||
$
|
||||
student@ubuntu:~/[[ROOT]]/gcd$ ./gcd 50 12 4 | cat -e
|
||||
$
|
||||
student@ubuntu:~/[[ROOT]]/gcd$ ./gcd 42 12
|
||||
6
|
||||
student@ubuntu:~/[[ROOT]]/gcd$ ./gcd 14 77
|
||||
7
|
||||
student@ubuntu:~/[[ROOT]]/gcd$ ./gcd 17 3
|
||||
1
|
||||
student@ubuntu:~/[[ROOT]]/gcd$ ./gcd
|
||||
student@ubuntu:~/[[ROOT]]/gcd$ ./gcd 50 12 4
|
||||
student@ubuntu:~/[[ROOT]]/gcd$
|
||||
```
|
||||
|
|
|
@ -1,433 +1,767 @@
|
|||
#### Atoi
|
||||
|
||||
##### Try with the argument: `""`
|
||||
|
||||
`0`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `"-"`
|
||||
|
||||
`0`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `"--123"`
|
||||
|
||||
`0`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `"1"`
|
||||
|
||||
`1`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `"-3"`
|
||||
|
||||
`-3`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `"8292"`
|
||||
|
||||
`8292`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `"9223372036854775807"`
|
||||
|
||||
`9223372036854775807`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `"-9223372036854775808"`
|
||||
|
||||
`-9223372036854775808`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
#### RecursivePower
|
||||
|
||||
##### Try with the arguments: `nb = -7 and power = -2`
|
||||
|
||||
`0`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `nb = -8 and power = -7`
|
||||
|
||||
`0`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `nb = 4 and power = 8`
|
||||
|
||||
`65536`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `nb = 1 and power = 3`
|
||||
|
||||
`1`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `nb = -1 and power = 1`
|
||||
|
||||
`-1`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `nb = -6 and power = 5`
|
||||
|
||||
`-7776`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
#### PrintCombN
|
||||
|
||||
##### Try with the argument: `n = 1`
|
||||
|
||||
`0, 1, 2, 3, 4, 5, 6, 7, 8, 9`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `n = 2`
|
||||
|
||||
`01, 02, 03, 04, 05, 06, 07, 08, 09, 12, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 34, 35, 36, 37, 38, 39, 45, 46, 47, 48, 49, 56, 57, 58, 59, 67, 68, 69, 78, 79, 89`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `n = 3`
|
||||
|
||||
`012, 013, 014, 015, 016, 017, 018, 019, 023, 024, 025, 026, 027, 028, 029, 034, 035, 036, 037, 038, 039, 045, 046, 047, 048, 049, 056, 057, 058, 059, 067, 068, 069, 078, 079, 089, 123, 124, 125, 126, 127, 128, 129, 134, 135, 136, 137, 138, 139, 145, 146, 147, 148, 149, 156, 157, 158, 159, 167, 168, 169, 178, 179, 189, 234, 235, 236, 237, 238, 239, 245, 246, 247, 248, 249, 256, 257, 258, 259, 267, 268, 269, 278, 279, 289, 345, 346, 347, 348, 349, 356, 357, 358, 359, 367, 368, 369, 378, 379, 389, 456, 457, 458, 459, 467, 468, 469, 478, 479, 489, 567, 568, 569, 578, 579, 589, 678, 679, 689, 789`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `n = 4`
|
||||
|
||||
`0123, 0124, 0125, 0126, 0127, 0128, 0129, 0134, 0135, 0136, 0137, 0138, 0139, 0145, 0146, 0147, 0148, 0149, 0156, 0157, 0158, 0159, 0167, 0168, 0169, 0178, 0179, 0189, 0234, 0235, 0236, 0237, 0238, 0239, 0245, 0246, 0247, 0248, 0249, 0256, 0257, 0258, 0259, 0267, 0268, 0269, 0278, 0279, 0289, 0345, 0346, 0347, 0348, 0349, 0356, 0357, 0358, 0359, 0367, 0368, 0369, 0378, 0379, 0389, 0456, 0457, 0458, 0459, 0467, 0468, 0469, 0478, 0479, 0489, 0567, 0568, 0569, 0578, 0579, 0589, 0678, 0679, 0689, 0789, 1234, 1235, 1236, 1237, 1238, 1239, 1245, 1246, 1247, 1248, 1249, 1256, 1257, 1258, 1259, 1267, 1268, 1269, 1278, 1279, 1289, 1345, 1346, 1347, 1348, 1349, 1356, 1357, 1358, 1359, 1367, 1368, 1369, 1378, 1379, 1389, 1456, 1457, 1458, 1459, 1467, 1468, 1469, 1478, 1479, 1489, 1567, 1568, 1569, 1578, 1579, 1589, 1678, 1679, 1689, 1789, 2345, 2346, 2347, 2348, 2349, 2356, 2357, 2358, 2359, 2367, 2368, 2369, 2378, 2379, 2389, 2456, 2457, 2458, 2459, 2467, 2468, 2469, 2478, 2479, 2489, 2567, 2568, 2569, 2578, 2579, 2589, 2678, 2679, 2689, 2789, 3456, 3457, 3458, 3459, 3467, 3468, 3469, 3478, 3479, 3489, 3567, 3568, 3569, 3578, 3579, 3589, 3678, 3679, 3689, 3789, 4567, 4568, 4569, 4578, 4579, 4589, 4678, 4679, 4689, 4789, 5678, 5679, 5689, 5789, 6789`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `n = 5`
|
||||
|
||||
`01234, 01235, 01236, 01237, 01238, 01239, 01245, 01246, 01247, 01248, 01249, 01256, 01257, 01258, 01259, 01267, 01268, 01269, 01278, 01279, 01289, 01345, 01346, 01347, 01348, 01349, 01356, 01357, 01358, 01359, 01367, 01368, 01369, 01378, 01379, 01389, 01456, 01457, 01458, 01459, 01467, 01468, 01469, 01478, 01479, 01489, 01567, 01568, 01569, 01578, 01579, 01589, 01678, 01679, 01689, 01789, 02345, 02346, 02347, 02348, 02349, 02356, 02357, 02358, 02359, 02367, 02368, 02369, 02378, 02379, 02389, 02456, 02457, 02458, 02459, 02467, 02468, 02469, 02478, 02479, 02489, 02567, 02568, 02569, 02578, 02579, 02589, 02678, 02679, 02689, 02789, 03456, 03457, 03458, 03459, 03467, 03468, 03469, 03478, 03479, 03489, 03567, 03568, 03569, 03578, 03579, 03589, 03678, 03679, 03689, 03789, 04567, 04568, 04569, 04578, 04579, 04589, 04678, 04679, 04689, 04789, 05678, 05679, 05689, 05789, 06789, 12345, 12346, 12347, 12348, 12349, 12356, 12357, 12358, 12359, 12367, 12368, 12369, 12378, 12379, 12389, 12456, 12457, 12458, 12459, 12467, 12468, 12469, 12478, 12479, 12489, 12567, 12568, 12569, 12578, 12579, 12589, 12678, 12679, 12689, 12789, 13456, 13457, 13458, 13459, 13467, 13468, 13469, 13478, 13479, 13489, 13567, 13568, 13569, 13578, 13579, 13589, 13678, 13679, 13689, 13789, 14567, 14568, 14569, 14578, 14579, 14589, 14678, 14679, 14689, 14789, 15678, 15679, 15689, 15789, 16789, 23456, 23457, 23458, 23459, 23467, 23468, 23469, 23478, 23479, 23489, 23567, 23568, 23569, 23578, 23579, 23589, 23678, 23679, 23689, 23789, 24567, 24568, 24569, 24578, 24579, 24589, 24678, 24679, 24689, 24789, 25678, 25679, 25689, 25789, 26789, 34567, 34568, 34569, 34578, 34579, 34589, 34678, 34679, 34689, 34789, 35678, 35679, 35689, 35789, 36789, 45678, 45679, 45689, 45789, 46789, 56789`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `n = 6`
|
||||
|
||||
`012345, 012346, 012347, 012348, 012349, 012356, 012357, 012358, 012359, 012367, 012368, 012369, 012378, 012379, 012389, 012456, 012457, 012458, 012459, 012467, 012468, 012469, 012478, 012479, 012489, 012567, 012568, 012569, 012578, 012579, 012589, 012678, 012679, 012689, 012789, 013456, 013457, 013458, 013459, 013467, 013468, 013469, 013478, 013479, 013489, 013567, 013568, 013569, 013578, 013579, 013589, 013678, 013679, 013689, 013789, 014567, 014568, 014569, 014578, 014579, 014589, 014678, 014679, 014689, 014789, 015678, 015679, 015689, 015789, 016789, 023456, 023457, 023458, 023459, 023467, 023468, 023469, 023478, 023479, 023489, 023567, 023568, 023569, 023578, 023579, 023589, 023678, 023679, 023689, 023789, 024567, 024568, 024569, 024578, 024579, 024589, 024678, 024679, 024689, 024789, 025678, 025679, 025689, 025789, 026789, 034567, 034568, 034569, 034578, 034579, 034589, 034678, 034679, 034689, 034789, 035678, 035679, 035689, 035789, 036789, 045678, 045679, 045689, 045789, 046789, 056789, 123456, 123457, 123458, 123459, 123467, 123468, 123469, 123478, 123479, 123489, 123567, 123568, 123569, 123578, 123579, 123589, 123678, 123679, 123689, 123789, 124567, 124568, 124569, 124578, 124579, 124589, 124678, 124679, 124689, 124789, 125678, 125679, 125689, 125789, 126789, 134567, 134568, 134569, 134578, 134579, 134589, 134678, 134679, 134689, 134789, 135678, 135679, 135689, 135789, 136789, 145678, 145679, 145689, 145789, 146789, 156789, 234567, 234568, 234569, 234578, 234579, 234589, 234678, 234679, 234689, 234789, 235678, 235679, 235689, 235789, 236789, 245678, 245679, 245689, 245789, 246789, 256789, 345678, 345679, 345689, 345789, 346789, 356789, 456789`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `n = 7`
|
||||
|
||||
`0123456, 0123457, 0123458, 0123459, 0123467, 0123468, 0123469, 0123478, 0123479, 0123489, 0123567, 0123568, 0123569, 0123578, 0123579, 0123589, 0123678, 0123679, 0123689, 0123789, 0124567, 0124568, 0124569, 0124578, 0124579, 0124589, 0124678, 0124679, 0124689, 0124789, 0125678, 0125679, 0125689, 0125789, 0126789, 0134567, 0134568, 0134569, 0134578, 0134579, 0134589, 0134678, 0134679, 0134689, 0134789, 0135678, 0135679, 0135689, 0135789, 0136789, 0145678, 0145679, 0145689, 0145789, 0146789, 0156789, 0234567, 0234568, 0234569, 0234578, 0234579, 0234589, 0234678, 0234679, 0234689, 0234789, 0235678, 0235679, 0235689, 0235789, 0236789, 0245678, 0245679, 0245689, 0245789, 0246789, 0256789, 0345678, 0345679, 0345689, 0345789, 0346789, 0356789, 0456789, 1234567, 1234568, 1234569, 1234578, 1234579, 1234589, 1234678, 1234679, 1234689, 1234789, 1235678, 1235679, 1235689, 1235789, 1236789, 1245678, 1245679, 1245689, 1245789, 1246789, 1256789, 1345678, 1345679, 1345689, 1345789, 1346789, 1356789, 1456789, 2345678, 2345679, 2345689, 2345789, 2346789, 2356789, 2456789, 3456789`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `n = 8`
|
||||
|
||||
`01234567, 01234568, 01234569, 01234578, 01234579, 01234589, 01234678, 01234679, 01234689, 01234789, 01235678, 01235679, 01235689, 01235789, 01236789, 01245678, 01245679, 01245689, 01245789, 01246789, 01256789, 01345678, 01345679, 01345689, 01345789, 01346789, 01356789, 01456789, 02345678, 02345679, 02345689, 02345789, 02346789, 02356789, 02456789, 03456789, 12345678, 12345679, 12345689, 12345789, 12346789, 12356789, 12456789, 13456789, 23456789`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `n = 9`
|
||||
|
||||
`012345678, 012345679, 012345689, 012345789, 012346789, 012356789, 012456789, 013456789, 023456789, 123456789`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
#### PrintNbrBase
|
||||
|
||||
##### Try with the argument: `nbr = 919617 and base = 01`
|
||||
|
||||
`11100000100001000001`
|
||||
|
||||
###### Does the function prints the value?
|
||||
|
||||
##### Try with the argument: `nbr = 753639 and base = CHOUMIisDAcat!`
|
||||
|
||||
`HIDAHI`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `nbr = -174336 and base = CHOUMIisDAcat!`
|
||||
|
||||
`-MssiD`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `nbr = -661165 and base = 1`
|
||||
|
||||
`NV`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `nbr = -861737 and base = Zone01Zone01`
|
||||
|
||||
`NV`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `nbr = 125 and base = 0123456789ABCDEF`
|
||||
|
||||
`7D`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `nbr = -125 and base = choumi`
|
||||
|
||||
`-uoi`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `nbr = 125 and base = -ab`
|
||||
|
||||
`NV`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the argument: `nbr = -9223372036854775808 and base = 0123456789`
|
||||
|
||||
`-9223372036854775808`
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
#### doop
|
||||
|
||||
##### Try with the arguments: `861 + 870`
|
||||
|
||||
`1731`
|
||||
|
||||
###### Does the program prints the value above?
|
||||
|
||||
##### Try with the arguments: `861 - 870`
|
||||
|
||||
`-9`
|
||||
|
||||
###### Does the program prints the value above?
|
||||
|
||||
##### Try with the arguments: `861 * 870`
|
||||
|
||||
`749070`
|
||||
|
||||
###### Does the program prints the value above?
|
||||
|
||||
##### Try with the arguments: `861 % 870`
|
||||
|
||||
`861`
|
||||
|
||||
###### Does the program prints the value above?
|
||||
|
||||
##### Try with the arguments: `hello + 1`
|
||||
|
||||
`0`
|
||||
|
||||
###### Does the program prints the value above?
|
||||
|
||||
##### Try with the arguments: `1 p 1`
|
||||
|
||||
`0`
|
||||
|
||||
###### Does the program prints the value above?
|
||||
|
||||
##### Try with the arguments: `1 / 0`
|
||||
|
||||
`No division by 0`
|
||||
|
||||
###### Does the program prints the value above?
|
||||
|
||||
##### Try with the arguments: `1 % 0`
|
||||
|
||||
`No remainder of division by 0`
|
||||
|
||||
###### Does the program prints the value above?
|
||||
|
||||
##### Try with the arguments: `1 * 1`
|
||||
|
||||
`1`
|
||||
|
||||
###### Does the program prints the value above?
|
||||
|
||||
##### Try with the arguments: `9223372036854775807 + 1`
|
||||
|
||||
`0`
|
||||
|
||||
###### Does the program prints the value above?
|
||||
|
||||
##### Try with the arguments: `9223372036854775809 - 3`
|
||||
|
||||
`0`
|
||||
|
||||
###### Does the program prints the value above?
|
||||
|
||||
##### Try with the arguments: `9223372036854775807 * 3`
|
||||
|
||||
`0`
|
||||
|
||||
###### Does the program prints the value above?
|
||||
|
||||
#### Atoibase
|
||||
|
||||
##### Try with the arguments: `s = bcbbbbaab and base = abc`
|
||||
|
||||
`12016`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `s = 0001 and base = 01`
|
||||
|
||||
`1`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `s = 00 and base = 01`
|
||||
|
||||
`0`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `s = saDt!I!sI and base = CHOUMIisDAcat!`
|
||||
|
||||
`11557277891`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `s = AAho?Ao and base = WhoAmI?`
|
||||
|
||||
`406772`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `s = thisinputshouldnotmatter and base = abca`
|
||||
|
||||
`0`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `s = 125 and base = 0123456789`
|
||||
|
||||
`125`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `s = uoi and base = choumi`
|
||||
|
||||
`125`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `s = bbbbbab and base = -ab`
|
||||
|
||||
`0`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
#### splitwhitespaces
|
||||
|
||||
##### Try with the argument: `str = "The earliest foundations of what would become computer science predate the invention of the modern digital computer"`
|
||||
|
||||
`[The earliest foundations of what would become computer science predate the invention of the modern digital computer]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `str = Machines for calculating fixed numerical tasks such as the abacus have existed since antiquity,`
|
||||
|
||||
`[Machines for calculating fixed numerical tasks such as the abacus have existed since antiquity,]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
##### Try with the argument: `str = aiding in computations such as multiplication and division .`
|
||||
|
||||
##### Try with the argument: `str = aiding in computations such as multiplication and division .`
|
||||
|
||||
`[aiding in computations such as multiplication and division .]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
##### Try with the argument: `str = Algorithms for performing computations have existed since antiquity, even before the development of sophisticated computing equipment.`
|
||||
|
||||
##### Try with the argument: `str = Algorithms for performing computations have existed since antiquity, even before the development of sophisticated computing equipment.`
|
||||
|
||||
`[Algorithms for performing computations have existed since antiquity, even before the development of sophisticated computing equipment.]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `str = Wilhelm Schickard designed and constructed the first working mechanical calculator in 1623.[4]`
|
||||
|
||||
`[Wilhelm Schickard designed and constructed the first working mechanical calculator in 1623.[4]]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
##### Try with the argument: `str = In 1673, Gottfried Leibniz demonstrated a digital mechanical calculator,`
|
||||
|
||||
##### Try with the argument: `str = In 1673, Gottfried Leibniz demonstrated a digital mechanical calculator,`
|
||||
|
||||
`[In 1673, Gottfried Leibniz demonstrated a digital mechanical calculator,]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
#### split
|
||||
|
||||
##### Try with the arguments:
|
||||
|
||||
```
|
||||
str = |=choumi=|which|=choumi=|itself|=choumi=|used|=choumi=|cards|=choumi=|and|=choumi=|a|=choumi=|central|=choumi=|computing|=choumi=|unit.|=choumi=|When|=choumi=|the|=choumi=|machine|=choumi=|was|=choumi=|finished, and charset = |=choumi=|
|
||||
```
|
||||
|
||||
`[ which itself used cards and a central computing unit. When the machine was finished,]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments:
|
||||
|
||||
```
|
||||
str = !==!which!==!was!==!making!==!all!==!kinds!==!of!==!punched!==!card!==!equipment!==!and!==!was!==!also!==!in!==!the!==!calculator!==!business[10]!==!to!==!develop!==!his!==!giant!==!programmable!==!calculator, and charset = !==!
|
||||
```
|
||||
|
||||
`[ which was making all kinds of punched card equipment and was also in the calculator business[10] to develop his giant programmable calculator,]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments:
|
||||
|
||||
```
|
||||
str = AFJCharlesAFJBabbageAFJstartedAFJtheAFJdesignAFJofAFJtheAFJfirstAFJautomaticAFJmechanicalAFJcalculator, and charset = AFJ
|
||||
```
|
||||
|
||||
`[ Charles Babbage started the design of the first automatic mechanical calculator,]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments:
|
||||
|
||||
```
|
||||
str = <<==123==>>In<<==123==>>1820,<<==123==>>Thomas<<==123==>>de<<==123==>>Colmar<<==123==>>launched<<==123==>>the<<==123==>>mechanical<<==123==>>calculator<<==123==>>industry[note<<==123==>>1]<<==123==>>when<<==123==>>he<<==123==>>released<<==123==>>his<<==123==>>simplified<<==123==>>arithmometer, and charset = <<==123==>>
|
||||
```
|
||||
|
||||
`[ In 1820, Thomas de Colmar launched the mechanical calculator industry[note 1] when he released his simplified arithmometer,]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
#### convertbase
|
||||
|
||||
##### Try with the arguments `nbr = "4506C", baseFrom = "0123456789ABCDEF" and baseTo = "choumi"`
|
||||
|
||||
`"hccocimc"`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments `nbr = "babcbaaaaabcb", baseFrom = "abc" and baseTo = "0123456789ABCDEF"`
|
||||
|
||||
`"9B611"`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments `nbr = "256850", baseFrom = "0123456789" and baseTo = "01"`
|
||||
|
||||
`"111110101101010010"`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments `nbr = "uuhoumo", baseFrom = "choumi" and baseTo = "Zone01"`
|
||||
|
||||
`"eeone0n"`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments `nbr = "683241", baseFrom = "0123456789" and baseTo = "0123456789"`
|
||||
|
||||
`"683241"`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
#### rotatevowels
|
||||
|
||||
##### Try the program without any arguments
|
||||
|
||||
###### Does the program displays a new line?
|
||||
|
||||
##### Try executing the program passing as argument: `"Hello World"`
|
||||
|
||||
`Hollo Werld`
|
||||
|
||||
###### Does the program returns the value above?
|
||||
|
||||
##### Try executing the program passing as arguments: `"HEllO World" "problem solved"`
|
||||
|
||||
`Hello Werld problom sOlvEd`
|
||||
|
||||
###### Does the program returns the value above?
|
||||
|
||||
##### Try executing the program passing as argument: `"str" "shh" "psst"`
|
||||
|
||||
`str shh psst`
|
||||
|
||||
###### Does the program returns the value above?
|
||||
|
||||
##### Try executing the program passing as argument: `"happy thoughts" "good luck"`
|
||||
|
||||
`huppy thooghts guod lack`
|
||||
|
||||
###### Does the program returns the value above?
|
||||
|
||||
##### Try executing the program passing as argument: `"al's elEphAnt is overly underweight!"`
|
||||
|
||||
`il's elephunt es ovirly AndErweaght!`
|
||||
|
||||
###### Does the program returns the value above?
|
||||
|
||||
#### advancedsortwordarr
|
||||
|
||||
##### Try with the arguments
|
||||
```
|
||||
array = [The earliest computing device undoubtedly consisted of the five fingers of each hand] and f = strings.Compare
|
||||
|
||||
```
|
||||
slice = [The earliest computing device undoubtedly consisted of the five fingers of each hand] and f = strings.Compare
|
||||
```
|
||||
|
||||
`[The computing consisted device each earliest fingers five hand of of the undoubtedly]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments
|
||||
```
|
||||
array = [The word digital comesfrom "digits" or fingers] and f = strings.Compare
|
||||
|
||||
```
|
||||
slice = [The word digital comesfrom "digits" or fingers] and f = strings.Compare
|
||||
```
|
||||
|
||||
`["digits" The comesfrom digital fingers or word]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments
|
||||
```
|
||||
array = [a A 1 b B 2 c C 3] and f = strings.Compare
|
||||
|
||||
```
|
||||
slice = [a A 1 b B 2 c C 3] and f = strings.Compare
|
||||
```
|
||||
|
||||
`[1 2 3 A B C a b c]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments
|
||||
```
|
||||
array = [The computing consisted device each earliest fingers five hand of of the undoubtedly] and f = func(a, b string) int {
|
||||
return strings.Compare(b, a)
|
||||
}
|
||||
|
||||
```
|
||||
slice = [The computing consisted device each earliest fingers five hand of of the undoubtedly] and f = func(a, b string) int {
|
||||
return strings.Compare(b, a)
|
||||
}
|
||||
```
|
||||
|
||||
`[undoubtedly the of of hand five fingers earliest each device consisted computing The]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments
|
||||
```
|
||||
array = ["digits" The comesfrom digital fingers or word] and f = func(a, b string) int {
|
||||
return strings.Compare(b, a)
|
||||
}
|
||||
|
||||
```
|
||||
slice = ["digits" The comesfrom digital fingers or word] and f = func(a, b string) int {
|
||||
return strings.Compare(b, a)
|
||||
}
|
||||
```
|
||||
|
||||
`[word or fingers digital comesfrom The "digits"]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments
|
||||
```
|
||||
array = [1 2 3 A B C a b c] and f = func(a, b string) int {
|
||||
return strings.Compare(b, a)
|
||||
}
|
||||
|
||||
```
|
||||
slice = [1 2 3 A B C a b c] and f = func(a, b string) int {
|
||||
return strings.Compare(b, a)
|
||||
}
|
||||
```
|
||||
|
||||
`[c b a C B A 3 2 1]`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
#### cat
|
||||
|
||||
##### Run the program without arguments and then write: `Hello`
|
||||
|
||||
`Hello`
|
||||
|
||||
###### Does the program returns the value above?
|
||||
|
||||
##### Write: `jaflsdfj`
|
||||
|
||||
`jaflsdfj`
|
||||
|
||||
###### Does the program returns the value above?
|
||||
|
||||
##### Write: `Computer science (sometimes called computation science or computing science`
|
||||
|
||||
`Computer science (sometimes called computation science or computing science`
|
||||
|
||||
###### Does the program returns the value above?
|
||||
|
||||
##### Run the program passing the file: `quest8.txt` as an argument of execution of the program (as shown in the subject)
|
||||
|
||||
###### Does the the program displays the same output as in the readme?
|
||||
|
||||
##### Run the program with the file: `quest8T.txt`
|
||||
|
||||
###### Does the program displays the content of the file?
|
||||
|
||||
##### Run the program with the arguments: `quest8T.txt quest8.txt`
|
||||
|
||||
###### Does the program displays the content of the file in order?
|
||||
|
||||
##### Run the program with a diferent file and then run the system program `cat` with the same file.
|
||||
|
||||
###### Are the outputs identical?
|
||||
|
||||
##### Run both this program and the system program `cat` passing as an argument a random string that is not the name of a file
|
||||
|
||||
###### Are the outputs identical (ignoring the first word of and the capitalization of the output)?
|
||||
|
||||
#### ztail
|
||||
|
||||
##### Run both ztail and the system command `tail` with the arguments: `-c 20 <filename> `
|
||||
##### Run both ztail and the system command `tail` with the arguments: `-c 20 <filename>`
|
||||
|
||||
###### Are the outputs exactly the same?
|
||||
|
||||
##### Run both ztail and the system command `tail` with the arguments: `<filename> -c 23`
|
||||
|
||||
###### Are the outputs exactly the same?
|
||||
|
||||
##### Run both ztail and the system command `tail` with the arguments: `-c jelrjq 15`
|
||||
|
||||
###### Are the outputs exactly the same?
|
||||
|
||||
##### Run both ztail and the system command `tail` with the arguments: `-c 11 <filename> jfdklsa`
|
||||
|
||||
###### Are the outputs exactly the same?
|
||||
|
||||
##### Run both ztail and the system command `tail` with the arguments: `11 -c <filename>`
|
||||
|
||||
###### Are the outputs exactly the same?
|
||||
|
||||
#### activebits
|
||||
|
||||
##### Try with the argument: `n = 15`
|
||||
|
||||
`4`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `n = 17`
|
||||
|
||||
`2`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `n = 4`
|
||||
|
||||
`1`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `n = 11`
|
||||
|
||||
`3`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `n = 9`
|
||||
|
||||
`2`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `n = 12`
|
||||
|
||||
`2`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the argument: `n = 2`
|
||||
|
||||
`1`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
#### sortlistinsert
|
||||
|
||||
##### Try with the arguments: `l = 0-> <nil> and data_ref = 39`
|
||||
|
||||
`(0-> 39-> <nil>)`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `l = 0-> 1-> 2-> 3-> 4-> 5-> 24-> 25-> 54-> <nil> and data_ref = 33`
|
||||
|
||||
`(0-> 1-> 2-> 3-> 4-> 5-> 24-> 25-> 33-> 54-> <nil>)`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `l = 0-> 2-> 18-> 33-> 37-> 37-> 39-> 52-> 53-> 57-> <nil> and data_ref = 53`
|
||||
|
||||
`(0-> 2-> 18-> 33-> 37-> 37-> 39-> 52-> 53-> 53-> 57-> <nil>)`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `l = 0-> 5-> 18-> 24-> 28-> 35-> 42-> 45-> 52-> <nil> and data_ref = 52`
|
||||
|
||||
`(0-> 5-> 18-> 24-> 28-> 35-> 42-> 45-> 52-> 52-> <nil>)`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `l = 0-> 12-> 20-> 23-> 23-> 24-> 30-> 41-> 53-> 57-> 59-> <nil> and data_ref = 38`
|
||||
|
||||
`(0-> 12-> 20-> 23-> 23-> 24-> 30-> 38-> 41-> 53-> 57-> 59-> <nil>)`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
#### sortedlistmerge
|
||||
|
||||
##### Try with the arguments: `n1 = <nil> and n2 = <nil>`
|
||||
|
||||
`(<nil>)`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `n1 = <nil> and n2 = 2-> 2-> 4-> 9-> 12-> 12-> 19-> 20-> <nil>`
|
||||
|
||||
`(2-> 2-> 4-> 9-> 12-> 12-> 19-> 20-> <nil>)`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `n1 = 4-> 4-> 6-> 9-> 13-> 18-> 20-> 20-> <nil> and n2 = <nil>`
|
||||
|
||||
`(4-> 4-> 6-> 9-> 13-> 18-> 20-> 20-> <nil>)`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `n1 = 0-> 7-> 39-> 92-> 97-> 93-> 91-> 28-> 64-> <nil> and n2 = 80-> 23-> 27-> 30-> 85-> 81-> 75-> 70-> <nil>`
|
||||
|
||||
`(0-> 7-> 23-> 27-> 28-> 30-> 39-> 64-> 70-> 75-> 80-> 81-> 85-> 91-> 92-> 93-> 97-> <nil>)`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `n1 =0-> 2-> 11-> 30-> 54-> 56-> 70-> 79-> 99-> <nil> and n2 = 23-> 28-> 38-> 67-> 67-> 79-> 95-> 97-> <nil>`
|
||||
|
||||
`(0-> 2-> 11-> 23-> 28-> 30-> 38-> 54-> 56-> 67-> 67-> 70-> 79-> 79-> 95-> 97-> 99-> <nil>)`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments: `n1 = 0-> 3-> 8-> 8-> 13-> 19-> 34-> 38-> 46-> <nil> and n2 = 7-> 39-> 45-> 53-> 59-> 70-> 76-> 79-> <nil>`
|
||||
|
||||
`(0-> 3-> 7-> 8-> 8-> 13-> 19-> 34-> 38-> 39-> 45-> 46-> 53-> 59-> 70-> 76-> 79-> <nil>)`
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
#### listremoveif
|
||||
|
||||
##### Try with the arguments: `l = <nil> and data_ref = 1`
|
||||
|
||||
`(<nil>)`
|
||||
|
||||
###### Does the function returns the list above?
|
||||
|
||||
##### Try with the arguments: `l = <nil> and data_ref = 96`
|
||||
|
||||
`(<nil>)`
|
||||
|
||||
###### Does the function returns the list above?
|
||||
|
||||
##### Try with the arguments: `l = 98-> 98-> 33-> 34-> 33-> 34-> 33-> 89-> 33-> <nil> and data_ref = 34`
|
||||
|
||||
`(98-> 98-> 33-> 33-> 33-> 89-> 33-> <nil>)`
|
||||
|
||||
###### Does the function returns the list above?
|
||||
|
||||
##### Try with the arguments: `l = 79-> 74-> 99-> 79-> 7-> <nil> and data_ref = 99`
|
||||
|
||||
`(79-> 74-> 79-> 7-> <nil>)`
|
||||
|
||||
###### Does the function returns the list above?
|
||||
|
||||
##### Try with the arguments: `l = 56-> 93-> 68-> 56-> 87-> 68-> 56-> 68-> <nil> and data_ref = 68`
|
||||
|
||||
`(56-> 93-> 56-> 87-> 56-> <nil>)`
|
||||
|
||||
###### Does the function returns the list above?
|
||||
##### Try with the arguments: `l = mvkUxbqhQve4l-> 4Zc4t hnf SQ-> q2If E8BPuX -> <nil> and data_ref = 4Zc4t hnf SQ`
|
||||
`(mvkUxbqhQve4l-> q2If E8BPuX -> <nil>)`
|
||||
|
||||
##### Try with the arguments: `l = mvkUxbqhQve4l-> 4Zc4t hnf SQ-> q2If E8BPuX -> <nil> and data_ref = 4Zc4t hnf SQ`
|
||||
|
||||
`(mvkUxbqhQve4l-> q2If E8BPuX -> <nil>)`
|
||||
|
||||
###### Does the function returns the list above?
|
||||
|
||||
#### btreetransplant
|
||||
|
||||
##### Try with the arguments:
|
||||
|
||||
```
|
||||
root =
|
||||
01
|
||||
|
@ -445,6 +779,7 @@ repla =
|
|||
└── 12
|
||||
└── 15
|
||||
```
|
||||
|
||||
```
|
||||
01
|
||||
└── 07
|
||||
|
@ -457,8 +792,11 @@ repla =
|
|||
└── 02
|
||||
└── 03
|
||||
```
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments:
|
||||
|
||||
```
|
||||
root =
|
||||
33
|
||||
|
@ -476,6 +814,7 @@ repla =
|
|||
└── 12
|
||||
└── 15
|
||||
```
|
||||
|
||||
```
|
||||
33
|
||||
├── 5
|
||||
|
@ -486,8 +825,11 @@ repla =
|
|||
└── 12
|
||||
└── 15
|
||||
```
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments:
|
||||
|
||||
```
|
||||
root =
|
||||
03
|
||||
|
@ -517,11 +859,13 @@ repla =
|
|||
└── 12
|
||||
└── 15
|
||||
```
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
#### btreeapplybylevel
|
||||
|
||||
##### Try with the arguments:
|
||||
|
||||
```
|
||||
root =
|
||||
01
|
||||
|
@ -533,6 +877,7 @@ root =
|
|||
└── 03
|
||||
and f = fmt.Println
|
||||
```
|
||||
|
||||
```
|
||||
01
|
||||
07
|
||||
|
@ -542,8 +887,11 @@ and f = fmt.Println
|
|||
10
|
||||
03
|
||||
```
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
##### Try with the arguments:
|
||||
|
||||
```
|
||||
root =
|
||||
01
|
||||
|
@ -555,14 +903,17 @@ root =
|
|||
└── 03
|
||||
and f = fmt.Print
|
||||
```
|
||||
|
||||
```
|
||||
01070512021003
|
||||
```
|
||||
|
||||
###### Does the function prints the value above?
|
||||
|
||||
#### btreedeletenode
|
||||
|
||||
##### Try with the arguments:
|
||||
|
||||
```
|
||||
root =
|
||||
01
|
||||
|
@ -574,6 +925,7 @@ root =
|
|||
└── 03
|
||||
and node = 02
|
||||
```
|
||||
|
||||
```
|
||||
01
|
||||
└── 07
|
||||
|
@ -582,8 +934,11 @@ and node = 02
|
|||
└── 05
|
||||
└── 03
|
||||
```
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments:
|
||||
|
||||
```
|
||||
root =
|
||||
33
|
||||
|
@ -595,6 +950,7 @@ root =
|
|||
└── 11
|
||||
and node = 20
|
||||
```
|
||||
|
||||
```
|
||||
33
|
||||
├── 5
|
||||
|
@ -603,8 +959,11 @@ and node = 20
|
|||
└── 13
|
||||
└── 11
|
||||
```
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments:
|
||||
|
||||
```
|
||||
root =
|
||||
03
|
||||
|
@ -616,6 +975,7 @@ root =
|
|||
└── 11
|
||||
and node = 03
|
||||
```
|
||||
|
||||
```
|
||||
39
|
||||
├── 99
|
||||
|
@ -624,8 +984,11 @@ root =
|
|||
└── 14
|
||||
└── 11
|
||||
```
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
||||
##### Try with the arguments:
|
||||
|
||||
```
|
||||
root =
|
||||
03
|
||||
|
@ -637,6 +1000,7 @@ root =
|
|||
└── 01
|
||||
and node = 03
|
||||
```
|
||||
|
||||
```
|
||||
03
|
||||
├── 94
|
||||
|
@ -645,4 +1009,5 @@ and node = 03
|
|||
│ └── 111
|
||||
└── 01
|
||||
```
|
||||
###### Does the function returns the value above?
|
||||
|
||||
###### Does the function returns the value above?
|
||||
|
|
|
@ -417,7 +417,7 @@ student@ubuntu:~/[[ROOT]]/test$
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a function that separates the words of a `string` and puts them in a `string` array.
|
||||
Write a function that separates the words of a `string` and puts them in a `string` slice.
|
||||
|
||||
The separators are spaces, tabs and newlines.
|
||||
|
||||
|
@ -467,13 +467,13 @@ student@ubuntu:~/[[ROOT]]/test$
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a [function](TODO-LINK) that simulates the behaviour of the `strings.Split` function in Go. `strings.Split` separates the words of a `string` and puts them in a `string` array.
|
||||
The separators are the characters of the `charset string` given in parameter.
|
||||
Write a function that simulates the behaviour of the `strings.Split` function in Go. `strings.Split` separates the words of a `string` and puts them in a `string` slice.
|
||||
The separators are the characters of the separator string given in parameter.
|
||||
|
||||
### Expected function
|
||||
|
||||
```go
|
||||
func Split(str, charset string) []string {
|
||||
func Split(s, sep string) []string {
|
||||
|
||||
}
|
||||
```
|
||||
|
@ -606,12 +606,12 @@ student@ubuntu:~/[[ROOT]]/test$
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a function `AdvancedSortWordArr` that sorts a `string` array, based on the function `f` passed in parameter.
|
||||
Write a function `AdvancedSortWordArr` that sorts a `string` slice, based on the function `f` passed in parameter.
|
||||
|
||||
### Expected function
|
||||
|
||||
```go
|
||||
func AdvancedSortWordArr(array []string, f func(a, b string) int) {
|
||||
func AdvancedSortWordArr(a []string, f func(a, b string) int) {
|
||||
|
||||
}
|
||||
```
|
||||
|
|
|
@ -8,9 +8,7 @@ The program should handle the "`|`" operator, that searches for both strings on
|
|||
|
||||
The output of the program should be the results of the regular expression by order of appearance in the string, being themselves identified by a number.
|
||||
|
||||
In case the regular expression is not valid, the last argument is empty or there are no matches the program returns a newline ("`\n`").
|
||||
|
||||
If the number of arguments is different from 2 the program should print a newline ("`\n`").
|
||||
If the number of arguments is different from 2, if the regular expression is not valid, if the last argument is empty or there are no matches the program should print nothing.
|
||||
|
||||
### Usage
|
||||
|
||||
|
@ -34,8 +32,6 @@ student@ubuntu:~/[[ROOT]]/test$ ./regbrackets "(hi)" "He swore he just saw his s
|
|||
1: his
|
||||
2: sushi
|
||||
student@ubuntu:~/[[ROOT]]/test$ ./regbrackets "(s)" ""
|
||||
|
||||
student@ubuntu:~/[[ROOT]]/test$ ./regbrackets "i" "Something in the air"
|
||||
|
||||
student@ubuntu:~/[[ROOT]]/test$
|
||||
```
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## halfcontest
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
|
||||
|
@ -36,9 +25,7 @@ Here is a possible program to test your function :
|
|||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
fmt.Println(Halfcontest(1, 15, 3, 33))
|
||||
|
|
|
@ -8,7 +8,7 @@ Let s1 and s2 be `string`. It is considered that s1 is hidden in s2 if it is pos
|
|||
|
||||
If s1 is an empty `string` it is considered hidden in any `string`.
|
||||
|
||||
If the number of parameters is different from 2, the program displays a newline.
|
||||
If the number of parameters is different from 2, the program displays nothing.
|
||||
|
||||
### Usage
|
||||
|
||||
|
@ -22,7 +22,6 @@ student@ubuntu:~/[[ROOT]]/hiddenp$ ./hiddenp "abc" "btarc" | cat -e
|
|||
0$
|
||||
student@ubuntu:~/[[ROOT]]/hiddenp$ ./hiddenp "DD" "DABC" | cat -e
|
||||
0$
|
||||
student@ubuntu:~/[[ROOT]]/hiddenp$ ./hiddenp | cat -e
|
||||
$
|
||||
student@ubuntu:~/[[ROOT]]/hiddenp$ ./hiddenp
|
||||
student@ubuntu:~/[[ROOT]]/hiddenp$
|
||||
```
|
||||
|
|
|
@ -6,7 +6,7 @@ Write a program that takes two `string` and displays, without doubles, the chara
|
|||
|
||||
- The display will be followed by a newline (`'\n'`).
|
||||
|
||||
- If the number of arguments is different from 2, the program displays a newline (`'\n'`).
|
||||
- If the number of arguments is different from 2, the program displays nothing.
|
||||
|
||||
### Usage
|
||||
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## interesting_number
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## invert tree
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function that takes tree and inverts(flips) and returns it.
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## isanagram
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function that returns `true` if two strings are anagrams, otherwise returns `false`.
|
||||
|
|
|
@ -6,9 +6,9 @@ Write a program that determines if a given number is a power of 2.
|
|||
|
||||
This program must print `true` if the given number is a power of 2, otherwise it prints `false`.
|
||||
|
||||
- If there is more than one or no argument the program should print a newline ("`\n`").
|
||||
- If there is more than one or no argument the program should print nothing.
|
||||
|
||||
- When there is only 1 argument, it will always be a positive valid int.
|
||||
- When there is only one argument, it will always be a positive valid int.
|
||||
|
||||
### Usage :
|
||||
|
||||
|
@ -16,13 +16,11 @@ This program must print `true` if the given number is a power of 2, otherwise it
|
|||
student@ubuntu:~/ispowerof2$ go build
|
||||
student@ubuntu:~/ispowerof2$ ./ispowerof2 2 | cat -e
|
||||
true$
|
||||
student@ubuntu:~/ispowerof2$ ./ispowerof2 64 | cat -e
|
||||
true$
|
||||
student@ubuntu:~/ispowerof2$ ./ispowerof2 513 | cat -e
|
||||
false$
|
||||
student@ubuntu:~/ispowerof2$ ./ispowerof2 64
|
||||
true
|
||||
student@ubuntu:~/ispowerof2$ ./ispowerof2 513
|
||||
false
|
||||
student@ubuntu:~/ispowerof2$ ./ispowerof2
|
||||
|
||||
student@ubuntu:~/ispowerof2$ ./ispowerof2 64 1024
|
||||
|
||||
student@ubuntu:~/ispowerof2$
|
||||
```
|
||||
|
|
|
@ -4,15 +4,14 @@
|
|||
|
||||
Write a function `IsSorted` that returns `true` if the slice of `int` is sorted, and that returns `false` otherwise.
|
||||
|
||||
The function passed in parameter returns a positive `int` if `a`(the first argument) is superior to `b`(the second argument),
|
||||
it returns `0` if they are equal and it returns a negative `int` otherwise.
|
||||
The function passed in parameter returns a positive `int` if `a` (the first argument) is superior to `b` (the second argument), it returns `0` if they are equal and it returns a negative `int` otherwise.
|
||||
|
||||
To do your testing you have to write your own `f` function.
|
||||
|
||||
### Expected function
|
||||
|
||||
```go
|
||||
func IsSorted(f func(a, b int) int, tab []int) bool {
|
||||
func IsSorted(f func(a, b int) int, a []int) bool {
|
||||
|
||||
}
|
||||
```
|
||||
|
@ -30,11 +29,11 @@ import (
|
|||
)
|
||||
|
||||
func main() {
|
||||
tab1 := []int{0, 1, 2, 3, 4, 5}
|
||||
tab2 := []int{0, 2, 1, 3}
|
||||
a1 := []int{0, 1, 2, 3, 4, 5}
|
||||
a2 := []int{0, 2, 1, 3}
|
||||
|
||||
result1 := piscine.IsSorted(f, tab1)
|
||||
result2 := piscine.IsSorted(f, tab2)
|
||||
result1 := piscine.IsSorted(f, a1)
|
||||
result2 := piscine.IsSorted(f, a2)
|
||||
|
||||
fmt.Println(result1)
|
||||
fmt.Println(result2)
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## itoabase
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function that:
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## itoaprog
|
||||
|
||||
##**WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
- Write a function that simulates the behaviour of the `Itoa` function in Go. `Itoa` transforms a number represented as an `int` in a number represented as a `string`.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a function that returns the concatenation of all the `string` of a table of `string` **separated** by the separator passed in argument.
|
||||
Write a function that returns the concatenation of all the `string` of a slice of `string` **separated** by the separator passed in argument.
|
||||
|
||||
### Expected function
|
||||
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## lastruneprog
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function that returns the last `rune` of a `string`.
|
||||
|
|
|
@ -8,7 +8,7 @@ Write a program that takes a `string` and displays its last word, followed by a
|
|||
|
||||
- The output will be followed by a newline (`'\n'`).
|
||||
|
||||
- If the number of parameters is different from 1, or if there are no word, the program displays a newline (`'\n'`).
|
||||
- If the number of parameters is different from 1, or if there are no word, the program displays nothing.
|
||||
|
||||
### Usage
|
||||
|
||||
|
@ -18,10 +18,8 @@ student@ubuntu:~/[[ROOT]]/lastword$ ./lastword "FOR PONY" | cat -e
|
|||
PONY$
|
||||
student@ubuntu:~/[[ROOT]]/lastword$ ./lastword "this ... is sparta, then again, maybe not" | cat -e
|
||||
not$
|
||||
student@ubuntu:~/[[ROOT]]/lastword$ ./lastword " " | cat -e
|
||||
$
|
||||
student@ubuntu:~/[[ROOT]]/lastword$ ./lastword "a" "b" | cat -e
|
||||
$
|
||||
student@ubuntu:~/[[ROOT]]/lastword$ ./lastword " "
|
||||
student@ubuntu:~/[[ROOT]]/lastword$ ./lastword "a" "b"
|
||||
student@ubuntu:~/[[ROOT]]/lastword$ ./lastword " lorem,ipsum " | cat -e
|
||||
lorem,ipsum$
|
||||
student@ubuntu:~/[[ROOT]]/lastword$
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## lcm
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function, `lcm`, that returns least common multiple.
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## listremoveifprog
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function `ListRemoveIf` that removes all elements that have a `Data` field equal to the `data_ref` in the argument of the function.
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## listsizeprog
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function `ListSize` that returns the number of elements in a linked list `l`.
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a function `Map` that, for an `int` array, applies a function of this type `func(int) bool` on each elements of that array and returns an array of all the return values.
|
||||
Write a function `Map` that, for an `int` slice, applies a function of this type `func(int) bool` on each elements of that slice and returns a slice of all the return values.
|
||||
|
||||
### Expected function
|
||||
|
||||
```go
|
||||
func Map(f func(int) bool, arr []int) []bool {
|
||||
func Map(f func(int) bool, a []int) []bool {
|
||||
|
||||
}
|
||||
```
|
||||
|
@ -25,8 +25,8 @@ import (
|
|||
)
|
||||
|
||||
func main() {
|
||||
arr := []int{1, 2, 3, 4, 5, 6}
|
||||
result := piscine.Map(piscine.IsPrime, arr)
|
||||
a := []int{1, 2, 3, 4, 5, 6}
|
||||
result := piscine.Map(piscine.IsPrime, a)
|
||||
fmt.Println(result)
|
||||
}
|
||||
```
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a function, `Max`, that returns the maximum value in a slice of integers.
|
||||
Write a function, `Max`, that returns the maximum value in a slice of integers. If the slice is empty, returns 0.
|
||||
|
||||
### Expected function
|
||||
|
||||
```go
|
||||
func Max(arr []int) int {
|
||||
func Max(a []int) int {
|
||||
|
||||
}
|
||||
```
|
||||
|
@ -25,8 +25,8 @@ import (
|
|||
)
|
||||
|
||||
func main() {
|
||||
arrInt := []int{23, 123, 1, 11, 55, 93}
|
||||
max := piscine.Max(arrInt)
|
||||
a := []int{23, 123, 1, 11, 55, 93}
|
||||
max := piscine.Max(a)
|
||||
fmt.Println(max)
|
||||
}
|
||||
```
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## maxprog
|
||||
|
||||
##**WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function, `Max`, that returns the maximum value in a slice of integers.
|
||||
|
@ -18,7 +7,7 @@ Write a function, `Max`, that returns the maximum value in a slice of integers.
|
|||
### Expected function
|
||||
|
||||
```go
|
||||
func Max(arr []int) int {
|
||||
func Max(a []int) int {
|
||||
|
||||
}
|
||||
```
|
||||
|
@ -30,9 +19,7 @@ Here is a possible program to test your function :
|
|||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
arrInt := []int{23, 123, 1, 11, 55, 93}
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## merge
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testing are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not.
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## nauuo
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
There was a vote. There are people who voted positively, negatively, and randomly.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a **program** that prints the corresponding letter in the `n` position of the classic latin alphabet, where `n` is each argument received.
|
||||
Write a **program** that prints the corresponding letter in the `n` position of the latin alphabet, where `n` is each argument received.
|
||||
|
||||
For example `1` matches `a`, `2` matches `b`, etc. If `n` does not match a valid position of the alphabet or if the argument is not an integer, the **program** should print a space (" ").
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ Intersection of words is counted as if it is in your dictionary (see example).
|
|||
Write a program that takes as arguments operations.
|
||||
|
||||
```console
|
||||
$> ./main "? love" "? is" "A loveis" "? love" "? Who" "A Whoareyou" "? is"
|
||||
$ ./main "? love" "? is" "A loveis" "? love" "? Who" "A Whoareyou" "? is"
|
||||
NO
|
||||
NO
|
||||
YES
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## nruneprog
|
||||
|
||||
##**WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function that returns the nth `rune` of a `string`.
|
||||
|
|
|
@ -11,14 +11,13 @@ The rules used by Pig Latin are as follows:
|
|||
|
||||
If the word has no vowels the program should print "No vowels".
|
||||
|
||||
If the number of arguments is different from one, the program prints a newline ("`\n`").
|
||||
If the number of arguments is different from one, the program prints nothing.
|
||||
|
||||
### Usage
|
||||
|
||||
```console
|
||||
student@ubuntu:~/student/test$ go build
|
||||
student@ubuntu:~/student/test$ ./piglatin
|
||||
|
||||
student@ubuntu:~/student/test$ ./piglatin pig | cat -e
|
||||
igpay$
|
||||
student@ubuntu:~/student/test$ ./piglatin Is | cat -e
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
## printmemory
|
||||
|
||||
## **WARNING! VERY IMPORTANT!**
|
||||
|
||||
For this exercise a function will be tested **with the exam own main**. However the student **still needs** to submit a structured program:
|
||||
|
||||
This means that:
|
||||
|
||||
- The package needs to be named `package main`.
|
||||
- The submitted code needs one declared function main(`func main()`) even if empty.
|
||||
- The function main declared needs to **also pass** the `Restrictions Checker`(illegal functions tester). It is advised for the student to just empty the function main after its own testings are done.
|
||||
- Every other rules are obviously the same than for a `program`.
|
||||
|
||||
### Instructions
|
||||
|
||||
Write a function that takes `(arr [10]int)`, and displays the memory as in the example.
|
||||
|
|
|
@ -11,7 +11,7 @@ student@ubuntu:~/[[ROOT]]/printprogramname$ go build main.go
|
|||
student@ubuntu:~/[[ROOT]]/printprogramname$ ./main
|
||||
main
|
||||
student@ubuntu:~/[[ROOT]]/printprogramname$ go build
|
||||
student@ubuntu:~/[[ROOT]]/printprogramname$ ./printprogramname
|
||||
printprogramname
|
||||
student@ubuntu:~/[[ROOT]]/printprogramname$ ./printprogramname | cat -e
|
||||
printprogramname$
|
||||
student@ubuntu:~/[[ROOT]]/printprogramname$
|
||||
```
|
||||
|
|
|
@ -2,11 +2,9 @@
|
|||
|
||||
### Instructions
|
||||
|
||||
Write a function that prints the words of a `string` array that will be returned a function `SplitWhiteSpaces`. (the testing will be done with ours)
|
||||
Write a function that prints the words of a `string` slice that will be returned a function `SplitWhiteSpaces`.
|
||||
|
||||
Each word is on a single line.
|
||||
|
||||
Each word ends with a `\n`.
|
||||
Each word is on a single line (each word ends with a `\n`).
|
||||
|
||||
### Expected function
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue