77 |
78 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "java.project.sourcePaths": [
3 | "."
4 | ]
5 | }
--------------------------------------------------------------------------------
/0. Setup Inicial/README.md:
--------------------------------------------------------------------------------
1 | # Setup Inicial
2 |
3 | Esta aula fornece instruções passo a passo para preparar o ambiente de desenvolvimento Java (mas que poderá ser adaptada para outras linguagens de programação) e facilitar a colaboração em projetos de programação.
4 |
5 | ## GitHub
6 |
7 | *Uma conta no GitHub é essencial para compartilhar, colaborar e armazenar projetos de programação e desenvolvimento de forma eficiente.*
8 |
9 | > **Crie sua conta gratuíta**
10 |
11 |
14 |
15 | > Gere uma **PERSONAL ACCESS TOKEN**
16 |
17 | *Um Personal Access Token é utilizado para conceder acesso seguro a aplicativos e serviços, permitindo que eles interajam com sua conta GitHub sem a necessidade de compartilhar sua senha.*
18 |
19 | 1. Faça seu login no [GitHub](https://github.com/)
20 | 2. Gere um access token: Your Profile >> Settings >> Developer settings >> Personal access tokens >> Tokens (classic) >> Generate new token > Generate new token (classic)
21 | - *Note*: Ecolha um nome para o token
22 | - *Expiration*: No expiration
23 | - *Select scopes*: Selecione todos os campos
24 | - *Generate token*
25 | - *Copie a String referente ao token*
26 | - *Salve em um lugar seguro que você consiga consultar posteriormente*
27 | 3. Criação e configurações iniciais concluídas!
28 |
29 | **P.S: Você também tem a opção de gerar uma [chave SSH](https://github.com/settings/keys) para estabelecer uma conexão entre sua máquina e o GitHub utilizando o protocolo de comunicação SSH. Para mais informações, acesse: https://youtu.be/xeIErHwL53Q**
30 |
31 | ---
32 |
33 | ## Instalações no Sistema Operacional Windows:
34 |
35 | ### Visual Studio Code
36 |
37 | *O Visual Studio Code (VS Code) é um editor de código de código aberto desenvolvido pela Microsoft e pode ser usado com uma variedade de linguagens de programação.*
38 |
39 | > Instalação
40 |
41 | 1. Entre no site oficial do Visual Studio Code e faça o [DOWNLOAD](https://code.visualstudio.com/download) "Download for windows"
42 | 2. Espere o download concluir e execute o arquivo Install -> Next -> Next ... Finish
43 | 3. Pesquise o VS Code nas suas aplicações
44 | 4. Instalação concluída!
45 |
46 | > Configuração para **desenvolvimento Java**:
47 |
48 | *O suporte para Java no Visual Studio Code é fornecido por meio de uma ampla variedade de extensões.*
49 |
50 | 1. [Install the Coding Pack for Java](https://aka.ms/vscode-java-installer-win)
51 | 2. Abrir o Vs code
52 | 3. Abrir o menu de extensões: (Ctrl + Shift + X)
53 | 4. Colar os comandos abaixo e fazer as instalações:
54 | 5. Colar os comandos abaixo e fazer as instalações:
55 | - `vscjava.vscode-java-pack`
56 | 6. Configuração concluída!
57 |
58 | ### Git
59 |
60 | *Git é um sistema de controle de versão distribuído usado para rastrear alterações em projetos de software e facilitar a colaboração entre desenvolvedores.*
61 |
62 | > Instalação
63 |
64 | 1. Entre no site oficial do [git](https://git-scm.com/download/win)
65 | 2. Escolha a opção Windows e o instalador será baixado automáticamente
66 | 3. Mantenha as opções pré-selecionadas
67 | 4. Next > Install
68 | 5. Antes de finaizar a instalação, selecione a opção "Lauch Git Bash"
69 |
70 | > Configurações Iniciais
71 |
72 | 1. No Git Bash:
73 | 2. Verifique se o GIT está instalado: `git --version`
74 | 3. Configure o nome de usuário: `git config --global user.name "Seu nome"`
75 | 4. Configure o endereço de e-mail (**o mesmo do GitHub**): `git config --global user.email seu_email_do_GitHub@email.br`
76 | 5. Verifique as configurações: `git config --list`
77 | 6. Instalação e configurações iniciais concluídas!
78 |
79 | ---
80 |
81 | ## Instalações no Sistema Operacional Linux (distro Ubuntu):
82 |
83 | ### Visual Studio Code
84 |
85 | *O Visual Studio Code (VS Code) é um editor de código de código aberto desenvolvido pela Microsoft e pode ser usado com uma variedade de linguagens de programação.*
86 |
87 | > Instalação
88 |
89 | 1. Entre no site oficial do Visual Studio Code
90 | 2. Faça o [DOWNLOAD](https://code.visualstudio.com/) do arquivo com a extensão .deb
91 | 3. Escolha a opção Open With: Software install (default)
92 | 4. Pesquise o VS code nas suas aplicações
93 | 5. Intalação concluída!
94 |
95 | > Configuração para **desenvolvimento Java**:
96 |
97 | *O suporte para Java no Visual Studio Code é fornecido por meio de uma ampla variedade de extensões.*
98 |
99 |
⚠️ INSTALAÇÃO OPENJDK 17
100 |
101 | - Abra o terminal (Ctrl + Alt + t)
102 | - Verifique se você tem o Java instalado: java --version
103 | - Caso não, instale: sudo apt-get install openjdk-17-jdk
104 | - Verifique se o Java realmente foi instalado e em qual caminho:
105 | - java --version
106 | - sudo update-alternatives --config java
107 | - Copie e guarde o caminho de instalação do Java, no meu caso: /usr/lib/jvm/java-17-openjdk-amd64/bin/java
108 | - Configure a variável em ambiente JAVA_HOME:
109 | - Abra o arquivo de configuração .bashrc. (Vou utilizar o editor gedit): sudo gedit ~/.bashrc
110 | - Copie o código abaixo e cole no final do arquivo .bashrc (Observe o caminho do JAVA_HOME):
111 | - JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
112 | - export JAVA_HOME
113 | - export PATH=$PATH:$JAVA_HOME
114 | - Salve o arquivo .bashrc
115 | - Confira se as configurações foram salvas: cat ~/.bashrc
116 | - Feche o terminal e abra novamente
117 | - Conferir mais uma vez se o Java está instalado
118 | - Instalação e configurações iniciais concluídas!
119 |
120 | 2. Abrir o Vs code
121 | 3. Abrir o menu de extensões: (Ctrl + Shift + X)
122 | 4. Colar os comandos abaixo e fazer as instalações:
123 | - `vscjava.vscode-java-pack`
124 | 3. Configuração concluída!
125 |
126 | ### Git
127 |
128 | *Git é um sistema de controle de versão distribuído usado para rastrear alterações em projetos de software e facilitar a colaboração entre desenvolvedores.*
129 |
130 | > Instalação
131 |
132 | 1. Abra o terminal verifique se o GIT está instalado `git --version`
133 | 2. Para instalar o GIT, execute o comando: `sudo apt-get install git-all`
134 | 3. Verifique se o GIT agora está instalado: `git --version`
135 |
136 | > Configurações Iniciais
137 |
138 | 1. Feche o terminal e abra novamente:
139 | 2. Configure o nome de usuário: `git config --global user.name "Seu nome"`
140 | 3. Configure o endereço de e-mail: (Mesmo do GitHub) `git config --global user.email seuemail@email.br`
141 | 4. Verifique as configurações: `git config --list`
142 | 5. Instalação concluída!
143 |
144 | ---
145 | **P.S: Caso deseje as instalações para o Sistema Operacional [macOs](https://gist.github.com/cami-la/b17cc7a232d8461a5f8b0df42cb9f516), abre uma issue que eu posso acrescentar aqui! (:**
146 |
147 |
148 | ## Referências
149 |
150 | [1] GitHub. Disponível em: https://github.com/.
151 |
152 | [2] "Download Visual Studio Code." Visual Studio Code. Disponível em: https://code.visualstudio.com/download.
153 |
154 | [3] "Managing your personal access tokens." GitHub Documentation. Disponível em: https://docs.github.com/pt/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens.
155 |
156 | [4] "Java in Visual Studio Code." Visual Studio Code Documentation. Disponível em: https://code.visualstudio.com/docs/languages/java.
157 |
158 | [5] "Git - Downloads." Git SCM. Disponível em: https://git-scm.com/downloads.
159 |
160 | ## Autor
161 |
162 |
163 |
164 |
165 |
166 | Feito com ❤️ por Cami-la 👋🏽
167 |
--------------------------------------------------------------------------------
/1. Pensamento Computacional e Lógica de Programação/README.md:
--------------------------------------------------------------------------------
1 | # Pensamento Computacional e Lógica de Programação
2 |
3 | Nesta aula, abordaremos conceitos essenciais no mundo da programação. Começaremos com o "Pensamento Computacional", desenvolvendo habilidades analíticas para resolver problemas de forma estruturada. Em seguida, exploraremos a "Lógica de Programação", compreendendo a criação de algoritmos coesos. Além disso, teremos um primeiro contato com a história do Java, "Conhecendo a Linguagem de Programação Java", entendendo sua origem e evolução. Ao combinar esses elementos, você estará pronto para estabelecer bases sólidas em programação e criar soluções práticas e criativas.
4 |
5 | ## Pensamento Computacional
6 |
7 | Usar o pensamento computacional é ver um desafio ou problema, refletir sobre ele, separá-lo em partes, resolver cada uma dessas partes da maneira mais lógica e assertiva, para daí sim chegar a um resultado final.
8 |
9 | Dessa forma, podemos dividir o pensamento computacional em 4 pilares:
10 |
11 | 1. **Abstração:** reconhecer o que é mais importante na situação-problema, para deixar de lado o que não for essencial;
12 | 2. **Decomposição**: dividir o seu desafio em problemas menores, para facilitar a sua compreensão;
13 | 3. **Reconhecimento de padrão:** o que se assemelha no problema, quais as repetições e similaridades que ele tem e que podem auxiliar na sua resolução;
14 | 4. **Algoritmo:** propõe uma ordem e sequência de passos para resolver o desafio ou problema.
15 |
16 | ## O que é Lógica de Programação?
17 |
18 | A lógica de programação serve para traduzir os pensamentos humanos para o computador, já que os computadores funcionam através do código binário e não têm a mesma linha de raciocínio dos humanos.
19 |
20 | ### Algoritimo
21 |
22 | Os algoritmos fornecem uma abordagem sistemática e lógica para resolver problemas, garantindo que cada etapa seja claramente definida e possa ser executada em um número finito de passos.
23 |
24 | > **Descrição Narrativa**
25 |
26 | É a forma mais simples e próxima da sua língua nativa para escrever um código. Funciona como instruções de *Como trocar uma làmpada*, com instruções detalhadas do passo a passo;
27 |
28 | - Passo 1: *Certifique-se de que a lâmpada esteja desligada*: Antes de começar, verifique se a lâmpada está desligada. Se ela estava acesa, aguarde alguns minutos para que esfrie antes de prosseguir.
29 | - Passo 2: *Desenrosque a lâmpada antiga*: Segure o suporte da lâmpada com uma mão e, com a outra mão, gire a lâmpada no sentido anti-horário para desenroscá-la do soquete. Remova-a cuidadosamente.
30 | - Passo 3: *Coloque a nova lâmpada*: Com a lâmpada nova em mãos, insira-a no soquete e gire-a no sentido horário até que esteja bem fixa.
31 | - Passo 4: *Ligue a lâmpada*: Após colocar a nova lâmpada, ligue-a para verificar se está funcionando corretamente.
32 | - Passo 5: *Descarte a lâmpada antiga*: Lembre-se de descartar a lâmpada antiga de forma adequada, seguindo as normas de reciclagem ou descarte de resíduos eletrônicos da sua região.
33 |
34 | Pronto! As intruções de "Como trocar uma lâmpada" pode ser considerada um algoritmo, já que ela segue uma sequência lógica de etapas para alcançar um objetivo.
35 |
36 | > **Fluxograma**
37 |
38 | É uma forma de mostrar o passo a passo de uma maneira mais visual, utilizando elementos gráficos;
39 |
40 |
45 |
46 | > **Pseudocódigo**
47 |
48 | É a forma mais próxima de escrever um código que se assemelha a estrutura das linguagens de programação, como Java, Python e Javascript.
49 |
50 |
52 |
53 | ## Conhecendo a Linguagem de Programação Java
54 |
55 | > **História da Linguagem de Programação Java**
56 |
57 | - Java é uma linguagem de programação orientada a objetos desenvolvida na década de 90, na empresa Sun Microsystems e posteriormente adquirida pela Oracle em 2008.
58 | - Desde seu lançamento, em maio de 1995, a plataforma Java foi adotada mais rapidamente do que qualquer outra linguagem de programação na história da computação.
59 | - Tornou-se popular pelo seu uso na internet e está presente em navegadores, programas e jogos de computador, celular, calculadoras, e etc...
60 |
61 | > **Características Pertinentes da Linguagem Java**
62 |
63 | 1. **Plataforma Independente (Write Once, Run Anywhere - WORA)**: O código Java é compilado em bytecode, que é executado na Máquina Virtual Java (JVM). Isso permite que os programas Java sejam executados em qualquer plataforma que tenha uma implementação da JVM, tornando-os altamente portáteis.
64 | 2. **Orientação a Objetos**: Java é uma linguagem totalmente orientada a objetos, o que significa que a programação é feita através da criação e interação entre objetos, promovendo reutilização e modularidade.
65 | 3. **Compilação e Interpretação**: O código-fonte Java é compilado em bytecode pela compilação, mas o bytecode é interpretado pela JVM. Isso combina a eficiência da compilação com a portabilidade da interpretação.
66 | 4. **Linguagem Moderna**: Java continua a evoluir com novos recursos e melhorias a cada versão, incorporando conceitos mais modernos de programação.
67 | 5. **Documentação Rica**: A documentação oficial do Java é extensa e bem organizada, com as especificações da linguagem e da API amplamente disponíveis.
68 |
69 | > **Fases da Execução Java**
70 |
71 | 1. Escrevemos o seu código-fonte (arquivo com a extensão .java)
72 | 2. Utilizamos o JDK para compilar o seu código-fonte e gerar o arquivo bytecode (arquivo com a extensão .class)
73 | 3. Para executar o seu programa, a JVM lê o arquivo compilado (.class) e as bibliotecas padrões do Java que estão no JRE
74 |
75 |
77 |
78 | - **JDK** (Java Development Kit) - é o Kit de Desenvolvimento Java responsável por compilar código-fonte (.java) em bytecode (.class)
79 | - **JVM** (Java Virtual Machine) - é a Máquina Virtual do Java responsável por executar o bytecode (.class)
80 | - **JRE** (Java Runtime Environment) - Ambiente de Execução do Java que fornece as bibliotecas padrões do Java para o JDK compilar o seu código e para a JVM executar o seu programa
81 |
82 | > **Versões do Java**
83 |
84 | - **OpenJDK:** é uma implementação de código aberto da plataforma Java. Ele é desenvolvido e mantido pela comunidade de desenvolvedores em colaboração com a Oracle e outras empresas.
85 | - **LTS (Long-Term Support):** As versões LTS recebem atualizações regulares de segurança e correções de bugs durante um período específico de tempo, normalmente vários anos.
86 |
87 |
89 |
90 | ## Referências
91 |
92 | [1] Brainly. "Desafio de Pensamento Computacional." Disponível em: https://brainly.com.br/tarefa/28463278.
93 |
94 | [2] Rock Content. "Como criar um fluxograma de processo: guia completo." Disponível em: https://rockcontent.com/br/blog/fluxograma-de-processo/.
95 |
96 | [3] Eguá Tech. "IDEgua - A IDE mais top!" Disponível em: https://egua.tech/idegua/.
97 |
98 | [4] Gran Cursos Online. "Java: Entenda o que é a compilação de classes Java." Disponível em: https://blog.grancursosonline.com.br/java-compilacao-de-classes-java/.
99 |
100 | [5] Wikipedia. "Java version history." Disponível em: https://en.wikipedia.org/wiki/Java_version_history.
101 |
102 | [6] DIO - Digital Innovation One. "Dominando IDEs Java." Disponível em: https://web.dio.me/course/dominando-ides-java/learning/b0f1ae39-6af7-4a2c-8fc2-c73ae8463c84/?back=%2Fbrowse.
103 |
104 | ## Autor
105 |
106 |
107 |
108 |
109 |
110 | Feito com ❤️ por Cami-la 👋🏽
--------------------------------------------------------------------------------
/2. Tipos de Dados e Variáveis/README.md:
--------------------------------------------------------------------------------
1 | # Tipos de Dados e Variáveis Java
2 |
3 | Nesta aula abordaremos os fundamentos cruciais da linguagem Java, começando pelos tipos primitivos de dados para armazenar informações.
4 | Exploraremos variáveis e constantes para manipulação flexível de dados, entenderemos palavras reservadas essenciais para criar estruturas lógicas e focaremos no método main() como ponto de partida para a execução. Além disso, aprenderemos a exibir mensagens e resultados usando System.out.println(), e finalmente, descobriremos como interagir dinamicamente com os usuários ao receber entradas do teclado através da classe Scanner, proporcionando uma base sólida para construir programas Java com confiança.
5 |
6 |
7 | ## Tipos Primitivos de Dados Padrões do Java
8 |
9 | - Diferentes tipos de dados são utilizados para armazenar informações em um programa.
10 | - Cada tipo de dado possui um tamanho específico em termos de bytes, que determina a quantidade de espaço que ele ocupa na memória.
11 | - Esses tamanhos são importantes para otimizar o uso da memória e garantir que os valores sejam armazenados de forma adequada.
12 |
13 | Abaixo estão os tipos de dados primitivos em Java e seus respectivos tamanhos em bytes:
14 |
15 |
18 |
19 |
20 | ## Variável e Constante
21 |
22 | - Uma variável é uma estrutura que permite armazenar dados na memória durante a execução do programa, para processamento de informações. Como o nome sugere, pode ser modificada.
23 |
24 | ```java
25 | //Formas de declarar uma variável em Java
26 |
27 | String nome = "Cami";
28 |
29 | var nome = "Cami"; //A partir do Java 10
30 | ```
31 |
32 | - O Java não possui formalmente o conceito de constantes, assim como acontece em outras linguagens. Isso tem relação com a maneira como o Java lida com a referência com as variáveis, as definindo entre value-types e reference-types.
33 | - A maneira mais comum para “simular” constantes no Java é através da combinação das palavras-chave `static e final`.
34 |
35 | ```java
36 | //Forma de declarar uma "constante" em java
37 | static final String NOME = "Camila";
38 | ```
39 |
40 | ## Palavras Reservadas
41 |
42 | - Palavras reservadas do java, ou keywords (palavras-chave), são palavras que possuem significado específico no código.
43 | - Os programadores devem se atentar a essas palavras para que não as usem para qualquer outra coisa além daquilo que elas se propõem a fazer.
44 |
45 |
47 |
48 | - A convenção de nomenclatura em Java é uma regra a seguir quando se decide nomear seus identificadores, como classes, pacotes, variáveis, constantes, métodos, etc.
49 | - Convenção não é regra. Essas convenções são sugeridas por várias comunidades Java, como Oracle e Eclipse.
50 |
51 | ## Método `main()`
52 |
53 | - O método `main()` ele atua como o ponto de entrada para a execução do programa.
54 | - Quando você executa um programa Java, o sistema procura pelo método `main()` e começa a executar o código a partir desse ponto.
55 |
56 | ```java
57 | public class MeuPrograma {
58 | public static void main(String[] args) {
59 | System.out.println("Olá, mundo!");
60 | }
61 | }
62 |
63 | // Saída no console
64 | Olá, mundo!
65 | ```
66 |
67 | ## Saída de Dados no Java
68 |
69 | - É uma ferramenta essencial para depuração e comunicação com o usuário em programas Java.
70 | - Ele é frequentemente usado para exibir mensagens, valores de variáveis e resultados de cálculos durante a execução do programa.
71 |
72 | ```java
73 | System.out.println()
74 | ```
75 |
76 | ## Entrada de Dados no Java
77 |
78 | - O `Scanner` permite que você leia diversos tipos de dados da entrada padrão (geralmente o teclado).
79 | - Aqui está um exemplo de como usar a classe `Scanner` para ler diferentes tipos de dados:
80 |
81 | ```java
82 | import java.util.Scanner;
83 |
84 | public class EntradaDadosComScanner {
85 | public static void main(String[] args) {
86 | // Criar uma instância de Scanner para ler da entrada padrão (teclado)
87 | Scanner scanner = new Scanner(System.in);
88 |
89 | // Ler um número inteiro
90 | System.out.print("Digite um número inteiro: ");
91 | int numeroInteiro = scanner.nextInt();
92 | System.out.println("Você digitou o número inteiro: " + numeroInteiro);
93 |
94 | // Ler um número de ponto flutuante
95 | System.out.print("Digite um número de ponto flutuante: ");
96 | double numeroDouble = scanner.nextDouble();
97 | System.out.println("Você digitou o número de ponto flutuante: " + numeroDouble);
98 |
99 | // Ler uma linha de texto
100 | scanner.nextLine(); // Consumir a quebra de linha pendente
101 | System.out.print("Digite uma linha de texto: ");
102 | String linhaTexto = scanner.nextLine();
103 | System.out.println("Você digitou a linha de texto: " + linhaTexto);
104 |
105 | // Fechar o Scanner para liberar recursos
106 | scanner.close();
107 | }
108 | }
109 | ```
110 | ---
111 |
112 | # Bora Praticar!
113 |
114 | 1. **Mensagem "Alô Mundo"**: Faça um Programa que mostre a mensagem "Alo mundo".
115 | 2. **Mensagem de Boas-Vindas**: Faça um Programa que peça um o nome do usuário e então mostre a mensagem "Seja bem-vindo(a) [nome do usuário]".
116 | 3. **Soma de Números Inteiros**: Faça um Programa que peça dois números inteiros e imprima a soma.
117 | 4. **Cálculo de Valor Total do Produto: Faça um Programa peça**: _Nome de um produto, Valor unitário deste produto e Quantidade do produto._
118 | Ao final, imprima a frase: "O Produto [nome do produto] com o valor unitário R$ [valor unitário] com a quantidade [quantidade do produto] custará o total de R$ [valor total do produto]."
119 | 5. **Conversão de Centímetros para Metros**: Crie um programa que converta centímetros para metros. O usuário deve informar a medida em centímetros, e o programa deve exibir a correspondente medida em metros. _(Lembre-se de que 1 metro é igual a 100 centímetros.)_
120 |
121 | > **Continue praticando:** https://wiki.python.org.br/EstruturaSequencial
122 |
123 | ## Referências
124 |
125 | [1] "Os Tipos Primitivos da Linguagem Java." Gran Cursos Online. Disponível em: https://blog.grancursosonline.com.br/os-tipos-primitivos-da-linguagem-java/.
126 |
127 | [2] "Tipos Primitivos." Mapas de Concursos de TI. Disponível em: http://mapaseconcursosdeti.blogspot.com/2012/12/tipos-primitivos.html.
128 |
129 | [3] "As 52 Palavras Reservadas do Java." Linha de Código. Disponível em: http://www.linhadecodigo.com.br/artigo/83/as-52-palavras-reservadas-do-java.aspx.
130 |
131 | [4] "Estrutura Sequencial." Python Brasil. Disponível em: https://wiki.python.org.br/EstruturaSequencial.
132 |
133 |
134 | ## Autor
135 |
136 |
137 |
138 |
139 |
140 | Feito com ❤️ por Cami-la 👋🏽
--------------------------------------------------------------------------------
/3. Operadores e Estrutura de Decisão/README.md:
--------------------------------------------------------------------------------
1 | # Operadores e Estrutura de Decisão
2 |
3 | > **Operadores Java**
4 |
5 | Operadores são símbolos que representam atribuições, cálculos e ordem dos dados.
6 |
7 |
54 |
55 | > **Tabela verdade**
56 |
57 | Uma tabela verdade é uma representação tabular de todas as combinações possíveis de valores de entrada (geralmente valores booleanos, ou seja, verdadeiro ou falso) para uma expressão lógica.
58 |
59 |
62 |
63 | ## Estrutura de Decisão
64 |
65 | As estruturas condicionais geralmente analisam expressões booleanas e, caso estas expressões sejam verdadeiras, um trecho do código é executado. No caso contrário, outro trecho do código é executado.
66 |
67 | > if
68 |
69 |
70 |
71 | Fluxograma para demonstrar o uso da instrução if.
72 |
73 | ```java
74 | // Programa Java para demonstrar o uso da instrução if.
75 | public class ExemploIf {
76 | public static void main(String[] args) {
77 | // definindo uma variável 'idade'
78 | int idade = 20;
79 | // verificando a idade
80 | if (idade > 18) {
81 | System.out.print("Idade é maior que 18");
82 | }
83 | }
84 | }
85 | ```
86 | > if/else
87 |
88 |
89 |
90 | Fluxograma para demonstrar o uso da instrução if-else.
91 |
92 | ```java
93 | // Um programa Java para demonstrar o uso da instrução if-else.
94 | // É um programa de número par e ímpar.
95 | public class ExemploIfElse {
96 | public static void main(String[] args) {
97 | // definindo uma variável
98 | int numero = 13;
99 | // Verificar se o número é divisível por 2 ou não
100 | if (numero % 2 == 0) {
101 | System.out.println("número par");
102 | } else {
103 | System.out.println("número ímpar");
104 | }
105 | }
106 | }
107 | ```
108 |
109 | > Operador ternário
110 |
111 |
112 |
113 | Fluxograma para demonstrar o uso da instrução if-else ternário.
114 |
115 | ```java
116 | // Um programa Java para demonstrar o uso da instrução if-else ternário.
117 | // É um programa de número par e ímpar.
118 | public class ExemploIfElseTernario {
119 | public static void main(String[] args) {
120 | int numero = 13;
121 | // Usando o operador ternário
122 | String resultado = (numero % 2 == 0) ? "número par" : "número ímpar";
123 | System.out.println(resultado);
124 | }
125 | }
126 | ```
127 |
128 | > if-else-if
129 |
130 |
131 |
132 | Fluxograma para demonstrar o uso da instrução if-else-if.
133 |
134 | ```java
135 | // Um programa Java para demonstrar o uso da instrução if-elseif-else encadeado.
136 | // É um programa de sistema de notas para reprovado, nota D, nota C, nota B, nota A e nota A+.
137 | public class ExemploIfElseIf {
138 | public static void main(String[] args) {
139 | int nota = 65;
140 | if (nota < 50) {
141 | System.out.println("reprovado");
142 | } else if (nota >= 50 && nota < 60) {
143 | System.out.println("nota D");
144 | } else if (nota >= 60 && nota < 70) {
145 | System.out.println("nota C");
146 | } else if (nota >= 70 && nota < 80) {
147 | System.out.println("nota B");
148 | } else if (nota >= 80 && nota < 90) {
149 | System.out.println("nota A");
150 | } else if (nota >= 90 && nota < 100) {
151 | System.out.println("nota A+");
152 | } else {
153 | System.out.println("Inválido!");
154 | }
155 | }
156 | }
157 | ```
158 |
159 | > swich case
160 |
161 |
162 |
163 | Fluxograma para demonstrar o uso da instrução switch-case.
164 |
165 | ```java
166 | // Um programa Java para demonstrar o uso da instrução switch case.
167 | // É um programa que imprime o nome do mês de acordo com o número do mês.
168 | public class ExemploSwitchMes {
169 | public static void main(String[] args) {
170 | // Especificando o número do mês
171 | int mes = 7;
172 | String nomeMes = switch (mes) {
173 | // casos dentro do bloco switch
174 | case 1 -> "1 - Janeiro";
175 | case 2 -> "2 - Fevereiro";
176 | case 3 -> "3 - Março";
177 | case 4 -> "4 - Abril";
178 | case 5 -> "5 - Maio";
179 | case 6 -> "6 - Junho";
180 | case 7 -> "7 - Julho";
181 | case 8 -> "8 - Agosto";
182 | case 9 -> "9 - Setembro";
183 | case 10 -> "10 - Outubro";
184 | case 11 -> "11 - Novembro";
185 | case 12 -> "12 - Dezembro";
186 | default -> {
187 | System.out.println("Mês Inválido!");
188 | yield "";
189 | }
190 | };
191 | // Imprimindo o mês do número dado
192 | System.out.println(nomeMes);
193 | }
194 | }
195 | ```
196 |
197 | > if-else encadeado
198 |
199 |
200 |
201 | ```java
202 | // Um programa Java para demonstrar o uso da instrução if-else aninhada.
203 | // É um programa para verificar se um número é maior que 10 e, se for, verificar se é par ou ímpar.
204 | public class ExemploIfDentroDeIf {
205 | public static void main(String[] args) {
206 | int numero = 15;
207 |
208 | if (numero > 10) {
209 | System.out.println("O número é maior que 10.");
210 |
211 | if (numero % 2 == 0) {
212 | System.out.println("Além disso, o número é par.");
213 | } else {
214 | System.out.println("Além disso, o número é ímpar.");
215 | }
216 | } else {
217 | System.out.println("O número não é maior que 10.");
218 | }
219 | }
220 | }
221 | ```
222 |
223 | ---
224 |
225 | # Bora Praticar!
226 |
227 | 1. **Verificação de Número Positivo**: Verifique se um número é positivo.
228 | 2. **Verificação de Maioridade**: Verifique se uma pessoa é maior de idade.
229 | 3. **Verificação de Maioridade com Operador Ternário**: Verifique se uma pessoa é maior de idade. (Utilize o Operador Ternário)
230 | 4. **Mensagem de Turno de Estudo**: Faça um Programa que pergunte em que turno você estuda. Peça para digitar M-matutino ou V-Vespertino ou N- Noturno. Imprima a mensagem "Bom Dia!", "Boa Tarde!" ou "Boa Noite!" ou "Valor Inválido!"
231 | 5. **Verificação de Gênero**: Faça um Programa que verifique se uma letra digitada é "F" ou "M". Conforme a letra escrever: F - Feminino, M - Masculino ou Gênero Inválido.
232 | 6. **Maior de Três Números com Verificação de Negativos**: Determine o maior de três números. Se algum dos números for negativo, exiba: "Valor não permitido."
233 |
234 | > **Continue praticando:** https://wiki.python.org.br/EstruturaDeDecisao
235 |
236 | ## Referências
237 |
238 | [1] UFMA - Universidade Federal do Maranhão. "Tipos e Operadores." Disponível em: http://www.deinf.ufma.br/~mario/grad/poo/aulas/TiposOperadores.pdf.
239 |
240 | [2] TSimpoo. "Java - Conceitos Básicos." Disponível em: https://tsimpoo.wordpress.com/2014/08/12/.
241 |
242 | [3] SlidePlayer. "Estruturas de Decisão em Java." Disponível em: https://slideplayer.com.br/slide/355761/.
243 |
244 | [4] WikiBooks. "Java/Operadores." Disponível em: https://pt.wikibooks.org/wiki/Java/Operadores.
245 |
246 | [5] TreinaWeb. "Estruturas Condicionais e Estruturas de Repetição em Java." Disponível em: https://www.treinaweb.com.br/blog/estruturas-condicionais-e-estruturas-de-repeticao-em-java.
247 |
248 | ## Autor
249 |
250 |
251 |
252 |
253 |
254 | Feito com ❤️ por Cami-la 👋🏽
--------------------------------------------------------------------------------
/4. Estrutura de Repetição e Array/README.md:
--------------------------------------------------------------------------------
1 | # Estruturas de Repetição e Array
2 |
3 | ## Estrutura de Repetição
4 |
5 | - Uma estrutura de repetição permite que uma sequência de comandos seja executada repetidamente, caso determinadas condições sejam satisfeitas.
6 | - Essas condições são representadas por expressões lógica.
7 |
8 | As estruturas de repetição podem ser classificadas em:
9 |
10 | > **Repetição com teste no início (while)**
11 |
12 |
13 |
14 | Fluxograma para demonstrar o uso da instrução while.
15 |
16 | ```java
17 | public class ExemploWhile {
18 | public static void main(String[] args) {
19 | int contador = 1;
20 | while (contador <= 5) {
21 | System.out.println("Contador: " + contador);
22 | contador++;
23 | }
24 | }
25 | }
26 | ```
27 |
28 | > **Repetição com teste no final (do-while)**
29 |
30 |
31 |
32 | Fluxograma para demonstrar o uso da instrução do-while.
49 |
50 | Fluxograma para demonstrar o uso da instrução for.
51 |
52 | ```java
53 | public class ExemploFor {
54 | public static void main(String[] args) {
55 | for (int contador = 1; contador <= 5; contador++) {
56 | System.out.println("Contador: " + contador);
57 | }
58 | }
59 | }
60 | ```
61 |
62 | - comando `break` é utilizado para terminar de forma abrupta uma repetição.
63 | ```java
64 | public class ExemploBreak {
65 | public static void main(String[] args) {
66 | int contador = 1;
67 | while (contador <= 10) {
68 | System.out.println("Contagem: " + contador);
69 | if (contador == 5) {
70 | System.out.println("O loop foi interrompido.");
71 | break; // Interrompe o loop quando contador atinge 5
72 | }
73 | contador++;
74 | }
75 | System.out.println("Fim do programa.");
76 | }
77 | }
78 | ```
79 | - Quando comando `continue` é executado, os comandos restantes da repetição são ignorados e programa volta a testar novamente a condição.
80 | ```java
81 | public class ExemploContinue {
82 | public static void main(String[] args) {
83 | for (int contador = 1; contador <= 10; contador++) {
84 | if (contador == 5) {
85 | System.out.println("Pulando o número 5.");
86 | continue; // Pula a iteração atual e continua com a próxima
87 | }
88 | System.out.println("Contagem: " + contador);
89 | }
90 | System.out.println("Fim do programa.");
91 | }
92 | }
93 | ```
94 |
95 | ## Array
96 |
97 | - Um array é uma estrutura de dados que armazena um conjunto de valores do mesmo tipo.
98 | - Deve ser declarado com um tipo de dado e tamanho específico.
99 | - Pode ser unidimensional (vetor) ou multidimensional (matriz).
100 | - O primeiro elemento está no índice 0, o segundo no índice 1 e assim por diante.
101 | - Arrays são frequentemente percorridos usando loops, como for ou foreach, para processar ou manipular elementos.
102 |
103 | ```java
104 | // Declarando um array de inteiros com tamanho 5
105 | int[] numeros = new int[5];
106 |
107 | // Inicializando o array com valores
108 | int[] numeros = {1, 2, 3, 4, 5};
109 |
110 | // Inicializando o array com valores
111 | String[] nomes = {"Alice", "Bob", "Carol"};
112 |
113 | // Inicializando o array com valores
114 | double[] precos = {10.99, 20.49, 5.0, 7.75};
115 |
116 | // Declarando um array bidimensional (matriz) de inteiros
117 | int[][] matriz = new int[3][3];
118 |
119 | // Inicializando o array bidimensional
120 | int[][] matriz = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
121 |
122 | ```
123 |
124 | > for-each
125 |
126 |
127 |
128 | Fluxograma para demonstrar o uso da instrução for-each.
129 |
130 | ```java
131 | public class ExemploForEachArrayLivros {
132 | public static void main(String[] args) {
133 | String[] livros = {
134 | "Matéria Escura",
135 | "Como ser um programador Melhor",
136 | "Desenvolvimento Real de Software",
137 | "Kotlin em Ação",
138 | "Como Mentir com Estatísticas"
139 | };
140 |
141 | for (String livro : livros) {
142 | System.out.println("Livro: " + livro);
143 | }
144 | }
145 | }
146 | ```
147 |
148 | ----
149 |
150 | # Bora Praticar!
151 |
152 | 1. **Maior Número**: Faça um programa que leia 3 números inteiros maiores que zero e informe o maior número.
153 | 2. **Validação de Nota**: Faça um programa que peça uma nota, entre zero e dez. Mostre uma mensagem caso o valor seja inválido e continue pedindo até que o usuário informe um valor válido.
154 | 3. **Gerador de Tabuada**: Desenvolva um gerador de tabuada, capaz de gerar a tabuada de qualquer número inteiro entre 1 a 10. O usuário deve informar de qual numero ele deseja ver a tabuada.
155 | 4. **Vetor de Pares e Ímpares**: Faça um Programa que leia 5 números inteiros e armazene-os num vetor. Imprima o valores pares e ímpares deste vetor.
156 | 5. **Soma, Multiplicação e Números de um Vetor**: Faça um Programa que leia um vetor de 3 números inteiros, mostre a soma, a multiplicação e os números.
157 |
158 | > **Continue praticando:** https://wiki.python.org.br/EstruturaDeRepeticao
159 | > **Continue praticanto:** https://wiki.python.org.br/ExerciciosListas
160 |
161 | ## Referências
162 |
163 | [1] DIO - Digital Innovation One. "Estruturas de Repetição e Arrays em Java". Disponível em: https://academiapme-my.sharepoint.com/:p:/g/personal/camila_cavalcante_dio_me/EQfCi7g0PoRfDHPKbPzwJZgBVhPHiH7oLh5JEypewoOCrA?e=onQS0n.
164 |
165 | [2] GitHub. "Loops e Arrays." Disponível em: https://github.com/cami-la/loops-e-arrays.
166 |
167 | ## Autor
168 |
169 |
170 |
171 |
172 |
173 | Feito com ❤️ por Cami-la 👋🏽
174 |
--------------------------------------------------------------------------------
/5. Funções/README.md:
--------------------------------------------------------------------------------
1 | # Funções/Métodos
2 |
3 | Nesta aula examinamos os principais aspectos relacionados a funções (métodos) em Java. Compreender esses conceitos é fundamental para escrever código eficiente, modular e de fácil manutenção em aplicações Java.
4 |
5 |
8 |
9 | Um método em Java é composto por vários elementos:
10 |
11 | 1. **Especificadores de Acesso**: Definem a visibilidade e a acessibilidade de um método em diferentes partes do código. Em Java, temos quatro tipos de especificadores de acesso:
12 |
13 | - _public_: Torna o método acessível a todas as classes, permitindo seu uso em todo o aplicativo.
14 | - _private_: Restringe o acesso do método somente à classe onde está definido, encapsulando sua funcionalidade.
15 | - _protected_: Permite o acesso ao método no mesmo pacote e em subclasses de pacotes diferentes.
16 | - _default_ (padrão): Quando nenhum especificador é fornecido, o método é acessível apenas no mesmo pacote.
17 |
18 |
19 |
20 | 1. **Tipo de Retorno**: Cada método em Java possui um tipo de retorno que define o tipo de dado que o método irá fornecer como saída. Isso pode variar de tipos primitivos a objetos complexos ou até mesmo ausência de retorno, indicado pelo uso da palavra-chave `void.
21 |
22 | 2. **Nome do Método**: Um identificador exclusivo que define o método e sua funcionalidade. O nome deve refletir claramente o propósito do método.
23 |
24 | 3. **Lista de Parâmetros**: Os parâmetros fornecem dados de entrada para o método. Eles são especificados por tipo e nome, permitindo que o método trabalhe com informações externas. Se o método não tiver parâmetro, deixe os parênteses em branco.
25 |
26 | 4. **Assinatura do método**: Engloba seu nome e a lista de parâmetros que ele espera receber. A combinação única de nome e tipos de parâmetros constitui a assinatura, permitindo a diferenciação entre métodos similares.
27 |
28 | 5. **Corpo do Método**: Contém a lógica do método, onde as ações desejadas são implementadas.
29 |
30 | - É delimitado por um par de chaves e pode conter declarações, operações e fluxos de controle.
31 | - Instrução de Retorno: Se o método tiver um tipo de retorno diferente de void, ele deve conter uma instrução return que fornece o valor resultante.
32 | - Exceções Lançadas: Métodos podem lançar exceções para indicar situações excepcionais durante sua execução.
33 |
34 | Observe a classe `Calculadora` que inicialmente contém um método chamado `realizarOperacao` que executa diferentes tipos de operações matemáticas.
35 |
36 | ```java
37 | public class Calculadora {
38 |
39 | // Método para realizar diferentes operações matemáticas
40 | public double realizarOperacao(String operacao, double num1, double num2) {
41 | double resultado = 0;
42 |
43 | switch (operacao) {
44 | case "soma" -> resultado = num1 + num2;
45 | case "subtracao" -> resultado = num1 - num2;
46 | case "multiplicacao" -> resultado = num1 * num2;
47 | case "divisao" -> resultado = num1 / num2;
48 | default -> System.out.println("Operação inválida!");
49 | }
50 |
51 | return resultado;
52 | }
53 |
54 | public static void main(String[] args) {
55 | Calculadora calculadora = new Calculadora();
56 |
57 | double resultadoSoma = calculadora.realizarOperacao("soma", 10, 5);
58 | double resultadoSubtracao = calculadora.realizarOperacao("subtracao", 15, 7);
59 |
60 | System.out.println("Resultado da Soma: " + resultadoSoma);
61 | System.out.println("Resultado da Subtração: " + resultadoSubtracao);
62 | }
63 | }
64 | ```
65 |
66 | Refatorando o método `realizarOperacao` para separar as funcionalidades em métodos específicos:
67 |
68 | ```java
69 | public class Calculadora {
70 |
71 | // Método para realizar a soma
72 | public double somar(double num1, double num2) {
73 | return num1 + num2;
74 | }
75 |
76 | // Método para realizar a subtração
77 | public double subtrair(double num1, double num2) {
78 | return num1 - num2;
79 | }
80 |
81 | // Método para realizar a multiplicação
82 | public double multiplicar(double num1, double num2) {
83 | return num1 * num2;
84 | }
85 |
86 | // Método para realizar a divisão
87 | public double dividir(double num1, double num2) {
88 | if (num2 != 0) {
89 | return num1 / num2;
90 | } else {
91 | throw new IllegalArgumentException("Divisão por zero não é permitida!");
92 | }
93 | }
94 |
95 | public static void main(String[] args) {
96 | Calculadora calculadora = new Calculadora();
97 |
98 | double resultadoSoma = calculadora.somar(10, 5);
99 | double resultadoSubtracao = calculadora.subtrair(15, 7);
100 |
101 | System.out.println("Resultado da Soma: " + resultadoSoma);
102 | System.out.println("Resultado da Subtração: " + resultadoSubtracao);
103 | }
104 | }
105 | ```
106 |
107 | ----
108 |
109 | # Bora Praticar!
110 |
111 | 1. **Verificação de Sinal de Número**: Faça um programa com uma função que necessite de um argumento. A função retorna o caractere 'P' se o argumento for positivo, e 'N' se o argumento for zero ou negativo.
112 | 2. **Calculadora de IMC**: Implemente uma função que calcule o Índice de Massa Corporal (IMC) com base no peso e altura fornecidos.
113 | 3. **Conversor de Temperatura**: Crie funções para converter temperaturas de Celsius para Fahrenheit e vice-versa.
114 | 4. **Conversor de Moedas**: Desenvolva funções para converter valores entre diferentes moedas, como Dólar para Real e Real para Dólar, por exemplo.
115 | 5. **Contagem de Vogais e Consoantes**: Crie uma função que receba uma string como entrada e conte o número de vogais e consoantes presentes nela.
116 |
117 | > **Continue praticando:** https://wiki.python.org.br/ExerciciosFuncoes
118 |
119 | ## Referências
120 |
121 | [1] JavaTpoint. "Método em Java". Disponível em: https://www.javatpoint.com/pt/m%C3%A9todo-em-java.
122 |
123 |
124 | ## Autor
125 |
126 |
127 |
128 |
129 |
130 | Feito com ❤️ por Cami-la 👋🏽
--------------------------------------------------------------------------------
/6. Bibliotecas/README.md:
--------------------------------------------------------------------------------
1 | # Bibliotecas
2 |
3 | - As bibliotecas padrão são conjuntos de funcionalidades internas à linguagem que podem ser utilizadas para estender suas capacidades.
4 | - Além das bibliotecas padrão, existem bibliotecas de terceiros disponíveis que podem ser adicionadas ao seu projeto para expandir ainda mais as funcionalidades da linguagem.
5 | - No entanto, essas bibliotecas não são carregadas automaticamente, é necessário importá-las explicitamente para utilizá-las.
6 | - Ao utilizar bibliotecas, você pode aproveitar o trabalho de outros desenvolvedores e economizar tempo e esforço, pois não precisa escrever tudo do zero.
7 |
8 |