Skip to content

Commit 55724d0

Browse files
committed
Update README.md with comprehensive project descriptions and resources
- Added detailed descriptions for each project directory, covering topics such as basic syntax, control structures, data structures, memory management, debugging, file I/O, and more. - Included relevant resources for each topic to aid in understanding and practicing the concepts. - Updated the Table of Contents to reflect all project directories. - Provided additional notes for executing scripts and commands safely.
1 parent 07a2789 commit 55724d0

File tree

27 files changed

+1056
-301
lines changed

27 files changed

+1056
-301
lines changed

0x00-hello_world/README.md

+48
Original file line numberDiff line numberDiff line change
@@ -1 +1,49 @@
11
# 0x00-hello_world
2+
3+
## Project: 0x00. C - Hello, World
4+
5+
## Description
6+
7+
This project is an introduction to the C programming language. It covers the basics of C, including compiling, assembling, and linking programs, as well as writing simple programs that print text and determine the size of data types.
8+
9+
### Resources
10+
11+
#### Read or watch
12+
13+
- [C Programming Language - Brian Kernighan](https://www.youtube.com/watch?v=de2Hsvxaf8M)
14+
- [C Programming Tutorial for Beginners](https://www.learn-c.org/)
15+
- [The C Programming Language by Brian Kernighan and Dennis Ritchie](https://www.amazon.com/C-Programming-Language-2nd/dp/0131103628)
16+
- [C Programming Absolute Beginner's Guide](https://www.amazon.com/C-Programming-Absolute-Beginners-Guide/dp/0789751984)
17+
- [C Programming - Wikibooks](https://en.wikibooks.org/wiki/C_Programming)
18+
19+
### Learning Objectives
20+
21+
#### General
22+
23+
- Why C programming is awesome
24+
- Who invented C
25+
- Who are Dennis Ritchie, Brian Kernighan, and Linus Torvalds
26+
- What happens when you type `gcc main.c`
27+
- What is an entry point
28+
- What is `main`
29+
- How to print text using `printf`, `puts`, and `putchar`
30+
- How to get the size of a specific type using the unary operator `sizeof`
31+
- How to compile using `gcc`
32+
- What is the default program name when compiling with `gcc`
33+
- What is the official Holberton C coding style and how to check your code with `betty-style`
34+
- How to find the right header to include in your source code when using a standard library function
35+
- How does the `main` function influence the return value of the program
36+
37+
### Tasks
38+
39+
| Task | File | Description |
40+
| -------------------------------------------------------------------------------------------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------- |
41+
| 0. Preprocessor | [0-preprocessor](./0-preprocessor) | Runs a C file through the preprocessor and saves the result into another file. |
42+
| 1. Compiler | [1-compiler](./1-compiler) | Compiles a C file but does not link. |
43+
| 2. Assembler | [2-assembler](./2-assembler) | Generates the assembly code of a C code and saves it in an output file. |
44+
| 3. Name | [3-name](./3-name) | Compiles a C file and creates an executable named `cisfun`. |
45+
| 4. Hello, puts | [4-puts.c](./4-puts.c) | Writes a C program that prints exactly "Programming is like building a multilingual puzzle". |
46+
| 5. Hello, printf | [5-printf.c](./5-printf.c) | Writes a C program that prints exactly "with proper grammar, but the outcome is a piece of art". |
47+
| 6. Size is not grandeur, and territory does not make a nation | [6-size.c](./6-size.c) | Writes a C program that prints the size of various types on the computer it is compiled and run on. |
48+
| 7. Intel | [100-intel](./100-intel) | Generates the assembly code (Intel syntax) of a C code and saves it in an output file. |
49+
| 8. UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity | [101-quote.c](./101-quote.c) | Writes a C program that prints exactly "and that piece of art is useful" - Dora Korpar, 2015-10-19. |
+46
Original file line numberDiff line numberDiff line change
@@ -1 +1,47 @@
11
# 0x01-variables_if_else_while
2+
3+
## Description
4+
5+
This project focuses on variables, conditional statements, and loops in C. It covers how to declare and use variables, how to use `if`, `else`, and `while` statements, and how to write programs that use these constructs effectively.
6+
7+
### Resources
8+
9+
#### Read or watch
10+
11+
- [Variables in C](https://www.geeksforgeeks.org/variables-in-c/)
12+
- [C - if...else statement](https://www.tutorialspoint.com/cprogramming/if_else_statement_in_c.htm)
13+
- [C - while loop](https://www.programiz.com/c-programming/c-while-loop)
14+
- [C Programming - Loops](https://www.studytonight.com/c/loops-in-c.php)
15+
16+
### Learning Objectives
17+
18+
#### General
19+
20+
- What are the arithmetic operators and how to use them.
21+
- What are the logical operators (sometimes called boolean operators) and how to use them.
22+
- What the `if`, `if ... else` statements are and how to use them.
23+
- How to declare variables of types `char`, `int`, `unsigned int`.
24+
- How to print the values of variables of type `char`, `int`, `unsigned int` with `printf`.
25+
- How to use the `while` loop.
26+
- How to use variables with the `while` loop.
27+
- How to print variables using `printf`.
28+
- What is the `ASCII` character set.
29+
- What are the purpose of the `gcc` flags `-m32` and `-m64`.
30+
31+
### Tasks
32+
33+
| Task | File | Description |
34+
| ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
35+
| 0. Positive anything is better than negative nothing | [0-positive_or_negative.c](./0-positive_or_negative.c) | Writes a program that assigns a random number to the variable `n` each time it is executed and prints whether the number stored in the variable `n` is positive or negative. |
36+
| 1. The last digit | [1-last_digit.c](./1-last_digit.c) | Writes a program that assigns a random number to the variable `n` each time it is executed and prints the last digit of the number stored in the variable `n`. |
37+
| 2. I sometimes suffer from insomnia. And when I can't fall asleep, I play what I call the alphabet game | [2-print_alphabet.c](./2-print_alphabet.c) | Writes a program that prints the alphabet in lowercase, followed by a new line. |
38+
| 3. alphABET | [3-print_alphabets.c](./3-print_alphabets.c) | Writes a program that prints the alphabet in lowercase, and then in uppercase, followed by a new line. |
39+
| 4. When I was having that alphabet soup, I never thought that it would pay off | [4-print_alphabt.c](./4-print_alphabt.c) | Writes a program that prints the alphabet in lowercase, followed by a new line, except `q` and `e`. |
40+
| 5. Numbers | [5-print_numbers.c](./5-print_numbers.c) | Writes a program that prints all single digit numbers of base 10 starting from `0`, followed by a new line. |
41+
| 6. Numberz | [6-print_numberz.c](./6-print_numberz.c) | Writes a program that prints all single digit numbers of base 10 starting from `0`, followed by a new line, using only `putchar` and without using any variable of type `char`. |
42+
| 7. Smile in the mirror | [7-print_tebahpla.c](./7-print_tebahpla.c) | Writes a program that prints the lowercase alphabet in reverse, followed by a new line. |
43+
| 8. Hexadecimal | [8-print_base16.c](./8-print_base16.c) | Writes a program that prints all the numbers of base 16 in lowercase, followed by a new line. |
44+
| 9. Patience, persistence and perspiration make an unbeatable combination for success | [9-print_comb.c](./9-print_comb.c) | Writes a program that prints all possible combinations of single-digit numbers. |
45+
| 10. Inventing is a combination of brains and materials. The more brains you use, the less material you need | [100-print_comb3.c](./100-print_comb3.c) | Writes a program that prints all possible different combinations of two digits. |
46+
| 11. The success combination in business is: Do what you do better... and: do more of what you do... | [101-print_comb4.c](./101-print_comb4.c) | Writes a program that prints all possible different combinations of three digits. |
47+
| 12. Software is eating the World | [102-print_comb5.c](./102-print_comb5.c) | Writes a program that prints all possible combinations of two two-digit numbers. |

0x02-functions_nested_loops/README.md

+46
Original file line numberDiff line numberDiff line change
@@ -1 +1,47 @@
11
# 0x02-functions_nested_loops
2+
3+
## Description
4+
5+
This project focuses on functions and nested loops in C. It covers how to define and use functions, how to use nested loops to perform repetitive tasks, and how to apply these concepts to solve problems effectively.
6+
7+
### Resources
8+
9+
#### Read or watch
10+
11+
- [Functions in C](https://www.geeksforgeeks.org/functions-in-c/)
12+
- [Nested Loops in C](https://www.tutorialspoint.com/cprogramming/c_nested_loops.htm)
13+
- [C Functions](https://www.programiz.com/c-programming/c-functions)
14+
- [C Programming - Functions](https://www.studytonight.com/c/functions-in-c.php)
15+
16+
### Learning Objectives
17+
18+
#### General
19+
20+
- What are nested loops and how to use them.
21+
- What is a function and how do you use functions.
22+
- What is the difference between a declaration and a definition of a function.
23+
- What is a prototype.
24+
- Scope of variables.
25+
- What are the `gcc` flags `-Wall -Werror -pedantic -Wextra -std=gnu89`.
26+
27+
### Tasks
28+
29+
| Task Name | File | Description |
30+
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
31+
| \_putchar | [0-putchar.c](./0-putchar.c) | Writes a program that prints `_putchar`, followed by a new line. |
32+
| I sometimes suffer from insomnia. And when I can't fall asleep, I play what I call the alphabet game | [1-alphabet.c](./1-alphabet.c) | Writes a function that prints the alphabet, in lowercase, followed by a new line. |
33+
| 10 x alphabet | [2-print_alphabet_x10.c](./2-print_alphabet_x10.c) | Writes a function that prints 10 times the alphabet, in lowercase, followed by a new line. |
34+
| islower | [3-islower.c](./3-islower.c) | Writes a function that checks for lowercase character. |
35+
| isalpha | [4-isalpha.c](./4-isalpha.c) | Writes a function that checks for alphabetic character. |
36+
| Sign | [5-sign.c](./5-sign.c) | Writes a function that prints the sign of a number. |
37+
| There is no such thing as absolute value in this world. You can only estimate what a thing is worth to you | [6-abs.c](./6-abs.c) | Writes a function that computes the absolute value of an integer. |
38+
| There are only 3 colors, 10 digits, and 7 notes; it's what we do with them that's important | [7-print_last_digit.c](./7-print_last_digit.c) | Writes a function that prints the last digit of a number. |
39+
| I'm federal agent Jack Bauer, and today is the longest day of my life | [8-24_hours.c](./8-24_hours.c) | Writes a function that prints every minute of the day of Jack Bauer, starting from 00:00 to 23:59. |
40+
| Learn your times table | [9-times_table.c](./9-times_table.c) | Writes a function that prints the 9 times table, starting with 0. |
41+
| a + b | [10-add.c](./10-add.c) | Writes a function that adds two integers and returns the result. |
42+
| 98 Battery Street, the OG | [11-print_to_98.c](./11-print_to_98.c) | Writes a function that prints all natural numbers from `n` to `98`, followed by a new line. |
43+
| The World looks like a multiplication-table, or a mathematical equation, which, turn it how you will, balances itself | [100-times_table.c](./100-times_table.c) | Writes a function that prints the `n` times table, starting with 0. |
44+
| Nature made the natural numbers; All else is the work of women | [101-natural.c](./101-natural.c) | Writes a program that computes and prints the sum of all the multiples of `3` or `5` below `1024` (excluded), followed by a new line. |
45+
| In computer class, the first assignment was to write a program to print the first 100 Fibonacci numbers. Instead, I wrote a program that would steal passwords of students | [102-fibonacci.c](./102-fibonacci.c) | Writes a program that prints the first 50 Fibonacci numbers, starting with `1` and `2`, followed by a new line. |
46+
| Even Liber Abbaci | [103-fibonacci.c](./103-fibonacci.c) | Writes a program that finds and prints the sum of the even-valued terms in the Fibonacci sequence whose values do not exceed `4,000,000`, followed by a new line. |
47+
| 100 Fibonacci numbers | [104-fibonacci.c](./104-fibonacci.c) | Writes a program that finds and prints the first 98 Fibonacci numbers, starting with `1` and `2`, followed by a new line. |

0 commit comments

Comments
 (0)