{"id":21605966,"url":"https://github.com/matheusvidal21/cppcodelab","last_synced_at":"2025-08-09T21:15:47.605Z","repository":{"id":181678029,"uuid":"666817355","full_name":"matheusvidal21/CPPCodeLab","owner":"matheusvidal21","description":"Minhas soluções para exercícios em C++. Compartilho aqui minha abordagem para desafios e projetos, demonstrando meu progresso e habilidades na linguagem de programação.","archived":false,"fork":false,"pushed_at":"2023-07-16T23:30:37.000Z","size":645,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-24T19:16:41.881Z","etag":null,"topics":["cpp","oop"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matheusvidal21.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-15T17:12:17.000Z","updated_at":"2024-10-26T14:50:59.000Z","dependencies_parsed_at":"2023-07-16T19:53:34.136Z","dependency_job_id":null,"html_url":"https://github.com/matheusvidal21/CPPCodeLab","commit_stats":null,"previous_names":["matheusvidal21/cppcodelab"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusvidal21%2FCPPCodeLab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusvidal21%2FCPPCodeLab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusvidal21%2FCPPCodeLab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusvidal21%2FCPPCodeLab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matheusvidal21","download_url":"https://codeload.github.com/matheusvidal21/CPPCodeLab/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244242832,"owners_count":20421948,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","oop"],"created_at":"2024-11-24T20:18:23.650Z","updated_at":"2025-03-18T14:41:04.692Z","avatar_url":"https://github.com/matheusvidal21.png","language":"C++","readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"Recursividade/docs/cppcodelab1.png\" alt=\"Logo C++\"\u003e\u003c/p\u003e\n\nO repositório CPPCodeLab é um espaço dedicado para armazenar e compartilhar todo o meu aprendizado na jornada de programação em C++. Nele, você encontrará uma ampla variedade de desafios e projetos resolvidos, abrangendo conceitos essenciais como Programação Orientada a Objetos (POO), alocação dinâmica de memória, recursividade, manipulação de arquivos, busca binária, algoritmos de ordenação e muito mais. Este repositório serve como um registro do meu progresso e como um recurso valioso para revisar e fortalecer minhas habilidades em C++, além de compartilhar meu conhecimento com outros programadores.\n\n# 📚 Conteúdo\nO repositório está organizado da seguinte forma:\n\n- [`Algoritmos de ordenação`](Algoritmos%20de%20ordenação): Implementações de algoritmos como o Bubble Sort, Insertion Sort, Selection Sort, Merge Sort, entre outros, para organizar dados em ordem específica.\n\n- [`Busca binária`](Busca%20binária): Implementação, de forma recursiva e iterativa, do algoritmo de busca binária, uma técnica de busca eficiente em uma coleção ordenada de elementos.\n\n- [`Classes e Alocação Dinâmica`](Classes%20e%20Alocação%20Dinâmica): Utilização de classes em C++ para modelar objetos e realizar alocação de memória dinamicamente.\n\n- [`Herança e Classe Abstrata`](Herança%20e%20Classe%20Abstrata): Utilização do conceito de herança para estabelecer relações entre classes, permitindo a criação de hierarquias de objetos, e o uso de classes abstratas para fornecer funcionalidades comuns e estabelecer contratos para as classes derivadas.\n\n- [`Manipulação de arquivos`](Manipulação%20de%20arquivos): Interação com arquivos, como leitura, escrita e manipulação de dados, para realizar operações de entrada e saída.\n\n- [`Programação Orientada a Objetos`](Programação%20Orientada%20a%20Objetos): Abordagem de programação que utiliza objetos, classes, herança e encapsulamento para organizar e estruturar o código.\n\n- [`Recuperação de dados 'bin'`](Recuperação%20de%20dados%20'bin'): Manipulação de arquivos binários para armazenar e recuperar informações de forma eficiente.\n\n- [`Recursividade`](Recursividade/): Utilização de chamadas de função recursivas para solucionar problemas, onde uma função chama a si mesma até que uma condição de parada seja alcançada.\n\n# 🧠 Aprendizado na minha jornada em C++\nDurante minha jornada em C++ e Programação Orientada a Objetos, eu adquiri um conjunto valioso de habilidades e conhecimentos. Algumas das principais lições que aprendi ao longo do caminho incluem:\n\n- A importância de entender os conceitos fundamentais da linguagem, como sintaxe, tipos de dados, estruturas de controle e manipulação de funções.\n\n- A aplicação prática dos princípios de Programação Orientada a Objetos (POO) para criar programas modulares, reutilizáveis e de fácil manutenção.\n\n- Aprofundamento nas técnicas de alocação dinâmica de memória e gerenciamento adequado de recursos.\n\n- A familiarização com algoritmos de ordenação e busca, que são essenciais para lidar eficientemente com grandes conjuntos de dados.\n\n- A exploração da herança e polimorfismo, permitindo a criação de hierarquias de classes e a execução de código de forma flexível.\n\n- A manipulação de arquivos para armazenar e recuperar informações, proporcionando uma interação entre programas e o sistema de arquivos.\n\n- A compreensão dos benefícios da recursividade e sua aplicação em problemas específicos.\n- O uso de classes abstratas para estabelecer contratos e fornecer uma base para a implementação de classes derivadas.\n\n- O uso do Makefile para automatizar o processo de compilação e construção do projeto.\n\n- O uso do Git e GitHub para controle de versão e colaboração em equipe.\n\n- O uso de comandos no shell do Unix para executar tarefas e manipular o ambiente de desenvolvimento.\n\n- A compilação do código-fonte em C++ e o uso de flags para configurar opções de compilação.\n\n- A modularização dos códigos para promover a reutilização e a manutenibilidade do código.\n\n- A compreensão da sobrecarga de funções e a passagem de parâmetros em diferentes contextos.\n\n- A exploração da sobrecarga de operações, permitindo que operadores sejam usados de maneira personalizada em classes.\n\n- O uso de ponteiro genérico e ponteiro de função para lidar com diferentes tipos de dados e permitir flexibilidade no código.\n\n- A utilização de templates de funções para criar funções genéricas que funcionam com diferentes tipos de dados.\n\n- A compreensão e criação de diagramas de classe, casos de uso e sequência usando UML para modelar e visualizar a estrutura e o fluxo de um sistema.\n\n\nEssas lições e conquistas ao longo da minha jornada em C++ me permitiram aprimorar minhas habilidades de programação e expandir meu conhecimento em desenvolvimento de software.\n\n\n# 📖 Como utilizar\n1. Clonar o repositório: Comece clonando este repositório em sua máquina local usando o seguinte comando:\n```\nhttps://github.com/matheusvidal21/CPPCodeLab.git\n```\n\n2. Acessar a seção de exercícios: Navegue até a pasta correspondente aos exercícios de seu interesse.\n\n3. Visualizar a solução: Abra o arquivo de código-fonte da solução em um ambiente de desenvolvimento integrado (IDE) de sua preferência.\n\n4. Executar o código: Compile e execute o código para ver a solução em ação. Certifique-se de ter um ambiente configurado para compilar e executar programas em C++.\n\n5. Explorar outras soluções: Continue explorando as diferentes pastas para conferir minhas soluções para outros exercícios.\n\n# 🤝 Contribuições\nEste repositório é pessoal e destinado ao meu próprio aprendizado de C++ e Programação Orientada a Objetos. No entanto, contribuições são sempre bem-vindas! Se você tem soluções diferentes ou melhorias para os exercícios existentes, fique à vontade para contribuir.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheusvidal21%2Fcppcodelab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatheusvidal21%2Fcppcodelab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheusvidal21%2Fcppcodelab/lists"}