Buscar

Algoritmos e Linguagem Csharp

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmos e Linguagem C# 
Até agora tivemos nossa experiência com lógica, algoritmos e programação 
utilizando as ferramentas do Scratch. Esta é ao mesmo tempo, uma linguagem 
que representa um algoritmo e um programa executável. 
A partir dele podemos usar as estruturas básicas de programação: entradas e 
saídas, variáveis, condicionais e repetições. A interface de programação é 
simples, mas não somos capazes de exportar a aplicação criada para um 
formato a ser usado ou distribuído em computadores ou mobile – todas as 
aplicações Scratch estão limitadas à própria plataforma. 
Para programar aplicações de maneira geral precisamos de uma linguagem de 
programação; a partir dela um processo chamado “compilação” cria o software 
executável. 
De maneira geral podemos dizer que a criação de software obedece estas 
etapas: 
 
O executável é um arquivo que está no formato mais primitivo para que a 
máquina consiga executá-lo instrução a instrução – o processador recebe as 
instruções e realiza os cálculos enquanto que a memória guarda as 
informações; a linguagem de programação é um elo entre a linguagem primitiva 
de máquina (muito complexa de compreender) e a linguagem humana. Assim 
conseguimos escrever comandos que podemos ler e compreender e que, 
através do processo de compilação, serão transformados em um arquivo que a 
máquina consegue compreender. 
A linguagem que estudaremos é o C# (C Sharp), usada para programação de 
jogos com Unity. Nos exemplos compararemos as abordagens do Scratch, de 
algoritmo escrito e de C# para melhor compreensão e ambientação com a 
linguagem. 
Primeiro, algoritmos 
A montagem de um programa, especialmente um programa complexo, deve 
passar pela definição de um algoritmo. Encare isso como um planejamento do 
que você vai programar. 
Há diversas maneiras de representar um algoritmo. Duas das mais usadas são 
os fluxogramas (diagramas em que os formatos representam instruções) e as 
linguagens algorítmicas (escrita que simula uma linguagem de programação). 
Para ver a diferença, vamos considerar o seguinte algoritmo para somar ou 
subtrair dois números de acordo com a entrada do usuário que está descrito 
em linguagem natural abaixo: 
1. Guardar Resultado = 0 
2. Ler num1 e num2 
3. Ler operacao 
4. Se operacao igual a “A”, então Resultado guarda a soma de 
num1 e num2 
5. Senão Resultado guarda a subtração de num1 e num2 
6. Escrever Resultado 
7. Parar 
 
Para a representação através de fluxogramas usaríamos formas geométricas e 
as ligaríamos de acordo com a sequencia de passos que deve ser obedecida. 
As formas são: 
 
O algoritmo de soma/subtração ficaria da seguinte maneira: 
 
O interessante desse formato é que o fluxo do algoritmo fica bastante claro. O 
lado negativo é que pode ser trabalhoso desenhar um algoritmo dessa 
maneira. Por isso, é bastante comum montar algoritmos de maneira escrita. 
Pode-se usar uma linguagem mais formal como Algol, ou Portugol, mas não é 
obrigatório. 
Em linguagem algorítmica o exemplo da soma/subtração ficaria assim: 
var 
 num1, num2, resultado: inteiro 
 operacao: texto 
início 
 leia(num1); 
 leia(num2); 
 leia(operacao); 
 se operacao = “A” então 
 resultado  num1 + num2; 
 senão 
 resultado  num1 - num2; 
 fimse 
escreva(resultado); 
fim 
 
Note que estamos definindo de maneira esquemática variáveis (var), funções 
de leitura e escrita (leia e escreva), atribuições de valores a variáveis (símbolo 
 ) e condicionais (“se então senão”). Cada operação é seguida de “;” que 
finaliza a linha de código. 
Ambas as representações são apenas rascunhos, ou seja, ainda não podemos 
executar nada na máquina. No entanto podemos acompanhar linha a linha o 
algoritmo e, mentalmente, executa-lo, definido valores de leitura, anotando em 
papel os valores que as variáveis vão assumindo e verificando se no final o 
resultado esperado é alcançado. 
var 
num1, num2, resultado: inteiro  Defino que há variáveis num1, num2, 
operacao: texto resultado e operacao 
início 
leia(num1);  Chuto um nº, digamos num1 = 7 
 
leia(num2);  Digamos num2 = 3 
 
leia(operacao);  Digamos operacao = “A” 
 
se operacao = “A” então  Sim, operacao é igual a A 
 
resultado  num1 + num2;  Resultado = 7 + 3 = 10 
 
senão  Não cai no senão 
 
resultado  num1 - num2; 
fimse 
escreva(resultado); 
 
 Escreverá “10”, pois esse é o valor que 
está na variável resultado fim 
 
Para programar de fato precisamos usar a linguagem de programação.Uma 
linguagem de programação sempre tem estruturas muito bem definidas para as 
operações e recursos usados. A essas estruturas damos nome de “sintaxe”. 
Além da sintaxe, as linguagens trabalham com uma “semântica” entre suas 
estruturas, dando significado ao código. Ou seja, estruturas ou comandos 
soltos no código, por mais que estejam sintaticamente corretos, não executam 
nada por si só. 
Linguagem C# 
Para treinar a linguagem C# em seu formato mais simples, mais algorítmico, 
vamos utilizar uma espécie de compilador que executa diretamente no 
navegador. Acesse http://www.volatileread.com/UtilityLibrary/SnippetCompiler 
para experimentar trechos de código. 
 
Figura 1 – página “Snippet” compiler do Volatile Read. 
Por padrão, na caixa de texto principal da página, onde você pode digitar seu 
código, você encontrará os seguintes comandos: 
http://www.volatileread.com/UtilityLibrary/SnippetCompiler
 
Experimente clicar no botão “Run” abaixo dessa caixa de texto. O resultado do 
programa aparecerá logo abaixo, escrevendo “Hello C#”. 
 
O tipo de programa construído pelo Volatile Read é um programa chamado de 
“Console”. São programas cuja interação se dá toda por textos, sem janelas ou 
elementos visuais. A simplicidade desse tipo de aplicação é ideal para estudar 
e treinar código algorítmico. 
Pelo código inicial oferecido pelo Volatile Read podemos observar pontos 
importantes da sintaxe do C#: 
1. Espaços brancos são ignorados pelo C#. Poderíamos omitir o espaço da 
linha 4, por exemplo, ou retirar os recuos no código. No entanto é boa 
prática manter o código em níveis para ficar claro o contexto em que 
variáveis e comandos estão incluídos. 
2. As chaves { e } marcam sempre início e fim de blocos de código. 
3. As palavras “public static” são modificadores para itens da classe 
Program; void é um tipo e Main() é o nome de um método. Não se 
preocupe com esse detalhe agora; mantenha em mente, no entanto, que 
Main() contém o código que será executado no programa entre seu { 
(linha 8) e } (linha 10). 
4. Todos os métodos usam ( e ) após o nome. Dentro dos parênteses 
geralmente podemos incluir informações que serão usadas pelos 
métodos – métodos são como algoritmos que podem ser reutilizados no 
código. 
5. WriteLine() é um método da classe Console. Por isso 
Console.WriteLine() . Esse é um detalhe que também pode ser deixado 
de lado por enquanto. Vamos apenas assumir que através desse 
comando imprimimos coisas na tela. 
6. WriteLine() tem dentro de seus parênteses o valor “Hello C#”, um texto 
que será usado pelo método como o valor a ser impresso na tela. Nesse 
caso chamamos desse valor “Hello C#” de parâmetro. 
7. Todas as instruções em C# terminam com “;”. 
8. C# diferencia maiúsculas de minúsculas. Assim, minhaVariavel se 
refere a algo diferente de minhavariavel. 
 
Variáveis 
Pouca coisa no C# pode ser feita sem variáveis. As rotinas de leitura, por 
exemplo, ficam impossíveis. 
Como sabemos as variáveis nada mais são do que espaços na memória que 
possuem um endereço, recebem um determinado tipo de dado e são 
referenciados pelo seu nome. 
Diferente do Scratch, no C# as variáveis indicam qual o tipo de informação elas 
podem carregar. Entre os principais tipos estão: 
Tipo de Dado Descrição 
Int Numérico Inteiro com sinal. 
Float Numérico Decimal com precisão simples 
Double Numérico Decimal com precisão dupla 
Bool Tipo Lógico 
StringSequência de caracteres 
A sintaxe para declaração de variáveis é [tipo de dado] [nomedavariável]; 
Observe os exemplos: 
int dias; 
string nomeClienteAtual; 
float fornecedor; 
float alturaCliente; 
 
A atribuição, ou seja, a inclusão de valor em uma variável ocorre com o sinal de 
“=”. 
dias = 100; 
 
Esta última linha quer dizer que a variável “dias” recebe o valor 100. 
Exemplo 1: soma dois valores inteiros: 
using System; 
using System.Collections.Generic; 
using System.Linq; 
 
public class Program 
{ 
 public static void Main() 
 { 
 int numero1; 
 int numero2; 
 int resultado; 
 
 numero1 = 10; 
 numero2 = 5; 
 resultado = numero1 + numero2; 
 
 Console.WriteLine(resultado); 
 } 
} 
 
Nota: a partir de agora, mostraremos apenas o trecho de código interno a Main(){}. 
No código primeiro declaramos 3 variáveis, depois realizamos a atribuição de 
valor a duas delas; a resultado atribuímos a própria soma das duas outras 
variáveis. 
No fim mostramos na tela, em forma de texto, o valor da variável “resultado”. 
Vamos agora fazer uma comparação com o código em Scratch: 
 
int numero1; 
int numero2; 
int resultado; 
 
numero1 = 10; 
numero2 = 5; 
 
resultado = numero1 + numero2; 
 
Console.WriteLine(resultado); 
 
Uma última observação quanto a declarações. Se as variáveis forem do 
mesmo tipo, elas podem ser declaradas em uma mesma instrução. No exemplo 
anterior, então seria totalmente válido: 
int numero1, numero2, resultado; 
Quando temos tipos diferentes isso não é possível. 
Exemplo 2: variáveis para nome e idade. 
string nome; 
int idade; 
nome = "Fulano de tal"; 
idade = 20; 
Console.WriteLine("O nome é "+ nome + "e a idade é " + 
idade); 
 
Scratch Algoritmo C# 
 
 
var 
 idade: inteiro; 
 nome: texto; 
inicio 
 nome  “Fulano de tal”; 
 idade  20; 
 escreva("O nome é ", nome , 
"e a idade é ", idade); 
fim 
string nome; 
int idade; 
nome = "Fulano de tal"; 
idade = 20; 
Console.WriteLine("O nome é "+ 
nome + "e a idade é " + idade); 
 
Quando utilizamos texto, precisamos delimitar o valor com aspas duplas, uma 
para indicar o início do texto e outra para indicar o fim. 
 
Operadores 
No exemplo acima já utilizamos uma operação aritmética de soma. A seguir os 
principais operadores usados no C#: 
Operador Resultado 
+ Adição de valores inteiros e decimais; concatenação para 
valores de texto. 
- Subtração de valores inteiros e decimais 
* Multiplicação de valores inteiros e decimais 
/ Divisão de valores inteiros e decimais 
% Resto da divisão de valores inteiros 
= Operação de atribuição 
 
Desafio 1: experimente alterar o programa de soma do Exemplo 1 para que 
faça subtração, multiplicação e divisão dos valores. 
 
Entradas e saídas de dados em C# 
O comando padrão utilizado para entrada de dados, ou seja, a leitura das 
variáveis é o Console.ReadLine. Esse comando lê uma informação digitada 
pelo usuário e atribui a mesma a uma variável. 
Ex.: 
string nome; 
nome = Console.ReadLine(); 
 
O conteúdo lido é entendido como uma string (texto), logo deve ser atribuído a 
uma variável string, caso contrário resultará em erro. 
Para fazermos uma leitura de uma informação que será atribuída a uma 
variável numérica deverá ser feita uma conversão. 
Observe o exemplo: 
int dias; 
dias = int.Parse(Console.ReadLine()); 
 
O comando int.Parse converte a informação digitada pelo usuário 
(Console.ReadLine) em um valor inteiro que é atribuído a também variável 
inteira dias. 
O comando de saída padrão, ou seja, de impressão na tela é o 
Console.WriteLine. 
Console.WriteLine("Hello, Senac EAD"); 
Você pode ainda concatenar, ou seja juntar mensagens com os conteúdos de 
variáveis. 
Console.WriteLine("O número de dias é: "+dias); 
O caracter utilizado para concatenar Texto e variáveis é o sinal de adição (“+”). 
Exemplo 3: mostrando idade e peso. 
int idade=20; 
float peso=70f; 
string info = "você têm " +idade + "anos e pesa " + peso + 
"kg."; 
Console.WriteLine(info); 
 
Scratch Algoritmo C# 
 
 
var 
 idade: inteiro; 
 peso: real; 
 info: texto; 
inicio 
 idade  20; 
 peso  70.0; 
 info  “Você tem ”, idade, 
“e pesa”, peso; 
 escreva(info); 
fim 
int idade=20; 
float peso=70f; 
string info = "você têm " +idade 
+ "anos e pesa " + peso + "kg."; 
Console.WriteLine(info); 
 
Nota: Outra forma de substituir variáveis é utilizando uma cadeia de caracteres 
interpolada. Nessa forma você coloca o nome das variáveis entre chaves e seu 
conteúdo será colocado nos respectivos lugares. 
int idade=20; 
float peso=70f; 
string info = $"você têm {idade} anos e pesa {peso} kg."; 
 
Exemplo 4: incrementando o exemplo 1 e permitindo que o usuário informe os 
valores para a soma. 
int numero1, numero2, resultado; 
Console.WriteLine("Digite o primeiro número: "); 
numero1 = int.Parse(Console.ReadLine()); 
Console.WriteLine("Digite o segundo número: "); 
numero2 = int.Parse(Console.ReadLine()); 
resultado = numero1 + numero2; 
Console.WriteLine("Resultado " + resultado); 
 
Scratch Algoritmo C# 
var 
 numero1, numero2, resultado: inteiro 
inicio 
 escreva(“Digite o primeiro número:”); 
 leia(numero1); 
 escreva(“Digite o segundo número:”); 
 leia(numero1); 
 resultado  numero1 + numero2; 
 escreva(“Resultado”, resultado); 
fim 
int numero1, numero2, resultado; 
Console.WriteLine("Digite o primeiro 
número: "); 
numero1 = int.Parse(Console.ReadLine()); 
Console.WriteLine("Digite o segundo 
número: "); 
numero2 = int.Parse(Console.ReadLine()); 
resultado = numero1 + numero2; 
Console.WriteLine("Resultado " + 
resultado); 
 
 
Exemplo 5: recebendo informações de endereço do usuário, montando-o e 
mostrando na tela 
string log, nome; 
int numero; 
Console.WriteLine("Digite o Logradouro (r, av...)"); 
log = Console.ReadLine(); 
Console.WriteLine("Digite o nome"); 
nome = Console.ReadLine(); 
Console.WriteLine("Digite o número"); 
numero = int.Parse(Console.ReadLine()); 
Console.WriteLine("Endereço completo: " + log + " "+ nome 
+", "+ numero); 
 
Scratch Algoritmo C# 
 
 
var 
 log, nome: texto 
 numero: inteiro 
inicio 
 escreva("Digite o Logradouro"); 
 leia(log); 
 escreva("Digite o nome"); 
 leia(nome); 
 escreva("Digite o número"); 
 leia(nome); 
 escreva("Endereço completo: ", log 
, " ", nome ,", ", numero); 
fim 
string log, nome; 
int numero; 
Console.WriteLine("Digite o Logradouro"); 
log = Console.ReadLine(); 
Console.WriteLine("Digite o nome"); 
nome = Console.ReadLine(); 
Console.WriteLine("Digite o número"); 
numero = int.Parse(Console.ReadLine()); 
Console.WriteLine("Endereço completo: " + 
log + " "+ nome +", "+ numero); 
 
Exemplo 6: convertendo a temperatura informada pelo usuário em Celsius 
para a escala Fahrenheit. A conversão obedece à fórmula (Celsius *1,8) + 32. 
float tc,tf; 
Console.WriteLine("Informe em Celsius:"); 
tc = float.Parse(Console.ReadLine()); 
tf = (tc * 1.8f) + 32f; 
Console.WriteLine($"{tf} Fahrenheit"); 
 
Scratch Algoritmo C# 
 
 
var 
 tc, tf: real 
inicio 
 escreva("Informe em Celsius:"); 
 leia(tc); 
 tf  (tc * 1.8) + 32; 
 escreva(tf ," Fahrenheit”); 
fim 
float tc,tf; 
Console.WriteLine("Informe em Celsius:"); 
tc = float.Parse(Console.ReadLine()); 
tf = (tc * 1.8f) + 32f; 
Console.WriteLine($"{tf} Fahrenheit"); 
 
Note que quando usamos tipo float colocamos um “f” à frente do numeral. Isso 
o diferencial do tipo “double”, que também é de casas decimais, mas permite 
números mais extensos. Note ainda que para números decimais no C# usamos 
ponto para separar as casas decimais, nunca vírgula. 
 
Desafio 2: escreva um programa em C# que pergunte o nome da pessoa e leia 
esse valor, depois pergunte o ano de nascimento e leia esse valor. Em 
seguida, faça a conta de quantos anos a pessoa tem (ano atual – idade) e 
mostre em formato de texto a frase “Olá [nome informado] sua idade é [idade 
calculada]” (substituindo os valores nos colchetes pelos valores obtidos).Desafio 3: programe em C# uma aplicação que receba a idade de uma 
pessoa. A partir disso, calcule quantos dias a pessoa viveu (considere 1 ano = 
365 dias, ignorando bissextos). Faça o gato dizer essa informação na tela. 
Depois, a partir dos dias, calcule quantas horas a pessoa viveu e faça o gato 
dizer essa resposta na tela. 
Desafio 4: desenvolva um programa em C# que receba uma temperatura em 
Celsius e transforme em escala Kelvin (formula: Kelvin = Celsius + 273,15). 
 
Comparações e condicionais em C# 
É claro que em C#, assim como no Scratch, podemos tomar decisões. Para 
isso, usamos operadores relacionais, ou seja, operadores que permitem 
realização de comparações 
Operador Descrição No Scratch 
< Menor que 
 
> Maior que 
 
<= Menor ou igual a 
 
>= Maior ou igual a 
 
== Igual a (sim, são dois 
sinais de =) 
!= Diferente de 
 
 
Também obviamente podemos usar esses operadores entre valores constantes 
ou entre variáveis. As seguintes são comparações válidas: 
num1 > 100 
10 != 0 
num1 <= num2 
Comparações entre tipos diferentes são inválidas e geram erro: 
10 < "abobora" 
 
As comparações resultarão nos valores Verdadeiro (True) ou 
Falso (False). 
 
Exemplo 7: comparando se número digitado pelo usuário é maior que 10. 
int numero; 
numero = int.Parse(Console.ReadLine()); 
Console.WriteLine(numero > 10); 
 
Isso nos leva diretamente à estrutura “se/então”. Ou, no caso do C#, “if/else.” 
Scratch Algoritmos C# 
 
Se <condição> então 
 <código> 
Senão 
 <código> 
fimse 
if(<condição>) 
{ 
 <código> 
} 
else 
{ 
 <código> 
} 
 
A estrutura if/else se comporta da mesma maneira que no Scratch: o programa 
faz a comparação que surge entre os parênteses; se ela for verdadeira então o 
primeiro bloco de códigos é executado; caso contrário, se houver “else”, o 
bloco correspondente é executado. 
Exemplo 8: comparando se número digitado pelo usuário é positivo. 
int numero; 
numero = int.Parse(Console.ReadLine()); 
if(numero > 0) 
{ 
 Console.WriteLine("positivo"); 
} 
else 
{ 
 Console.WriteLine("negativo"); 
} 
Scratch Algoritmo C# 
 
 
var 
 numero: inteiro; 
inicio 
 leia(numero); 
 se numero >0 entao 
 escreva(“positivo”); 
 senão 
 escreva(“negativo”); 
 fimse 
fim 
 
int numero; 
numero = int.Parse(Console.ReadLine()); 
if(numero > 0) 
{ 
 Console.WriteLine("positivo"); 
} 
else 
{ 
 Console.WriteLine("negativo"); 
} 
No exemplo anterior, a variável “numero” recebe o valor que o usuário digita e 
esse valor é comparado com “0”. Se for maior que zero, indica que é positivo; 
caso contrário, indica que esse número é negativo ou igual a zero. 
Exemplo 9: retomando o primeiro exemplo do material, um programa que 
realiza um cálculo de adição ou subtração de acordo com o que o usuário 
informa (“A” para adição e “S” ou outra letra para subtração). 
int num1, num2, resultado; 
string operacao; 
 
num1 = int.Parse(Console.ReadLine()); 
num2 = int.Parse(Console.ReadLine()); 
operacao = Console.ReadLine(); 
 
if(operacao == "A") 
{ 
 resultado = num1 + num2; 
} 
else 
{ 
 resultado = num1 - num2; 
} 
 
Console.WriteLine(resultado); 
Scratch Algoritmo C# 
 
 
var 
 num1, num2, resultado: 
inteiro 
 operacao: texto 
início 
 leia(num1); 
 leia(num2); 
 leia(operacao); 
 se operacao = “A” então 
 resultado  num1 + num2; 
 senão 
 resultado  num1 - num2; 
 fimse 
 escreva(resultado); 
fim 
 
int num1, num2, resultado; 
string operacao; 
 
num1 = 
 int.Parse(Console.ReadLine()); 
num2 = 
 int.Parse(Console.ReadLine()); 
operacao = Console.ReadLine(); 
 
if(operacao == "A") 
{ 
 resultado = num1 + num2; 
} 
else 
{ 
 resultado = num1 - num2; 
} 
 
Console.WriteLine(resultado); 
Cuidado com o operador “=”: “operacao = "A"”, por exemplo, significa uma 
atribuição de variável, e não uma comparação. 
Assim como no Scratch, podemos combinar comparações com E (quando 
queremos que ambas as condições sejam verdadeiras) e OU (quando 
queremos que pelo menos uma das condições sejam verdadeiras). 
Operador Descrição No Scratch 
&& Operador lógico “E”. 
Ex.: (num1 > 10 && num1 < 20) 
 
|| Operador lógico “OU”. 
Ex.: (num1 == 0 || num1 > 100) 
 
 
Exemplo 10: programa que verifica se o aluno está aprovado. Ele será 
aprovado quando tiver média maior ou igual a sete e frequência maior ou igual 
a 75%. 
float media,frequencia; 
 
Console.WriteLine("Informe sua média:"); 
media = float.Parse(Console.ReadLine()); 
 
Console.WriteLine("Informe sua frequencia:"); 
frequencia = float.Parse(Console.ReadLine()); 
 
if(media>=7 && frequencia>=75) 
{ 
 Console.WriteLine("Você está aprovado."); 
} 
else 
{ 
 Console.WriteLine("Você está reprovado."); 
} 
Scratch 
 
 
Algoritmo 
var 
 media, frequencia: real 
início 
 escreva(“Informe sua média”); 
 leia(media); 
 escreva(“Informe sua frequência”); 
 leia(frequencia); 
 se media ≥ 7 E frequencia ≥ 75 então 
 escreva(“Você está aprovado”); 
 senão 
 escreva(“Você está reprovado”); 
 fimse 
fim 
C# 
float media,frequencia; 
Console.WriteLine("Informe sua média:"); 
media = float.Parse(Console.ReadLine()); 
Console.WriteLine("Informe sua frequencia:"); 
frequencia = float.Parse(Console.ReadLine()); 
if(media>=7 && frequencia>=75) 
{ 
 Console.WriteLine("Você está aprovado."); 
} 
else 
{ 
 Console.WriteLine("Você está reprovado."); 
} 
 
Desafio 5: escreva um programa em C# que leia dois valores inteiros 
(considere que não serão lidos valores iguais) e escreva na tela o maior deles. 
Desafio 6: escreva um programa em C# que verifique se um número é par ou 
ímpar. Um número é par quando o resto de sua divisão por 2 é zero; para obter 
o resto da divisão, use o operador % (ex: 6 % 2 resultará em 0). 
Desafio7: expandindo o código do desafio anterior, faça um jogo de par ou 
ímpar. Peça que o usuário informa um número para o jogador 1 e outro para o 
jogador 2. Assuma sempre que jogador 1 optará por par e jogador 2 por ímpar. 
Some os números e verifique quem ganhou, mostrando na tela, em texto, quem 
foi vencedor.

Continue navegando