diff --git a/jmaths/src/main.c b/jmaths/src/main.c index aa6f0ec82be2168a63810e4b1f870a4d66eccb43..18eaabca2934c547911af3f8bf37e9ccc3c1a1f8 100644 --- a/jmaths/src/main.c +++ b/jmaths/src/main.c @@ -10,8 +10,6 @@ // DEFINE #define MIN(X, Y) (((X) < (Y)) ? (X) : (Y)) - - long PPCM(unsigned long m, unsigned long n); long PPCM_V2(unsigned long m, unsigned long n); long PPCD(unsigned long n, unsigned long m); diff --git a/palindrome/Makefile b/palindrome/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..83ef3363c6a2609f456ef17d6d3c0540c0e82a3f --- /dev/null +++ b/palindrome/Makefile @@ -0,0 +1,25 @@ +CC := gcc +CC_FLAGS := -Wall -Wextra + +BIN := bin +SRC := src +INCLUDE := include +LIB := lib +LIBRARIES := #Library flags like -lm -lncurses +EXECUTABLE := main + +all: $(BIN)/$(EXECUTABLE) + +run: clean all + clear + @echo "๐ Executing..." + ./$(BIN)/$(EXECUTABLE) + +$(BIN)/$(EXECUTABLE): $(SRC)/*.c + @echo "๐ง Building..." + $(CC) $(CC_FLAGS) -I $(INCLUDE) -L $(LIB) $^ -o $@ $(LIBRARIES) + +clean: + @echo "๐งน Clearing..." + -rm $(BIN)/* + diff --git a/palindrome/bin/main b/palindrome/bin/main new file mode 100755 index 0000000000000000000000000000000000000000..62d13bf567db2635ed6a80f002d3736176b82762 Binary files /dev/null and b/palindrome/bin/main differ diff --git a/palindrome/kreate.py b/palindrome/kreate.py new file mode 100644 index 0000000000000000000000000000000000000000..4b4fc4bdc2b54fb6421cbeffe56fbf9d93b994d4 --- /dev/null +++ b/palindrome/kreate.py @@ -0,0 +1,185 @@ +# * PROJ +# * Author: Jonas S. +# * Date: 11/07/21 +# ! OBJECTIVE +# ? CREATE A BASIC RUNNING PROJECT +# ? CREATE SIMPLE C OR HEADER FILE WITH HEADERS +# ? CREATE MAKEFILE +# ! NEED COLORAMA AND OS + + + + +import colorama +from colorama import Fore, Back + + +#HARD CODED STUFF +NAME = "Jonas S." +colorama.init() + +# ! FILE CREATION +def createFile(fileName, content): + with open(f"{fileName}", 'w', encoding = 'utf-8') as f: + f.write(content) + +def createHeaderFile(fileName): + from datetime import datetime + import os + from os import mkdir + + now = datetime.now() # current date and time + + content = ( + "/*\n" + f"\t* HEADER {fileName.upper()}\n" + f"\t* Author : {NAME}\n" + f"\t* Date : {now.strftime('%d/%m/%Y')}\n" + "\t! DESCRIPTION\n" + "*/\n\n" + f"#ifndef _{fileName.upper()}_H_\n" + f"#define _{fileName.upper()}_H_\n\n" + "// DEFINES\n\n" + "// PROTOTYPE FUNCTIONS\n\n" + "#endif" + ) + + if not os.path.exists('include'): + mkdir('include') + createFile(f"include/{fileName}.h", content) + +def createCodeFile(fileName): + from datetime import datetime + from datetime import datetime + import os + from os import mkdir + + now = datetime.now() # current date and time + + content = ( + "/*\n" + f"\t* CODE {fileName.upper()}\n" + f"\t* Author : {NAME}\n" + f"\t* Date : {now.strftime('%d/%m/%Y')}\n" + "\t! DESCRIPTION\n" + "*/\n\n" + ) + + # add basic printf if main + if fileName == "main": + content += "#include <stdio.h>\n\nint main()\n{\n\tprintf(\"ISSOU\\n\");\n\treturn 0;\n}" + + if not os.path.exists('src'): + mkdir('src') + createFile(f"src/{fileName}.c", content) + +def createMakefile(): + content = ( + "CC := gcc\n" + "CC_FLAGS := -Wall -Wextra\n\n" + + "BIN := bin\n" + "SRC := src\n" + "INCLUDE := include\n" + "LIB := lib\n" + "LIBRARIES := #Library flags like -lm -lncurses\n" + "EXECUTABLE := main\n\n" + + "all: $(BIN)/$(EXECUTABLE)\n\n" + + "run: clean all\n" + " clear\n" + " @echo \"๐ Executing...\"\n" + " ./$(BIN)/$(EXECUTABLE)\n\n" + + "$(BIN)/$(EXECUTABLE): $(SRC)/*.c\n" + " @echo \"๐ง Building...\"\n" + " $(CC) $(CC_FLAGS) -I $(INCLUDE) -L $(LIB) $^ -o $@ $(LIBRARIES)\n\n" + + "clean:\n" + " @echo \"๐งน Clearing...\"\n" + " -rm $(BIN)/*\n\n" + + ) + createFile("Makefile", content) + +def createDirStructure(): + import os + from os import mkdir + + if not os.path.exists('bin'): + mkdir('bin') + if not os.path.exists('build'): + mkdir('build') + if not os.path.exists('include'): + mkdir('include') + if not os.path.exists('src'): + mkdir('src') + +# ! MENU CREATION +def createCompleteProject(): + # Base structure (SRC, BUILD, INCLUDE, BIN) + createDirStructure() + print(f"{Fore.GREEN}+ BASIC STRUCTURE CREATED{Fore.RESET}") + # Makefile + createMakefile() + print(f"{Fore.GREEN}+ MAKEFILE CREATED{Fore.RESET}") + # Main + createCodeFile("main") + print(f"{Fore.GREEN}+ MAIN.C FILE CREATE{Fore.RESET}") + +def createCodeHeader(name): + # Code + createCodeFile(name) + print(f"{Fore.GREEN}+ CODE FILE CREATED{Fore.RESET}") + # Header + createHeaderFile(name) + print(f"{Fore.GREEN}+ HEADER FILE CREATED{Fore.RESET}") + + + +# ! MENU +def menu(): + choice = input( + "1 - COMPLETE PROJECT \n" + "2 - CODE + HEADER \n" + "3 - CODE ONLY \n" + "4 - HEADER ONLY \n" + "5 - MAKEFILE ONLY \n" + "\n" + + ) + + # PROJECT + if choice == '1': + print(f"{Fore.BLUE}FULL PROJECT IS BEING CREATED.{Fore.RESET}") + createCompleteProject() + + # CODE + HEADER + elif choice == '2': + print(f"{Fore.BLUE}A CODE AND HEADER FILE ARE BEING CREATED.{Fore.RESET}") + createCodeHeader(input("WHAT FILE NAME DO YOU WANT : ")) + + # CODE + elif choice == '3': + print(f"{Fore.BLUE}A CODE FILE IS BEING CREATED.{Fore.RESET}") + createCodeFile(input("WHAT FILE NAME DO YOU WANT : ")) + print(f"{Fore.GREEN}+ CODE FILE CREATED{Fore.RESET}") + + # HEADER + elif choice == '4': + print(f"{Fore.BLUE}A HEADER FILE IS BEING CREATED.{Fore.RESET}") + createHeaderFile(input("WHAT FILE NAME DO YOU WANT : ")) + print(f"{Fore.GREEN}+ CODE FILE CREATED{Fore.RESET}") + + # MAKEFILE + elif choice == '5': + print(f"{Fore.BLUE}A HEADER FILE IS BEING CREATED.") + createMakefile() + print(f"{Fore.GREEN}+ MAKEFILE CREATED{Fore.RESET}") + +if __name__ == "__main__": + menu() + + + diff --git a/palindrome/src/main.c b/palindrome/src/main.c new file mode 100644 index 0000000000000000000000000000000000000000..4b7ced512260e73920456501bfe08bc1f9cd264d --- /dev/null +++ b/palindrome/src/main.c @@ -0,0 +1,37 @@ +/* + * CODE MAIN + * Author : Jonas S. + * Date : 06/10/2021 + ! DESCRIPTION +*/ + +#include <stdio.h> +#include <stdbool.h> +#include <stdint.h> +#include <string.h> + + +// PROTO +bool checkPalindrome(char *tab); + + +int main() +{ + char pal[] = "kayak"; + + if (checkPalindrome(pal)) + { + printf("PAL"); + return 0; + } + printf("NOT PAL"); +} + +bool checkPalindrome(char *tab) +{ + for (uint64_t i = 0; i < strlen(tab); i++) + { + if(tab[i] != tab[i*(-1) - 1]){return false;} + } + return true; +} \ No newline at end of file diff --git a/tab_maipulation/Makefile b/tab_maipulation/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..83ef3363c6a2609f456ef17d6d3c0540c0e82a3f --- /dev/null +++ b/tab_maipulation/Makefile @@ -0,0 +1,25 @@ +CC := gcc +CC_FLAGS := -Wall -Wextra + +BIN := bin +SRC := src +INCLUDE := include +LIB := lib +LIBRARIES := #Library flags like -lm -lncurses +EXECUTABLE := main + +all: $(BIN)/$(EXECUTABLE) + +run: clean all + clear + @echo "๐ Executing..." + ./$(BIN)/$(EXECUTABLE) + +$(BIN)/$(EXECUTABLE): $(SRC)/*.c + @echo "๐ง Building..." + $(CC) $(CC_FLAGS) -I $(INCLUDE) -L $(LIB) $^ -o $@ $(LIBRARIES) + +clean: + @echo "๐งน Clearing..." + -rm $(BIN)/* + diff --git a/tab_maipulation/bin/main b/tab_maipulation/bin/main new file mode 100755 index 0000000000000000000000000000000000000000..15a0676340ae8c73cad55c20505cbee16429f5a0 Binary files /dev/null and b/tab_maipulation/bin/main differ diff --git a/tab_maipulation/kreate.py b/tab_maipulation/kreate.py new file mode 100644 index 0000000000000000000000000000000000000000..4b4fc4bdc2b54fb6421cbeffe56fbf9d93b994d4 --- /dev/null +++ b/tab_maipulation/kreate.py @@ -0,0 +1,185 @@ +# * PROJ +# * Author: Jonas S. +# * Date: 11/07/21 +# ! OBJECTIVE +# ? CREATE A BASIC RUNNING PROJECT +# ? CREATE SIMPLE C OR HEADER FILE WITH HEADERS +# ? CREATE MAKEFILE +# ! NEED COLORAMA AND OS + + + + +import colorama +from colorama import Fore, Back + + +#HARD CODED STUFF +NAME = "Jonas S." +colorama.init() + +# ! FILE CREATION +def createFile(fileName, content): + with open(f"{fileName}", 'w', encoding = 'utf-8') as f: + f.write(content) + +def createHeaderFile(fileName): + from datetime import datetime + import os + from os import mkdir + + now = datetime.now() # current date and time + + content = ( + "/*\n" + f"\t* HEADER {fileName.upper()}\n" + f"\t* Author : {NAME}\n" + f"\t* Date : {now.strftime('%d/%m/%Y')}\n" + "\t! DESCRIPTION\n" + "*/\n\n" + f"#ifndef _{fileName.upper()}_H_\n" + f"#define _{fileName.upper()}_H_\n\n" + "// DEFINES\n\n" + "// PROTOTYPE FUNCTIONS\n\n" + "#endif" + ) + + if not os.path.exists('include'): + mkdir('include') + createFile(f"include/{fileName}.h", content) + +def createCodeFile(fileName): + from datetime import datetime + from datetime import datetime + import os + from os import mkdir + + now = datetime.now() # current date and time + + content = ( + "/*\n" + f"\t* CODE {fileName.upper()}\n" + f"\t* Author : {NAME}\n" + f"\t* Date : {now.strftime('%d/%m/%Y')}\n" + "\t! DESCRIPTION\n" + "*/\n\n" + ) + + # add basic printf if main + if fileName == "main": + content += "#include <stdio.h>\n\nint main()\n{\n\tprintf(\"ISSOU\\n\");\n\treturn 0;\n}" + + if not os.path.exists('src'): + mkdir('src') + createFile(f"src/{fileName}.c", content) + +def createMakefile(): + content = ( + "CC := gcc\n" + "CC_FLAGS := -Wall -Wextra\n\n" + + "BIN := bin\n" + "SRC := src\n" + "INCLUDE := include\n" + "LIB := lib\n" + "LIBRARIES := #Library flags like -lm -lncurses\n" + "EXECUTABLE := main\n\n" + + "all: $(BIN)/$(EXECUTABLE)\n\n" + + "run: clean all\n" + " clear\n" + " @echo \"๐ Executing...\"\n" + " ./$(BIN)/$(EXECUTABLE)\n\n" + + "$(BIN)/$(EXECUTABLE): $(SRC)/*.c\n" + " @echo \"๐ง Building...\"\n" + " $(CC) $(CC_FLAGS) -I $(INCLUDE) -L $(LIB) $^ -o $@ $(LIBRARIES)\n\n" + + "clean:\n" + " @echo \"๐งน Clearing...\"\n" + " -rm $(BIN)/*\n\n" + + ) + createFile("Makefile", content) + +def createDirStructure(): + import os + from os import mkdir + + if not os.path.exists('bin'): + mkdir('bin') + if not os.path.exists('build'): + mkdir('build') + if not os.path.exists('include'): + mkdir('include') + if not os.path.exists('src'): + mkdir('src') + +# ! MENU CREATION +def createCompleteProject(): + # Base structure (SRC, BUILD, INCLUDE, BIN) + createDirStructure() + print(f"{Fore.GREEN}+ BASIC STRUCTURE CREATED{Fore.RESET}") + # Makefile + createMakefile() + print(f"{Fore.GREEN}+ MAKEFILE CREATED{Fore.RESET}") + # Main + createCodeFile("main") + print(f"{Fore.GREEN}+ MAIN.C FILE CREATE{Fore.RESET}") + +def createCodeHeader(name): + # Code + createCodeFile(name) + print(f"{Fore.GREEN}+ CODE FILE CREATED{Fore.RESET}") + # Header + createHeaderFile(name) + print(f"{Fore.GREEN}+ HEADER FILE CREATED{Fore.RESET}") + + + +# ! MENU +def menu(): + choice = input( + "1 - COMPLETE PROJECT \n" + "2 - CODE + HEADER \n" + "3 - CODE ONLY \n" + "4 - HEADER ONLY \n" + "5 - MAKEFILE ONLY \n" + "\n" + + ) + + # PROJECT + if choice == '1': + print(f"{Fore.BLUE}FULL PROJECT IS BEING CREATED.{Fore.RESET}") + createCompleteProject() + + # CODE + HEADER + elif choice == '2': + print(f"{Fore.BLUE}A CODE AND HEADER FILE ARE BEING CREATED.{Fore.RESET}") + createCodeHeader(input("WHAT FILE NAME DO YOU WANT : ")) + + # CODE + elif choice == '3': + print(f"{Fore.BLUE}A CODE FILE IS BEING CREATED.{Fore.RESET}") + createCodeFile(input("WHAT FILE NAME DO YOU WANT : ")) + print(f"{Fore.GREEN}+ CODE FILE CREATED{Fore.RESET}") + + # HEADER + elif choice == '4': + print(f"{Fore.BLUE}A HEADER FILE IS BEING CREATED.{Fore.RESET}") + createHeaderFile(input("WHAT FILE NAME DO YOU WANT : ")) + print(f"{Fore.GREEN}+ CODE FILE CREATED{Fore.RESET}") + + # MAKEFILE + elif choice == '5': + print(f"{Fore.BLUE}A HEADER FILE IS BEING CREATED.") + createMakefile() + print(f"{Fore.GREEN}+ MAKEFILE CREATED{Fore.RESET}") + +if __name__ == "__main__": + menu() + + + diff --git a/tab_maipulation/src/main.c b/tab_maipulation/src/main.c new file mode 100644 index 0000000000000000000000000000000000000000..57366f526569408569b2d00e547c5e1ffc141f1e --- /dev/null +++ b/tab_maipulation/src/main.c @@ -0,0 +1,78 @@ +/* + * MIN TAB + * Author : Jonas S. + * Date : 06/10/2021 + ! FIND THE SMALLEST VALUE IN A TAB +*/ + +#include <stdio.h> +#include <stdint.h> + +//DEFINES +#define TAB_SIZE 7 + +// PROTO +void tab_get_smallest_value(double *tab, uint64_t tabSize, uint64_t *index, double *value); +void tab_lth_sort(double *tab, uint64_t tabSize); + +int main() +{ + uint64_t index = 0; + double value = 0; + double tab[TAB_SIZE] = {-10, 2, 3, -5, 1, 6,-9}; + + tab_get_smallest_value(tab, TAB_SIZE, &index, &value); + printf("Value : %lf | Index : %ld\n", value, index); + + tab_get_smallest_value((tab+2), TAB_SIZE-2, &index, &value); + printf("Value : %lf | Index : %ld\n", value, index); + + + + // Print tab + for (uint64_t i = 0; i < TAB_SIZE; i++) + { + printf(" %lf |", tab[i]); + } + + printf("\n"); + + tab_lth_sort(tab, TAB_SIZE); + + // Print tab + for (uint64_t i = 0; i < TAB_SIZE; i++) + { + printf(" %lf |", tab[i]); + } + + + return 0; +} + +void tab_get_smallest_value(double *tab, uint64_t tabSize, uint64_t *index, double *value) +{ + *value = 0; + for (uint64_t i = 0; i < tabSize; i++) + { + if (*value > tab[i]) + { + *value = tab[i]; + *index = i; + } + } +} + +void tab_lth_sort(double *tab, uint64_t tabSize) +{ + uint64_t min_i; + double min_v, tmp_v; + + for (uint64_t i = 0; i < tabSize; i++) + { + tab_get_smallest_value(tab+i, tabSize-i, &min_i, &min_v); + printf("DEBUG - Smallest Value : %lf | Smallest Index : %ld\n", min_v, min_i); + tmp_v = tab[i]; + tab[i + min_i] = min_v; + tab[min_i] = tmp_v; + } +} \ No newline at end of file