View on GitHub

aulas-programacao-csharp

Materiais de Aula - Programação de Computadores com C#

Operações lógicas

📽 Veja esta vídeo-aula no Youtube

Operadores de comparação

Comparam dois valores e retornam um resultado booleano.

Operador Descrição Exemplo
== Igual a 7.2 == -3 retorna false
!= Diferente de 7.2 != -3 retorna true
< Menor que 7.2 < -3 retorna false
> Maior que 7.2 > -3 retorna true
<= Menor ou igual a 5 <= 5 retorna true
>= Maior ou igual a 4 >= 5 retorna false

Operadores lógicos (booleanos)

Operador Descrição
! Negação lógica (troca entre true e false)
&& “E” lógico (true se ambos true, senão false)
\|\| “OU” lógico (false se ambos false, senão true)
^ “OU EXCLUSIVO” lógico (true se somente um valor é true, senão false)

Tabela-verdade:

x y !x x && y x \|\| y x ^ y
false false true false false false
false true true false true true
true false false false true true
true true false true true false

Programa da vídeo-aula

Fonte: https://www.slmandic.edu.br/tudo-sobre-coronavirus/

using System;

namespace AulaOperacoesLogicas
{
    class Program
    {
        static void Main(string[] args)
        {
            int idade;

            bool febre, tosse, outroSintomaRespiratorio;
            bool faltaAr, aumentoFrequenciaRespiratoria, dorToracica, sensacaoDesmaio;
            bool hipertensao, diabetes, outrasDoencasCronicas;
            bool doencaCoronariana, doencaCronica;

            bool possuiSinalDeAlarme, possuiFatorDeRisco;

            bool situacaoGrave;

            Console.Clear();
            Console.WriteLine("-- Triagem para Covid-19 --");
            Console.WriteLine("\nAdaptado de https://www.slmandic.edu.br/tudo-sobre-coronavirus/");
            Console.WriteLine("RESULTADO ESTRITAMENTE EDUCACIONAL. PROCURE AJUDA ESPECIALIZADA.\n");

            Console.Write("Qual a idade do paciente? ");

            bool idadeNumerica = Int32.TryParse(Console.ReadLine(), out idade);

            if (!idadeNumerica || idade < 0 || idade > 130)
            {
                Console.WriteLine("Idade inválida.");
                Environment.Exit(-1);
            }

            Console.WriteLine("\nResponda [S] para SIM, ou outro para NÃO.\n");

            Console.Write("Paciente com febre? ");
            febre = Console.ReadLine().ToUpper() == "S";

            Console.Write("Paciente com tosse? ");
            tosse = Console.ReadLine().ToUpper() == "S";

            Console.Write("Paciente com outro sintoma respiratório? ");
            outroSintomaRespiratorio = Console.ReadLine().ToUpper() == "S";

            if (!febre && !tosse && !outroSintomaRespiratorio)
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("\n* Nenhuma recomendação específica. #fiqueemcasa");
            }
            else
            {
                Console.WriteLine("\n-- Sinais de alarme --");

                Console.Write("Paciente com falta de ar? ");
                faltaAr = Console.ReadLine().ToUpper() == "S";

                Console.Write("Paciente com aumento de frequência respiratória? ");
                aumentoFrequenciaRespiratoria = Console.ReadLine().ToUpper() == "S";

                Console.Write("Paciente com dor torácica? ");
                dorToracica = Console.ReadLine().ToUpper() == "S";

                Console.Write("Paciente com sensação de desmaio? ");
                sensacaoDesmaio = Console.ReadLine().ToUpper() == "S";

                possuiSinalDeAlarme = faltaAr
                    || aumentoFrequenciaRespiratoria
                    || dorToracica
                    || sensacaoDesmaio;

                if (idade < 18)
                {
                    Console.WriteLine("\n-- Fatores de risco para menores --");

                    Console.Write("Paciente com hipertensão arterial sistêmica? ");
                    hipertensao = Console.ReadLine().ToUpper() == "S";

                    Console.Write("Paciente com diabetes melito? ");
                    diabetes = Console.ReadLine().ToUpper() == "S";

                    Console.Write("Paciente com outras doenças crônicas? ");
                    outrasDoencasCronicas = Console.ReadLine().ToUpper() == "S";

                    possuiFatorDeRisco = hipertensao || diabetes || outrasDoencasCronicas;
                }
                else
                {
                    Console.WriteLine("\n-- Fatores de risco para maiores --");

                    Console.Write("Paciente com doença coronariana prévia? ");
                    doencaCoronariana = Console.ReadLine().ToUpper() == "S";

                    Console.Write("Paciente com doença crônica descompensada? ");
                    doencaCronica = Console.ReadLine().ToUpper() == "S";

                    possuiFatorDeRisco = (idade > 65)
                        || aumentoFrequenciaRespiratoria
                        || doencaCoronariana
                        || doencaCronica;
                }

                if (possuiSinalDeAlarme || possuiFatorDeRisco)
                {
                    Console.WriteLine("\n-- Situação --");

                    Console.Write("Paciente com situação grave? ");
                    situacaoGrave = Console.ReadLine().ToUpper() == "S";

                    if (situacaoGrave)
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("\n* Encaminhar ambulância para o local.");
                    }
                    else
                    {
                        Console.ForegroundColor = ConsoleColor.Magenta;
                        Console.WriteLine("\n* Encaminhar para o sistema de saúde.");
                    }
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("\n* Recomendar isolamento domiciliar.");
                }

            }

            Console.ResetColor();
            Console.Write("\nObrigado!");
        }
    }
}