Desafio Técnico GFT Start #5

Overview

GFT Start Java

Esta mentoria tem como objetivo ajudar os Devs participantes do Programa GFT Start #5 Java a resolver o Desafio Técnico que será proposto aos selecionados para as vagas oferecidas no fim do Bootcamp.

🛑 Pré-requistos

  • Java JDK 8+ (Usarei JDK 11)
  • IDE para desenvolvimento Java (Usarei IntelliJ Community)
  • O básico sobre Git e GitHub
  • Sintáxe básica Java
  • Noção acerca de POO

Pensamento Computacional e Programação Orientada a Objetos

Pensamento Computacional

A capacidade criativa, crítica e estratégica de utilizar as bases computacionais nas diferentes áreas de conhecimento para a resolução de problemas.
pensamento computacional

Programação Orientada a Objetos

Modelo de análise, projeto e programação baseado na aproximação entre o mundo real e o mundo virtual, através da criação e interação entre classes, atributos, métodos, objetos, entre outros.

Vantagens da Orientação a Objetos

  • Paradigma mais utilizado no desenvolvimento​
  • Redução do custo de manutenção
  • Aumento de reutilização de código
  • Aumento de segurança de sistemas​
  • Melhor interação entre as fases do projeto​
  • Torna o trabalho em equipe mais produtivo​

pilares da programação orientada a objetos


EXERCICIOS

  1. Número Reverso:
    Faça um programa que leia um valor inteiro (este número deverá conter 4 dígitos). A saída deverá ser o reverso de um número inteiro informado.
    Exemplo: Digamos que a entrada foi 3257. A resposta será 7523.

    Regras:
    a) A entrada deverá estar entre 1000 e 9999;
    b) Se o usuário digitar 3 dígitos ou menos, o Programa avisa que tem que conter 4 dígitos e continuar a programação até a resposta final.

  2. Classe Macaco:
    Faça um programa e teste interativamente uma classe que modele um macaco com os atributos “nome” e “bucho” (estômago) e os métodos “comer”, “verBucho” e “digerir”.

    Regras:
    a) Crie 2 macacos;
    b) Considere que a quantidade máxima de alimentos é 3. Com isso, lembre-se de verificar o conteúdo do estômago a cada refeição (método “comer”). Por fim, o método “digerir” deve esvaziar o bucho do Macaco;
    c) Alimentos “digeríveis” devem ser do tipo String, garanta isso em seu código para que não haja nenhum Macaco canibal 🙈 .

  3. Funcionários:
    Considerando o diagrama abaixo, feito para uma empresa de vendas. Nesse contexto, utilize o conceito de Herança para remodelá-lo e implemente um programa que explore o domínio em questão:
    Screenshot-from-2022-05-23-15-16-50

    Regras:
    a) Crie uma classe mãe chamada Funcionario com os atributos nome, cpf (passados pelo construtor), uma constante para armazenar o valor do salário mínimo e um método abstrato “calcularSalario”;
    b) Vendedores ganham 1 salário mínimo, mais uma comissão por vendas;
    c) Consultores ganham somente pelas horas que trabalharam.

DESAFIO

Jogo de Craps:
Faça um programa que implemente um jogo de Craps. O jogador lança um par de dados, obtendo um valor entre 2 e 12.

Regras:

a) Se, na primeira jogada, você tirar 7 ou 11, você é um "Natural" e ganha;
b) Se você tirar 2, 3 ou 12 na primeira jogada, isto é chamado de "Craps" e você perdeu;
c) Se, na primeira jogada, você fez um 4, 5, 6, 8, 9 ou 10, este é seu "Ponto";
d) Seu objetivo agora é continuar jogando os dados até tirar este número novamente;
e) Você perde, no entanto, se tirar um 7 antes de tirar este Ponto novamente;


🤝 Contribuindo

Este repositório foi criado para fins de estudo, então contribua com ele.
Se te ajudei de alguma forma, ficarei feliz em saber. E caso você conheça alguém que se identidique com o conteúdo, não deixe de compatilhar.

Se possível:
⭐️ Star o projeto
🐛 Encontrar e relatar issues

Disponibilizado com por cami-la.

Comments
  • Problemas com a declaração do CPF.

    Problemas com a declaração do CPF.

    Bom dia!

    No Exercício de cálculo de salários, dos vendedores e consultores, foi declarado o CPF como sendo do tipo "LONG", porém na hora de testar o código ele deu um erro, pois o CPF que eu passei iniciava com "0", ele não aceitou assim, como resolveria a título de curiosidade, e desculpe minha ignorância.

    opened by Murdev29 3
  • Desafio do Macaquinho

    Desafio do Macaquinho

    No caso do bucho.remove eu utilizei direto o número do índice. Ficando assim: bucho.remove(0) e funcionou.

    Tem alguma diferença do bucho.remove(bucho.get(0))?

    opened by hanakathy 2
  • Desafio 1: NumeroReverso

    Desafio 1: NumeroReverso

    Pode não ser a maneira mais apropriada, mas decidi compartilhar para que não de a impressão de que a única forma de reverter o número seja transformando ele em String. Como disse, pode não ser a maneira mais adequada, porem interessante buscar outras formas somente para testes e aprendizado.

    import java.util.Scanner;
    
    import static java.lang.String.copyValueOf;
    import static java.lang.String.valueOf;
    
    
    // #1
    public class ReverseNumberNoConvert {
        public static void reverseNumber() {
            Scanner scanner = new Scanner(System.in);
            System.out.println("Input must have 4 digits, between 1000 and 9999.");
            int input = scanner.nextInt();
            while (input < 1000 || input > 9999) {
                System.out.println("Input must have 4 digits, between 1000 and 9999.");
                input = scanner.nextInt();
            }
            String savingReverseNumber = "";
            String convertToString = valueOf(input);
            System.out.println("Input: " + convertToString);
            char reverseNum;
            for (int i = 0; i < convertToString.length(); i++) {
                reverseNum = convertToString.charAt(i);
                savingReverseNumber = reverseNum + savingReverseNumber;
            }
            System.out.println("Output: " + savingReverseNumber);
        }
    }
    
    // #2
    class ReverseNumberNoStringBuilder {
        public static void reverseNumber() {
            Scanner scanner = new Scanner(System.in);
            System.out.println("Input must have 4 digits, between 1000 and 9999.");
            int reverseNum = 0;
            String savingNumb = "";
            int input = scanner.nextInt();
            while (input < 1000 || input > 9999) {
                System.out.println("Input must have 4 digits, between 1000 and 9999.");
                input = scanner.nextInt();
            }
            System.out.println("Input: " + input);
            for (; input != 0; ) {
                reverseNum *= 10;
                savingNumb += input % 10;
                input = input / 10;
            }
            System.out.println("Output: " + savingNumb);
        }
    }
    
    // #3
    class ReverseNumber {
        public static void reverseNumber() {
            Scanner scanner = new Scanner(System.in);
            do {
                System.out.println("Input must have 4 digits, between 1000 and 9999.");
                int input = scanner.nextInt();
                String inputConvertToString = valueOf(input);
                if (input >= 1000 && input <= 9999) {
                    StringBuilder stringBuilder = new StringBuilder(inputConvertToString);
                    System.out.println("input: " + input);
                    System.out.println("output: " + stringBuilder.reverse());
                    break;
                }
            } while (true);
        }
    }
    
    class ReverseNumberMain {
        public static void main(String[] args) {
            ReverseNumberNoConvert.reverseNumber();
            ReverseNumberNoStringBuilder.reverseNumber();
            ReverseNumber.reverseNumber();
        }
    }
    
    opened by paulofranklins2 2
  • Desafio Craps

    Desafio Craps

    Olá, estou fazendo o desafio Craps e gostaria da sua opinião quanto ao código.

    Não sei se está 100% correto, mas aguardo uma orientação (se possível) para melhorar e corrigi-lo.

    Link: https://github.com/alinealien/Desafio-Tecnico-GFT/blob/main/src/desafios/CrapsDesafio.java

    opened by alinealien 3
  • Alternativa para a questão do número reverso

    Alternativa para a questão do número reverso

    ...

        while(numero != 0)
        {
            restante = numero % 10;
            reverso = reverso * 10 + restante;
            numero = numero/10;
        }
    
        System.out.println(reverso);
    

    ...

    opened by wesleyvelloso 1
Owner
Camila Cavalcante
Camila Cavalcante
Curso Bootcamp GFT Start Woman Java (dizem que quem deixa estrelas nesse repositório, é pq é bonito! :)

☕ Curso: Bootcamp GFT Start Woman Java O Bootcamp GFT Start Woman Java é um programa gratuito direcionado para desenvolvedoras que estão começando a j

Sah 4 May 7, 2022
Projetos concluídos no bootcamp JAVA GFT

GFT DIO bootcamp Este repositório contem todos os projetos criados no decorrer do bootcamp GFT. Para não criar repositórios diferentes deixei ambos os

Matheus Sarto 1 Jul 5, 2022
Desafio Alura Challenge para backend. Criando uma API REST de controle de orçamento utilizando JAVA.

Desafio Alura Challenge para backend. Criando uma API REST de controle de orçamento utilizando JAVA.

Allan Cordeiro 1 Jun 16, 2022
DIO - desafio de desenvolver uma API Rest de consulta de cidades do Brasil com dados comparativos.

Fora utilizado o mesmo readme do criador do projeto Professor Responsavel UTILIZE ALGUMA DISTRIBUIÇÃO LINUX PARA EVITAR DORES DE CABEÇA Cities API Req

Sidney Roberto 1 Oct 22, 2021
Desafio final do camp "IBM- If Black, Then Code"

[IBM- If Black, Then Code] Desafio Final - Hello Bank ?? Objetivo O desafio final consiste em desenvolver API REST resolvendo a funcionalidade de tran

Lucas Pontes 3 Sep 12, 2022
The project aim at easier to start a spring boot/cloud project.

easy-starters 是一个公共 starter 集合,旨在帮助 java 开发者快速构建 Springboot 与 Spring Cloud 项目. lx-starters的环境要求 JDK requirement: JDK 1.8+ Spring booter 2.x,+ 如何引用lx-s

null 3 Jul 11, 2022
FreeLogJ - Start a conversation in your company about paying open source maintainers

Start a conversation in your company about paying open source maintainers! In the meantime enjoy this super-simple logging framework^W class.

Chris Newland 11 Jan 24, 2022
This project provides an advanced baseline to help you kick start a Spring project.

?? Advanced Spring Scaffold The Spring Framework is an application framework and inversion of control container for the Java platform. This project wa

André de Sousa 22 Oct 15, 2022
This repository should serve as a guide to everybody who wants to study software and hardware for embedded systems but doesn't know where to start.

Roadmap to Embedded Engineering This repository should serve as a guide to anyone who wants to study software and hardware for embedded systems but do

Mateus Antonio da Silva 108 Jan 4, 2023
A beginner friendly repo to start your hacktoberfest journey.

Hacktoberfest 2021 Hacktoberfest details : Hacktoberfest® is open to everyone in global community. Whether you’re a developer, student learning to cod

null 6 Oct 28, 2021
An assistance platform made using Spring framework that analyses your code, and helps you either to start a devops project, or to turn an existing project into a devops project using open source software (Git, Docker, Jenkins..)

DevOpsify Description An assistance platform made using Spring framework that analyses your code, and helps you either to start a devops project, or t

obaydah bouifadene 14 Nov 8, 2022
Desafio numero 015 correspondiente al finalización del curso 01 de la carrera Java Full Stack de la academia Desafío LATAM

DesafioFinalProgramacionBasicaJava Desafio numero 015 correspondiente al finalización del curso 01 de la carrera Java Full Stack de la academia Desafí

null 1 Feb 17, 2022
GFT START #2 Java - Mentoria #1: Aprendendo Orientação a Objetos

GFT START #2 Java - Aprendendo Orientação a Objetos 21/06/2021 - Mentoria #1: Aprendendo Orientação a Objetos Domínio: Bootcamps são eventos fantástic

Venilton FalvoJr 23 Aug 6, 2022
Curso Bootcamp GFT Start Woman Java (dizem que quem deixa estrelas nesse repositório, é pq é bonito! :)

☕ Curso: Bootcamp GFT Start Woman Java O Bootcamp GFT Start Woman Java é um programa gratuito direcionado para desenvolvedoras que estão começando a j

Sah 4 May 7, 2022
Projetos concluídos no bootcamp JAVA GFT

GFT DIO bootcamp Este repositório contem todos os projetos criados no decorrer do bootcamp GFT. Para não criar repositórios diferentes deixei ambos os

Matheus Sarto 1 Jul 5, 2022
Desafio Alura Challenge para backend. Criando uma API REST de controle de orçamento utilizando JAVA.

Desafio Alura Challenge para backend. Criando uma API REST de controle de orçamento utilizando JAVA.

Allan Cordeiro 1 Jun 16, 2022
DIO - desafio de desenvolver uma API Rest de consulta de cidades do Brasil com dados comparativos.

Fora utilizado o mesmo readme do criador do projeto Professor Responsavel UTILIZE ALGUMA DISTRIBUIÇÃO LINUX PARA EVITAR DORES DE CABEÇA Cities API Req

Sidney Roberto 1 Oct 22, 2021
Desafio final do camp "IBM- If Black, Then Code"

[IBM- If Black, Then Code] Desafio Final - Hello Bank ?? Objetivo O desafio final consiste em desenvolver API REST resolvendo a funcionalidade de tran

Lucas Pontes 3 Sep 12, 2022
Eclipse Foundation 3k Dec 31, 2022
The project aim at easier to start a spring boot/cloud project.

easy-starters 是一个公共 starter 集合,旨在帮助 java 开发者快速构建 Springboot 与 Spring Cloud 项目. lx-starters的环境要求 JDK requirement: JDK 1.8+ Spring booter 2.x,+ 如何引用lx-s

null 3 Jul 11, 2022