СОДЕРЖИМОЕ БАССЕЙНА
-
День 01: Shell00 - Командная строка Unix
-
День 02: Shell01 - Командная строка Unix
-
День 03: C00:
- ex00 = ft_putchar.c
- ex01 = ft_print_alphabet.c
- ex02 = ft_print_reverse_alphabet.c
- ex03 = ft_print_numbers.c
- ex04 = ft_is_negative.c
- ex05 = ft_print_comb.c
- ex06 = ft_print_comb2.c
- ex07 = ft_putnbr.c
- ex08 = ft_print_combn.c
-
День 04: C01:
- ex00 = ft_ft.c
- ex01 = ft_ultimate_ft.c
- ex02 = ft_swap.c
- ex03 = ft_div_mod.c
- ex04 = ft_ultimate_div_mod.c
- ex05 = ft_putstr.c
- ex06 = ft_strlen.c
- ex07 = ft_rev_int_tab.c
- ex08 = ft_sort_int_tab.c
-
День 05-07: Rush00 - Написать программу отображения индивидуальных сеток с различными размерами.
-
День 08: C02:
- ex00 = ft_strcpy.c
- ex01 = ft_strncpy.c
- ex02 = ft_str_is_alpha.c
- ex03 = ft_str_is_numeric.c
- ex04 = ft_str_is_lowercase.c
- ex05 = ft_str_is_uppercase.c
- ex06 = ft_str_is_printable.c
- ex07 = ft_strupcase.c
- ex08 = ft_strlowcase.c
- ex09 = ft_strcapitalize.c
- ex10 = ft_strlcpy.c
- ex11 = ft_putstr_non_printable.c
- ex12 = ft_print_memory.c
-
День 09: C03:
- ex00 = ft_strcmp.c
- ex01 = ft_strncmp.c
- ex02 = ft_strcat.c
- ex03 = ft_strncat.c
- ex04 = ft_strstr.c
- ex05 = ft_strlcat.c
-
День 10: C04:
- ex00 = ft_strlen.c
- ex01 = ft_putstr.c
- ex02 = ft_putnbr.c
- ex03 = ft_atoi.c
- ex04 = ft_putnbr_base.c
- ex05 = ft_atoi_base.c
-
День 11: C05:
- ex00 = ft_iterative_factorial.c
- ex01 = ft_recursive_factorial.c
- ex02 = ft_iterative_power.c
- ex03 = ft_recursive_power.c
- ex04 = ft_fibonacci.c
- ex05 = ft_sqrt.c
- ex06 = ft_is_prime.c
- ex07 = ft_find_next_prime.c
- ex08 = ft_ten_queens_puzzle.c
-
День 12-14: Rush01 - Написать программу решающую логическую головоломку
Небоскребы
(skyscapers
). -
День 15: C06:
- ex00 = ft_print_program_name.c
- ex01 = ft_print_params.c
- ex02 = ft_rev_params.c
- ex03 = ft_sort_params.c
-
День 16: C07:
- ex00 = ft_strdup.c
- ex01 = ft_range.c
- ex02 = ft_ultimate_range.c
- ex03 = ft_strjoin.c
- ex04 = ft_convert_base.c
- ex05 = ft_split.c
-
День 17: C08:
- ex00 = ft.h
- ex01 = ft_boolean.h
- ex02 = ft_abs.h
- ex03 = ft_poin.h
- ex04 = ft_strs_to_tab.h | ft_strs_to_tab.c
- ex05 = ft_show_tab.h | ft_show_tab.c
-
День 18: C09:
- ex00 = libft_creator.sh | ft_putchar.c | ft_swap.c | ft_putstr.c | ft_strlen.c | ft_strcmp.c
- ex01 = Makefile
- ex02 = ft_split.c
-
День 19-21: Rush02.
-
День 22: C10:
- ex00 = ft_display_file
- ex01 = ft_cat
- ex02 = ft_tail
- ex03 = ft_hexdump
-
День 23: C11:
- ex00 = ft_foreach.c
- ex01 = ft_map.c
- ex02 = ft_any.c
- ex03 = ft_count_if.c
- ex04 = ft_is_sort.c
- ex05 = do-op
- ex06 = ft_sort_string_tab.c
- ex07 = ft_advanced_sort_string_tab.c
-
День 24: C12:
- ex00 = ft_create_elem.c | ft_list.h
- ex01 = ft_list_push_front.c | ft_list.h
- ex02 = ft_list_size.c | ft_list.h
- ex03 = ft_list_last.c | ft_list.h
- ex04 = ft_list_push_back.c | ft_list.h
- ex05 = ft_list_push_strs.c | ft_list.h
- ex06 = ft_list_clear.c | ft_list.h
- ex07 = ft_list_at.c | ft_list.h
- ex08 = ft_list_reverse.c
- ex09 = ft_list_foreach.c | ft_list.h
- ex10 = ft_list_foreach_if.c | ft_list.h
- ex11 = ft_list_find.c | ft_list.h
- ex12 = ft_list_remove_if.c | ft_list.h
- ex13 = ft_list_merge.c | ft_list.h
- ex14 = ft_list_sort.c | ft_list.h
- ex15 = ft_list_reverse_fun.c | ft_list.h
- ex16 = ft_sorted_list_insert.c | ft_list.h
- ex17 = ft_sorted_list_merge.c | ft_list.h
-
День 25: C13:
- ex00 = btree_create_node.c | ft_btree.h
- ex01 = btree_apply_prefix.c | ft_btree.h
- ex02 = btree_apply_infix.c | ft_btree.h
- ex03 = btree_apply_suffix.c | ft_btree.h
- ex04 = btree_insert_data.c | ft_btree.h
- ex05 = btree_search_item.c | ft_btree.h
- ex06 = btree_level_count.c | ft_btree.h
- ex07 = btree_apply_by_level.c | ft_btree.h
-
Финальный проект : BSQ - Написать программу, которая находит самый большой квадрат на данной карте и отображает его.
• Этот репозиторий содержит множество версий выполненных и закомментированных задач на каждый день самого первого бассейна по Си.
• На данный момент выполнена работа по проверке заданий на корректную работоспособность у папки Exam_C
, shell00
, shell01
, Rush00
и папок от с00
до с13
включительно.
• Каждая папка каждого дня бассейна
содержит pdf файл с заданиями написанные на английском либо французском языке.
• Также, в самих папках каждого дня бассейна
будут подпапки содержащие в себе одиночный файл(или группу файлов) с требуемым названием, хранящие внутри себя несколько версий выполения требуемого задния. Эти версии выполнения задания в файле будут разделены между собой тройной строкой комментария.
• Если задание требует содержать в себе несколько файлов(такие задания будут ближе к концу), то версии его выполнения будут разделены по подпапкам.
Например:
"./с10/ex06/Solution_00/",
"./с10/ex06/Solution_01/",
"./с10/ex06/Solution_02/",
и т.д.
• Так же в папке выполненого задания может содержаться тестовый файл или папка с тестовыми файлами, скомпилировав которые можно посмотреть как работает требуемая в заданиии функция(или несколько функций).
Чтобы разобраться в заданиях используйте обучающие видео
Школы 42
на 10-30 минут с теорией и примерами(используйте в плеере функцию субтитров и их перевода на нужный вам язык):| Shell and Git video | C00 video | C01 video | C05 video| C06 video | C07 video | C08 video | C09 video | C11 video | C12 video | C13 video |
Для корректного отображения содержимого файлов, этого репозитория - склонируйте репозиторий к себе на компьютер и открывайте файлы через любой удобный вам редактор кода.
Если кратко, то компиляция - это процесс трансляции файла с исходным кодом на языке Си в машинный код, который будет понятен для центрального процессора. Это нужно для того чтобы мы могли запустить нашу программу и она, с помощь центрального процессора, могла выполнить запрограммированные нами действия.
Для компиляции нашей программы вначале перейдем в папку содержащую файл с написанным нами исходным кодом этой программы. Откройте окно терминала и с помощью команды cd
и адреса до папки
содержащей файл с исходным кодом перейдите в папку где он находится(допустим у меня он лежит в папке Документы
):
cd ~/Документы
Что бы скомпилировать, к примеру, файл test.c
содержащий написанный напи исходный код программы нужно:
- Написать в терминале
имя программы-компилятора
(с помощью которого вы будете перобразовывать наш файл с текстовыми инструкциями в машинный код понятный процессору). - Добавить
параметры компиляции
- И указать
путь до файла
содержащего исходный код нашей программмы(т.к. мы уже находимся в дериктории с этим файлом то адрес до файла мы запишем вот такtest.c
).
В итоге у вас должна получиться вот такая команда для компиляции файла с исходным кодом(на языке Cи) в исполняемый файл понятный процессору :
gcc -Wall -Werror -Wextra test.c
Далее нажимаем Enter и на выходе(если у вас система семейства unix
) получим файл a.out
. Если же у вас система windows
то на выходе вы получите файл a.exe
.
Исполняемый файл программы появится в той дерриктории, в которую вы перешли в через окно терминала перед компиляцией(в котором компилировали файл с исходным кодом).
Если у вас Windows
запустить программму можно просто написав в окне терминала путь к ней :
./a.exe
Но если у вас Linux
или др операционная система семейства Unix
, то для того чтобы система позволила вам запустить исполняемый файл с созданной вами программой, перед запуском необходимо дать этому исполняемому файлу права на выполнение! Иначе, система не позволит его запустить.
По этому дадим нашему исполняемому файлу
права на выполнение, вот такой командой, прописав в терминале < имя программы >, < аргументы выполения > и < путь до файла >:
chmod +x ./a.out
Чтобы запустить программу через терминал напишите в окне терминала путь к ней:
./a.out
Чтобы не терять время, можно все команды соединить в одну строку записав в окне терминала вот так:
gcc -Wall -Werror -Wextra test.c && chmod +x ./a.out && ./a.out