Orientação a Objetos com C# 06 - Exercício

แชร์
ฝัง
  • เผยแพร่เมื่อ 13 ก.ย. 2024
  • Sexta aula do curso de orientação a objetos com C#, onde teremos um exercício de imc.

ความคิดเห็น • 70

  • @Jootta_
    @Jootta_ 9 หลายเดือนก่อน +4

    Esse canal é uma maravilha, estou pagando POO na faculdade em java mas não tava conseguindo entender nada, muito obrigado professor!

    • @RalfLima
      @RalfLima  9 หลายเดือนก่อน +1

      Oi Jotta, muito obrigado pelo comentário, fico contente em saber que gostou do conteúdo.
      No início de 2024 virá uma atualização deste treinamento, além de mais cursos de C#, já te adianto o convite para acompanhar os novos treinamentos :)
      Precisando de algo, fico à disposição, bons estudos, abraços.

    • @Jootta_
      @Jootta_ 9 หลายเดือนก่อน +1

      @@RalfLima Com certeza vou acompanhar! esse canal foi um achado e tanto, muito obrigado!

  • @dinizjunior349
    @dinizjunior349 7 หลายเดือนก่อน +2

    Muitíssimo obrigado pelas aulas, estão me ajudando muitooO!
    O modo muitoooO bem explicado e com os exercícios para fazermos é muito top!
    🥳👏👏👏

    • @RalfLima
      @RalfLima  7 หลายเดือนก่อน

      Oi Diniz, fico contente em ler seu comentário e agradeço demais por acompanhar o treinamento de C#. Em 2024 vou trazer mais cursos dessa tecnologia fantástica.
      Precisando de algo, fico à disposição. Bons estudos e muito sucesso, abraços.

  • @ItaloGabriel-xr3hj
    @ItaloGabriel-xr3hj ปีที่แล้ว +3

    MUITO OBRIGADO PROFESSOR!! ME SALVOU DE UM BURNOUT COM ESSE CURSO DE DIDÁTICA INCRÍVEL !!!

    • @RalfLima
      @RalfLima  ปีที่แล้ว

      Oi Italo, eu que te agradeço pelo comentário, é gratificante saber que curtiu as aulas. Precisando de algo é só chamar, bons estudos, abraços.

  • @leonardomonteirohuck1596
    @leonardomonteirohuck1596 6 หลายเดือนก่อน +1

    TOP, quebrei a cabeça um pouco tentando fazer sem rever as aulas, e deu certo! Mt bom o conteúdo!

    • @RalfLima
      @RalfLima  6 หลายเดือนก่อน

      Oi Leonardo, que bom que deu certo 😁
      Obrigado pelo comentário, precisando de algo, fico à disposição, abraços.

  • @Thirox20
    @Thirox20 5 หลายเดือนก่อน +1

    Parabéns pela explicação, eu estou aprendendo e estou reforçando aqui, você esta de parabéns mano

    • @RalfLima
      @RalfLima  5 หลายเดือนก่อน +1

      Oi @Thirox20, obrigado pelo comentário. Fico contente em saber que os conteúdos estejam sendo úteis, parabéns pela dedicação aos estudos.
      Precisando de algo, conta comigo, abraços.

  • @wellingtonaraujo3606
    @wellingtonaraujo3606 4 หลายเดือนก่อน +1

    demorou mas saiu kkkkk, muito boas as aulas

    • @RalfLima
      @RalfLima  4 หลายเดือนก่อน

      Boa Wellington 🚀
      Agradeço seu comentário e fico contente que esteja gostando dos conteúdos, precisando de algo, fico à disposição, abraços.

  • @sanchessantos7153
    @sanchessantos7153 2 ปีที่แล้ว +2

    Excelente curso, obrigado! Para quem está nesta aula e já quiser arredondar o valor do IMC, pode usar a função: Math.Round(obterCalculo, 2). Neste exemplo vai pegar a variável que você definiu para o resultado do IMC, vai arredondar com 2 casas decimais.

    • @RalfLima
      @RalfLima  2 ปีที่แล้ว +1

      Olá Sanches, muito obrigado pelo comentário, fico muito feliz em ter esse feedback. Agradeço também por contribuir com essa dica do Math.Round(), tendo dúvidas ou sugestões, fico à disposição. Bons estudos e muito sucesso ;)

  • @claudineievangelistanascim2562
    @claudineievangelistanascim2562 2 ปีที่แล้ว +1

    Muito bom! Fiz esta atividade de boa!🙏 Obrigado por este tempo em nos informar 💪Sucesso ao sr ! 06

    • @RalfLima
      @RalfLima  2 ปีที่แล้ว

      Oi Claudinei, muito obrigado por acompanhar a aula e fornecer esse feedback. Precisando de algo, fico à disposição, bons estudos e muito sucesso!

  • @MrOmattos
    @MrOmattos 9 หลายเดือนก่อน +1

    Excelente explicação, obrigado!

    • @RalfLima
      @RalfLima  9 หลายเดือนก่อน

      Obrigado Otavio, fico contente em saber que gostou do conteúdo, abraços.

  • @Marcos69701
    @Marcos69701 8 หลายเดือนก่อน +2

    Eu gatei muiito tempo pra reparar um erro que estava ocorrendo. No compilador falava que a variável retorno não estava declarada, mas isso estava acontecendo porque eu não havia colocado o default do switch que eu fiz. Acontecia a mesma coisa se o if else ficasse sem um instrução final else.

    • @RalfLima
      @RalfLima  8 หลายเดือนก่อน

      Oi Marcos, parabéns por ter conseguido encontrar o problema e compartilhar, essa dica será útil pro pessoal.
      Quando criei essa playlist, não era necessário ter o default ou o else, agora nas versões mais atuais é obrigatório em alguns momentos.
      Em março irei disponibilizar este treinamento e outros cursos de C#, tem muita coisa bacana pra gente estudar.
      Obrigado pelo comentário, fico contente que esteja acompanhando o treinamento de C#, precisando de algo, fico à disposição.
      Desejo para você e sua família um próspero ano novo, paz, saúde e realizações.
      Vamos mantendo contato, abraços.

  • @DevAzul
    @DevAzul 3 ปีที่แล้ว +1

    Boa noite, voltei esse me deu trabalho , tentei fazer sozinho, percebi que
    por ser um linguagem tipada tenho que ficar atento quando chamo as variáveis,
    estava tentando dar return com o "Console.WriteLine("") com isso quebrava o código que me tirava da linha de raciocino que estava certa , então tive que pensar em milhares de meio para fazer, no final eu conseguia instanciar o Calculo mas não conseguia definir situações complexas sem poluir com um caminhão de código até que fui ver o vídeo com a resposta que ajudou muito, tiro duvidas e solidificou meu aprendizado mais uma vez obrigado!!!

    • @RalfLima
      @RalfLima  3 ปีที่แล้ว

      Opa! Obrigado pelo comentário, fico feliz que conseguiu desenvolver a atividade e que a resolução ajudou. Precisando de algo só chamar, bons estudos, abraço!

  • @carloseduardofernandes2553
    @carloseduardofernandes2553 4 หลายเดือนก่อน +1

    Então eu já lancei o retorno como void, porque não iriamos mais tratar depois dali, mas é uma boa fazer separado

    • @RalfLima
      @RalfLima  4 หลายเดือนก่อน

      Oi Carlos, também é uma boa opção 😁
      Obrigado pelo comentário e por acompanhar o treinamento, abraços.

  • @Djeltonoficiall
    @Djeltonoficiall 4 ปีที่แล้ว +4

    Olá professor, estou tendo dificuldade em entender o parâmetro e o propósito da situacao (double imc), assim como tive também quando adicionou ao parametro da situacao (double media) na aula passada, esta dificil entender esse conceito de parâmetros.

    • @RalfLima
      @RalfLima  4 ปีที่แล้ว +5

      Opa! Muito obrigado por acompanhar as aulas e enviar sua dúvida. DjElton, o parâmetro é utilizado sempre como referência obrigatória para algo. Vamos supor que você precisa informar se um aluno está aprovado ou reprovado em determinada matéria, para isso é obrigatório a utilização de um parâmetro de média. No caso da situação, estou obrigando ter o valor do imc, para que haja a base necessária para realizar a condicional. Vamos trabalhar posteriormente com mais métodos onde o parâmetro é obrigatório, irei reforçar esse conceito. Espero ter ajudado, bons estudos :)

    • @xpto_
      @xpto_ 3 ปีที่แล้ว +2

      vlw pela pergunta, eu tmb me perdi nesse ponto. Vendo o código agora com mais atenção eu percebi que o parêmetro imc do método situacao está relacioanado com o método de cálculo.
      Mas onde que o imc e calculo se relacionam no código? Lá no método de mensagem na linha: 'string obterSituacao = situacao(Calculo);' ou seja, situacao tem o parametor imc que vai receber calculo. poderia ser escrito assim: situacao = calculo, mas sairia do contexto de POO.
      Porque eu não estava conseguindo entender? Pq durante a leitura do código, quando eu chegava no método imc, eu já queria tentar relacionar o metodo de calculo ali no meio, porém, o imc vai significar calculo lá no metodo de mensagem.
      Espero ter entendio corretamente. Que alívio, ufaaaaaa.

    • @tawos6631
      @tawos6631 ปีที่แล้ว +1

      @@xpto_ cara tive a mesma duvida, como ele usou um parâmetro (imc) que ele não declarou nem relacionou anteriormente?

  • @faelsama9559
    @faelsama9559 11 หลายเดือนก่อน +1

    Salve ralf, eu fiz desse modo a parte do metodo de obter a situação:
    public string obterIMC()
    {
    double imc = calcularIMC();
    return imc < 18.5 ? "Abaixo do peso" :
    imc < 25 ? "Peso normal" :
    imc < 30 ? "Acima do peso" :
    imc < 35 ? "Obesidade I" :
    imc < 40 ? "Obesidade II" : "Obesidade III";
    }
    Está ok? ou o recomendado seria fazer assim como na sua solução?

    • @RalfLima
      @RalfLima  11 หลายเดือนก่อน

      Oi Fael, é uma opção que funciona, porém pensando em um projeto na vida real, não seria bem visto por muitos desenvolvedores.
      Há diversos padrões de projetos e boas práticas que aconselham que a estrutura do retorno algo mais "simples", contendo apenas uma variável ou no máximo um operador ternário.
      O motivo de ter uma estrutura mais enxuta no retorno, é pensando na implementação na regra de negócios. Caso seja pedido para adicionar mais situações, a estrutura do seu retorno ficará grande, além de ser confusa para poder realizar eventuais modificações.
      Em atividades de aprendizado, não há problemas, mas no uso em projetos, aconselho fortemente retornar apenas uma variável e deixar toda essa regra que você criou dentro de uma condicional (IF).
      Espero ter contribuído, seu comentário foi muito bom. Precisando de algo, fico à disposição, bons estudos.

  • @mariocunha3555
    @mariocunha3555 3 ปีที่แล้ว +1

    Em meus estudos eu fiz esse cálculo semana passada, mas não tinha usado uma nova classe e métodos. Vou refazer tudo seguindo esse vídeo. Só tive um probleminha com a altura, que eu coloquei para ser digitada com o console.readline(). Quando convertia pra Double o vs estava retirando o . aí tive de escrever com , pra dar certo. Kkkk

    • @RalfLima
      @RalfLima  3 ปีที่แล้ว +1

      Show de bola Mário, faça as modificações e qualquer erro só chamar. Esse lance do ponto e da vírgula sempre pega o pessoal, ainda bem que você se ligou :) Bons estudos Mário, abraço.

  • @gilsonravaiani8241
    @gilsonravaiani8241 2 ปีที่แล้ว +1

    Up

    • @RalfLima
      @RalfLima  2 ปีที่แล้ว

      Obrigado Gilson, precisando de algo é só chamar.

  • @_VendoNoQDa_
    @_VendoNoQDa_ ปีที่แล้ว +1

    Fessor, pq sera que o meu da ''build error'' quando eu dou run... fiz exatamente igual o do senhor e nada de rodar

    • @RalfLima
      @RalfLima  ปีที่แล้ว +1

      Oi VendoNoQDá, esse problema pode ser devido a duas coisas:
      1º Você está tentando executar o projeto, mas não está no diretório correto.
      2º Erro no código, geralmente pq foi digitado algo errado.
      Me envia o projeto para o meu e-mail para analisar por favor: contato@ralflima.com
      Daremos um jeito nesse problema, fico no aguardo, abraços.

  • @claudineievangelistanascim2562
    @claudineievangelistanascim2562 2 ปีที่แล้ว +2

    Ralf Lima poderia informar o motivo do meu algoritmo funcionar somente ao iniciar a variavel ?
    string imcmensagem = "0"; . Meu codigo esta logo a seguir :
    using System;
    class Pessoa
    {
    public double peso, altura;
    public double calculaimc()
    {
    return peso / (altura * altura);
    }
    public string condicaoimc(double imcvalue)
    {
    string imcmensagem = "0";
    if (imcvalue < 18.50)
    {
    imcmensagem = "Abaixo do peso";
    }
    else if (imcvalue < 25)
    {
    imcmensagem = "Peso Normal";
    }
    else if (imcvalue < 30)
    {
    imcmensagem = "Acima do peso";
    }
    else if (imcvalue < 35)
    {
    imcmensagem = "Obesidade I";
    }
    else if (imcvalue < 40)
    {
    imcmensagem = "Obesidade II";
    }
    else if (imcvalue >= 40)
    {
    imcmensagem = "Obesidade III";
    }
    return imcmensagem;
    }
    public void mensagem()
    {
    double obterimc = calculaimc();
    string _condicaoimc = condicaoimc(obterimc);
    Console.WriteLine("Seu imc "+obterimc+" esta "+_condicaoimc);
    }
    }

    • @RalfLima
      @RalfLima  2 ปีที่แล้ว +1

      Oi Claudinei, excelente pergunta.
      A partir da versão 6 do .NET, é obrigatório inicializar todas as variáveis, em versões anteriores era opcional.
      Esse curso foi gravado utilizando a versão 5 do .NET, por esse motivo não inicializo as variáveis. Em agosto pretendo refazer esse curso utilizando a versão 6.
      Precisando de mais alguma coisa é só chamar, obrigado por acompanhar as aulas, abraços.

    • @JoelsonSantos1475
      @JoelsonSantos1475 ปีที่แล้ว

      @@RalfLima Amigo, acho que também tem outro motivo. Ele colocou else if no final das condicionais. Dessa forma o C# necessita que tenha uma variável inicializada. Se ele removesse o else if (imcvalue >= 40). Ele não precisaria atribuir à variável string. Foi isso o que você fez no vídeo.

  • @pedrinhomota15
    @pedrinhomota15 6 หลายเดือนก่อน +1

    Fiquei com uma duvida, no metodo de calculo vc criou um double calculo, onde consta a forma. Na hora de criar a situação vc colocou situação(double imc) pq ? a onde ele vai puxar a informação do imc, eu entendo que teria que ser dentro do parentese double calculo, ou estou errado e não entendi nada kkkk

    • @RalfLima
      @RalfLima  6 หลายเดือนก่อน

      Oi Pedro, todo o parâmetro criado é definido pelo desenvolvedor, como eu estava criando o método situação e precisava de um valor de IMC, decidi nomear o parâmetro como IMC.
      O termo IMC utilizei para facilitar a compreensão do desenvolvedor, deixando IMC, o desenvolvedor saberá que precisa informar uma informação referente ao IMC.
      Você como desenvolvedor pode definir o nome dos parâmetros, então poderia criar:
      situação(double valor), situação(double numero), situação(double pikachu)
      Lembre-se de utilizar nomes coesos, ainda mais se for trabalhar em equipe.
      Imagina você ingressar em um projeto e ter o método situacao(double valor), você teria que olhar a estrutura da função para entender o que passar via parâmetro, se deixar o parâmetro como IMC, fica mais fácil vc saber o que passar.
      Esperto ter ajudado, bons estudos.

  • @joaojr9421
    @joaojr9421 2 ปีที่แล้ว +1

    para obter a situação Seria uma boa prática fazer assim ou a linha ficaria muito longa? return imc < 18.5 ? "Abaixo do peso" : imc < 25 ? "Peso normal" : imc < 30 ? "Acima do peso" : imc < 35 ? "Obesidade I" : imc < 40 ? "Obesidade II" : "Obesidade III"; vlw

    • @RalfLima
      @RalfLima  2 ปีที่แล้ว +1

      Oi João, ótima pergunta. Mesmo o código funcionando, acaba ferindo algumas boas práticas do clean code.
      Operador ternário geralmente é utilizado quando há duas possíveis ações, mais que duas ações é melhor utilizar condicionais (if/else) ou estrutura de escolha (switch/case), assim facilita a visualização da estrutura dos seus projetos.

    • @joaojr9421
      @joaojr9421 2 ปีที่แล้ว +1

      @@RalfLima Blz, vlw Ralf.

  • @claudioalves7923
    @claudioalves7923 4 ปีที่แล้ว

    Opa, seria legal passar listas de exercicios, em cadas aula, para podermos praticar, fiz o exercicio sozinho antes da sua solução. Gostaria de exercitar mais. Depois se tiverem muitos exercicios poderia ter playslists de resoluções dele

    • @RalfLima
      @RalfLima  4 ปีที่แล้ว +2

      Oi Claudio, excelente ideia! Em breve estarei adicionando uma lista de exercícios e uma playlist com as devidas resoluções. Agradeço demais sua mensagem e parabéns pela dedicação, sucesso!

  • @lucianaaguiar667
    @lucianaaguiar667 3 ปีที่แล้ว +1

    Opa , poderia explicar com que o parametro double imc se conecta com o calculo ?, nao entendi pois ate em funções diferentes eles estao e nao tem o mesmo nome da variavel

    • @RalfLima
      @RalfLima  3 ปีที่แล้ว

      Oi Luciana, agradeço por acompanhar as aulas. Vamos dar um jeito nessa dúvida.
      Quando é criado um parâmetro, estamos obrigando passar alguma informação para o método, nesse caso coloquei o nome do parâmetro de IMC. Vamos supor que você necessite realizar uma soma, e obrigatoriamente serão necessários dois números, então seu método ficaria assim: public int soma(int numero1, int numero2){}, se alguém for utilizar esse método, necessita informar dois números.
      No caso desse exercício, eu estou obrigando que o meu método situação tenha um parâmetro real (double) que dei o nome de imc, entendeu?
      Na orientação a objetos uma boa prática é que cada método faça uma única ação, por isso eu dividi em: calculo, situação e mensagem.
      Espero ter ajudado, se houver dúvidas ainda fico à total disposição. Bons estudos e muito sucesso ;)

  • @pedrinhomota15
    @pedrinhomota15 6 หลายเดือนก่อน +1

    ao executar meu codigo parace o seguinte erro "Ocorreu uma falha no build. Corrija os erros de build e execute novamente." ja olhei o codigo inteiro e simplesmente não acho o erro

    • @RalfLima
      @RalfLima  6 หลายเดือนก่อน +1

      Oi Pedro, geralmente esse erro ocorre quando você não está no diretório correto. Qualquer coisa, me envie o projeto para análise por favor: contato@ralflima.com

    • @pedrinhomota15
      @pedrinhomota15 6 หลายเดือนก่อน +1

      @@RalfLima vou mandar sim, prof o senhor poderia me orientar como salva e enviar esse projeto, outra pergunta o senhor tem algum curso em vídeo fora do TH-cam, estou gostando muito das aulas

    • @RalfLima
      @RalfLima  3 หลายเดือนก่อน

      Oi @pedrinhomota15, infelizmente o TH-cam não havia me informado sobre seu comentário.
      Se precisar de auxílio ainda, me envie um e-mail que explico em detalhes por lá.
      Sobre treinamentos fora do TH-cam, no momento não tenho. Estou focando no material gratuito pro pessoal e também alguns conteúdos exclusivos para membros.
      Inclusive, em Julho tem essa playlist de Orientação a Objetos atualizada, fica de olho que vai gostar.
      Precisando de algo, é só me chamar, abraços.

  • @GustavoLima-om5yk
    @GustavoLima-om5yk 4 ปีที่แล้ว +1

    Ralf, por que não posso usar isso para criar as variáveis?
    public float peso, altura;

    • @RalfLima
      @RalfLima  4 ปีที่แล้ว +1

      Oi Gustavo, você pode usar o float para criar variáveis sem problemas. Inclusive o exemplo que você descreveu: public float peso, altura pode ser usado sem problema. Só vale lembrar que o float suporta menos casas decimais que o double.
      Se quiser dar uma olhadinha numa referência legal, segue a documentação oficial em português: docs.microsoft.com/pt-br/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types
      Espero ter ajudado, se continuar com dúvidas só avisar, bons estudos, abraço!

    • @GustavoLima-om5yk
      @GustavoLima-om5yk 4 ปีที่แล้ว +1

      @@RalfLima Obrigado, Ralf. Aconteceu que testei da maneira como escrevi acima, porém não funcionou. Aí tentei do jeito que você passou no vídeo, e funcionou. Por isso achei estranho.
      Se você puder testar na sua máquina e ver o que acontece. Me fala se preciso mudar alguma coisa. Valeu, Ralf!

    • @RalfLima
      @RalfLima  4 ปีที่แล้ว +1

      @@GustavoLima-om5yk testei e funcionou, porém tem um macete que talvez faltou kkkk Quando você instanciar um objeto e passar uma informação float, precisa colocar o f no final, exemplo: p.altura = 1.80f;
      Veja se é isso, já na classe Pessoa apenas alterei os atributos double para float e o método calculo para retornar float. Testa e qualquer erro me avisa. Adicionar o f permite o C# conseguir compreender que irá trabalhar com decimais :)

  • @paulosergiogramosa730
    @paulosergiogramosa730 3 ปีที่แล้ว +1

    Eu criei o método situação sem parâmetro e funcionou. '-'

    • @RalfLima
      @RalfLima  3 ปีที่แล้ว +1

      Opa! Sim nessa atividade tbm era possível fazer sem parâmetros. Eu utilizei pq muitos ficam com dúvidas de como trabalhar com parâmetros. Parabéns por ter conseguido realizar e ainda encontrar outra alternativa de resultado Paulo. Qualquer dúvida, sugestão ou reclamação só me chamar, abraço.

  • @Leitaozin01
    @Leitaozin01 ปีที่แล้ว +1

    Olá professor, eu tentei fazer sua atividade mesclando conhecimentos de alguns tutoriais que assisti... Porém apesar do código aparentemente não apresentar nenhum erro de sintaxe, ele não está retornando a situação do imc. Segue o código:
    Em Pessoa.cs:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    namespace OutroExemploIMC
    {
    class Pessoa
    {
    public double peso, altura;
    public double calculo()
    {
    return peso / (altura * altura);
    }
    public string situacao(double imc)
    {
    string retorno;
    if(imc < 18.5)
    {
    retorno = "Abaixo do peso";
    }
    else if(imc < 25)
    {
    retorno = "Peso normal";
    }
    else if(imc < 30)
    {
    retorno = "Acima do peso";
    }
    else if(imc < 35)
    {
    retorno = "Obesidade I";
    }
    else if(imc < 40)
    {
    retorno = "Obesidade II";
    }
    else
    {
    retorno = "Obesidade III";
    }
    return retorno;
    }
    public void mensagem()
    {
    double obterCalculo = calculo();
    string obterSituacao = situacao(obterCalculo);
    Console.WriteLine(obterSituacao);
    }
    }
    }
    Em Program.cs:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    namespace OutroExemploIMC
    {
    class Program
    {
    static void Main(string[] args)
    {
    Pessoa p = new Pessoa();
    Console.WriteLine("Informe o valor em kg: ");
    double peso = double.Parse(Console.ReadLine());
    Console.WriteLine("Informe o valor em metros: ");
    double altura = double.Parse(Console.ReadLine());
    Console.WriteLine();
    }
    }
    }
    Peço sua ajuda. Desculpe pela mensagem enorme😅😅

    • @RalfLima
      @RalfLima  ปีที่แล้ว +1

      Oi Dantalian, fico feliz em poder auxiliar nos estudos, vamos lá!
      A classe Pessoa está perfeita, o erro estava na classe Program, abaixo deixarei o código retornando a situação:
      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      using System.Threading.Tasks;
      namespace OutroExemploIMC
      {
      class Program
      {
      static void Main(string[] args)
      {
      // Instanciar objeto da classe Pessoa
      Pessoa p = new Pessoa();
      // Obter o peso
      Console.WriteLine("Informe o valor em kg: ");
      p.peso = double.Parse(Console.ReadLine());
      // Obter a altura
      Console.WriteLine("Informe o valor em metros: ");
      p.altura = double.Parse(Console.ReadLine());
      // Mensagem (irá chamar o método mensagem, responsável por retornar a situação)
      p.mensagem();
      }
      }
      }
      O erro foi não passar o peso e a altura para o objeto do tipo Pessoa e chamar o método mensagem.
      Se tiver mais alguma dúvida fico à disposição, bons estudos ;)

    • @Leitaozin01
      @Leitaozin01 ปีที่แล้ว +1

      @@RalfLima Muito obrigado professor!!! Acabei de alterar aqui e deu super certo, muito obrigado mesmo pela atenção. Estou à maratonar seu curso e estou adorando. Futuramente eu pretendo trabalhar com inteligência artificial(chatbots, etc), o senhor acha que eu deveria continuar com c# ou partir para aprender outra linguagem?

    • @RalfLima
      @RalfLima  ปีที่แล้ว +1

      @@Leitaozin01 de nada, fico feliz que deu tudo certo, agradeço seu retorno.
      Sobre a parte de inteligência artificial, o C# é uma ótima linguagem, depois da uma olhada neste conteúdo: dotnet.microsoft.com/pt-br/apps/machinelearning-ai/ml-dotnet
      É um complemento focado na parte de machine learning, com isso você poderá desenvolver chatbots, saber os elementos que possuem uma imagem, criar estimativas de venda de produtos e serviços com base nas vendas efetuadas e muito mais.
      Se eu fosse fazer um ranking das linguagens para trabalhar com ênfase em inteligência artificial, seria assim:
      1º Python
      2º Node
      3º Java
      4º C#
      Há outras linguagens como o Lisp e o C++, porém vejo um mercado mais restrito para essas tecnologias, além de uma curva alta de aprendizagem.
      Acho bacana você ter uma base de C#, mas depois olha o Python, há um leque maior de funcionalidades e a facilidade para trabalhar com inteligência artificial é muito interessante.
      Espero ter ajudado, em breve irei trazer mais treinamentos de C#, além de muitos cursos de Python.
      Precisando de mais alguma coisa fico à disposição, bons estudos e muito sucesso!

  • @gluizsilva
    @gluizsilva ปีที่แล้ว

    Professor, tentei fazer e deu erro: "A
    variável "retorno" está declarada, mas nunca é usada ".
    Segue o código:
    //Pessoa.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    namespace _04ExercicioIMC
    {
    public class Pessoa
    {
    //Atributos
    public double peso, altura;
    //Método calculo
    public double calculo()
    {
    return imc = peso / (altura * altura);
    }
    //Situação
    public string situacao(double imc)
    {
    //Variável
    string retorno;
    //Condicional
    if (imc < 18.5)
    {
    returno = "Abaixo do peso";
    }
    else if (imc < 25)
    {
    returno = "Peso normal";
    }
    else if (imc < 30)
    {
    returno = "Acima do peso";
    }
    else if (imc < 35)
    {
    returno = "Obesidade I";
    }
    else if (imc < 40)
    {
    returno = "Obesidade II";
    }
    else
    {
    returno = "Obesidade III";
    }
    }
    //Mensagem
    public void Mensagem()
    {
    //ObterCalculo
    double ObterCalculo = calculo();
    //ObterSituação
    String ObterSituação = situacao(ObterCalculo);

    //Exibir mensagem
    Console.WriteLine("Seu IMC é de: "+ObterCalculo);
    Console.WriteLine("Sua situação é: "+ObterSituação);
    }
    }
    }
    //Program.cs
    using _04ExercicioIMC;
    internal class Program
    {
    private static void Main(string[] args)
    {
    Pessoa p = new Pessoa();
    p.altura = 170;
    p.peso = 68;
    p.Mensagem();
    }
    }
    //------------------------//------------------------//
    Obs: Todos os exercícios anteriores funcionaram, mas este não.

    • @gluizsilva
      @gluizsilva ปีที่แล้ว

      Gostaria de saber o que falta!

    • @RalfLima
      @RalfLima  ปีที่แล้ว +1

      Oi Gustavo, vamos dar um jeito nesse problema.
      Você criou a variável retorno, porém nas condicionais está utilizando o termo returno, altere para retorno que o problema estará resolvido.
      Faz um teste e me avisa se deu tudo certo por favor.

    • @gluizsilva
      @gluizsilva ปีที่แล้ว +1

      @@RalfLima 🤦 kkkkk obrigado!

    • @gluizsilva
      @gluizsilva ปีที่แล้ว

      @@RalfLima não deu certo.
      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Threading.Tasks;
      namespace _04ExercicioIMC
      {
      public class Pessoa
      {
      //Atributos
      public double peso, altura;
      private double imc;
      //Método calculo
      public double calculo()
      {
      return imc = peso / (altura * altura);
      }
      //Situação
      public string situacao(double imc) // linha 23

    • @RalfLima
      @RalfLima  ปีที่แล้ว

      Oi Gustavo, o problema agora está no retorno do método situação, você não utilizou a palavra return, como o método precisa retornar um String, está ocorrendo esse problema.
      Deixarei o repositório do GitHub com a resolução dessa atividade para você poder comparar: github.com/ralflima/orientacao_objetos_csharp/tree/master/04ExercicioIMC
      Espero que ajude, se o problema persistir pode me chamar, bons estudos.