Você está aqui: C# ::: Desafios e Lista de Exercícios Resolvidos ::: Laços

Faça um programa que sorteie um número aleatório entre 0 e 500 e pergunte ao usuário qual é o "número mágico". O programa deverá - Desafio de Programação Resolvido em C#

Quantidade de visualizações: 287 vezes
Pergunta/Tarefa:

Faça um programa que sorteie um número aleatório entre 0 e 500 e pergunte ao usuário qual é o "número mágico". O programa deverá indicar se a tentativa efetuada pelo usuário é maior ou menor que o número mágico e contar o número de tentativas. Quando o usuário conseguir acertar o número o programa deverá classificar o usuário como:

De 1 a 3 tentativas: muito sortudo
De 4 a 6 tentativas: sortudo
De 7 a 10 tentativas: normal
> 10 tentativas: tente novamente

Sua saída deverá ser parecida com:

Adivinhe o número mágico: 100
Tente um número menor.

Adivinhe o número mágico: 50
Tente um número maior.

Adivinhe o número mágico: 60
Tente um número maior.

Adivinhe o número mágico: 80
Tente um número maior.

Adivinhe o número mágico: 90
Tente um número maior.

Adivinhe o número mágico: 95
Tente um número menor.

Adivinhe o número mágico: 94
Tente um número menor.

Adivinhe o número mágico: 93
Tente um número menor.

Adivinhe o número mágico: 92
Você acertou o número em 9 tentativas.
Classificação: Normal
Resposta/Solução:

Veja a resolução comentada deste exercício usando C#:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Principal {
    // função principal do programa C#
    static void Main(string[] args) {
      // variáveis usadas na resolução do problema
      int numero_magico, palpite, tentativas = 0;
      bool acertou = false;

      // vamos sortear o número entre 0 e 500
      Random rand = new Random();
      numero_magico = rand.Next(0, 501);

      // um laço que repete enquanto o usuário não
      // acertar o número mágico
      while (!acertou) {
        Console.Write("Adivinhe o número mágico: ");
        palpite = Int32.Parse(Console.ReadLine());

        // registra essa tentativa
        tentativas = tentativas + 1;

        // o usuário acertou o número mágico?
        if (palpite == numero_magico) {
          Console.WriteLine("Você acertou o número em " + tentativas + " tentativas.");

          // mostra a classificação do usuário
          if (tentativas <= 3) {
            Console.WriteLine("Classificação: Muito Sortudo");
          }
          else if ((tentativas >= 4) && (tentativas <= 4)) {
            Console.WriteLine("Classificação: Sortudo");
          }
          else if ((tentativas >= 7) && (tentativas <= 10)) {
            Console.WriteLine("Classificação: Normal");
          }
          else {
            Console.WriteLine("Classificação: Tente Novamente");
          }

          // sai do laço
          acertou = true;
        }
        else {
          // indica se o palpite é maior ou menor
          if (palpite < numero_magico) {
            Console.WriteLine("Tente um número maior.\n");
          }
          else {
            Console.WriteLine("Tente um número menor.\n");
          }
        }
      }

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}


Link para compartilhar na Internet ou com seus amigos:

C# ::: Namespace System.Windows.Forms ::: Formulários e Janelas

Como usar a classe Form em suas aplicação C# Windows Form

Quantidade de visualizações: 873 vezes
A classe Form é usada para representar as janelas (formulários) ou caixas de diálogo que compõem a interface gráfica de uma aplicação Windows Forms. Veja sua posição na hierarquia de classes da plataforma.NET:

System.Object 
  System.MarshalByRefObject 
    System.ComponentModel.Component 
      System.Windows.Forms.Control 
        System.Windows.Forms.ScrollableControl 
          System.Windows.Forms.ContainerControl 
            System.Windows.Forms.Form


É importante conhecer algumas classes derivadas da classe Form. Entre estas classes podemos citar:

- System.ComponentModel.Design.CollectionEditor.CollectionForm
- System.Messaging.Design.QueuePathDialog
- System.ServiceProcess.Design.ServiceInstallerDialog
- System.Web.UI.Design.WebControls.CalendarAutoFormatDialog
- System.Web.UI.Design.WebControls.RegexEditorDialog
- System.Windows.Forms.Design.ComponentEditorForm
- System.Windows.Forms.PrintPreviewDialog
- System.Windows.Forms.ThreadExceptionDialog

Uma aplicação Windows Forms em C# é construida a partir de uma ou mais janelas. A classe Form permite criar formulários padrões, de ferramentas, sem bordas e flutuantes, cada um direcionado a uma determinada funcionalidade. É possível também usar a classe Form para criar caixas de diálogo modais.

Há ainda um tipo especial de janela (ou formulário) conhecido como formulário de interface de múltiplos documentos (MDI) que contêm outros formulários chamados de filhos (MDI child forms). Uma janela do tipo MDI pode ser criada definindo-se o valor true para a propriedade IsMdiContainer da classe Form. Os formulários filhos MDI são criados definindo-se o nome do formulário-pai para a propriedade MdiParent do formulário que atuará como filho.

Por meio das propriedades disponíveis na classe Form nós podemos determinar a aparência, tamanho, cor e os aspectos de gerenciamento da janela do formulário ou caixa de diálogo que estamos criando. A propriedade Text permite definir o título da janela. As propriedades Size e DesktopLocation permitem definir o tamanho e posição inicial da janela. A propriedade ForeColor define a cor do texto padrão de todos os componentes colocados no formulário. As propriedades FormBorderStyle, MinimizeBox e MaximizeBox permitem definirmos se o formulário poderá ser minimizado, maximizado ou redimensionado em tempo de execução.

Além das propriedades, podemos usar os métodos da classe Form. Por exemplo, podemos usar o método ShowDialog() para exibir um formulário como uma caixa de diálogo modal. Podemos também efetuar uma chamada ao método SetDesktopLocation() para posicionar o formulário em uma determinada região do desktop.

Os eventos disponíveis na classe Form permitem responder às ações realizadas no formulário. Podemos, por exemplo, usar o evento Activated para realizar operações tais como atualizar as informações exibidas nos controles do formulário quando este for ativado.

Se estiver usando o Visual Studio 2005, 2008 ou mais recente, o formulário inicial de sua aplicação Windows Forms C# já será exibido inicialmente seguinte os seguintes passos:

a) Vá no menu File -> New -> Project;
b) Em Project types selecione Visual C# -> Windows;
c) Em Templates selecione Windows Application;
d) Dê um nome para o projeto, escolha um local, um nome para a solução e clique OK. Imediatamente o projeto será criado e você já verá o formulário principal da aplicação.
e) Vá em View -> Toolbox. Clique e arraste alguns componentes para o formulário;
f) Pressione F5 e execute a aplicação.

Pronto! Agora é só verificar todas as dicas, truques e anotações para aprender e tirar proveito total da classe Form.


C# ::: Dicas & Truques ::: Strings e Caracteres

Como contar as palavras de uma frase ou texto em C# usando as funções IndexOf(), Replace() e Split() da classe String

Quantidade de visualizações: 12028 vezes
Este exemplo mostra como retornar a quantidade de palavras em uma frase ou texto usando métodos da classe String do C#. Veja como usar os métodos IndexOf() e Replace() para remover os espaços em excesso e, em seguida, o método Split() para quebrar as partes da frase ou texto usando um único espaço como separador.

Veja o código completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto muito de C# e Java";
      int cont = 0;

      // remove os espaços em excesso
      while (frase.IndexOf("  ") >= 0) {
        frase = frase.Replace("  ", " ");
      }

      // remove espaços antes e depois da string
      frase = frase.Trim();

      // conta as palavras
      cont = frase.Split(" ").Length;
      Console.WriteLine("A frase contém " + cont + " palavras");

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

A frase contém 6 palavras


C# ::: LINQ ::: LINQ to Objects

Como retornar o último elemento de um array de strings em C# usando a função Last() do LINQ

Quantidade de visualizações: 1073 vezes
Nesta dica mostrarei um exemplo bem simples do uso do método Last() do LINQ (Language-Integrated Query) do C# para retornar o último elemento de um vetor de strings.

É claro que este método funciona com qualquer coleção, mas um exemplo simples nos ajudará a entender melhor o seu funcionamento. Em outras dicas eu aprofundo o uso deste método.

Vamos ao código então. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;
using System.Linq;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // vamos construir um vetor de strings
      string[] linguagens = {"Java", "Python", "PHP", "Ruby"};
      
      // vamos obter o último elemento do vetor
      string ultimo = linguagens.Last();

      // vamos mostrar o resultado
      Console.WriteLine("A última linguagem é: {0}", ultimo);

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

A última linguagem é: Ruby

Fique atento ao fato de que o método Last() pode atirar uma exceção do tipo InvalidOperation se o array ou coleção estiver vazia ou não incluir nenhum elemento que se encaixe nas condições testadas.

Veja o resultado ao chamarmos este método em um vetor vazio:

System.InvalidOperationException
HResult=0x80131509
Message=Sequence contains no elements
Source=System.Linq
StackTrace:
at System.Linq.ThrowHelper.ThrowNoElementsException()
at System.Linq.Enumerable.Last[TSource](IEnumerable`1 source)
at Estudos.Principal.Main(String[] args) in C:\estudos_c#\Estudos\Principal.cs:line 11


Vamos testar seus conhecimentos em JavaScript

Analise o seguinte código JavaScript

var a = new Array();
var b = new Array();
a[1] = 3;
b[2] = 5;
a = b;

Quais valores estão contidos em a[1] e a[2] depois da execução deste código?

A) a[1] é 3 e a[2] é 5.

B) a[1] é indefinido e a[2] é 5.

C) ambos a[1] e a[2] são indefinidos.

D) A execução deste código provoca um erro.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

O exercício do direito à propriedade

O direito de passagem é um direito de vizinhança reconhecido por lei no caso de terreno encravado e de passagem de cabos, tubulações e dutos na propriedade do vizinho. Assinale a alternativa correta sobre o direito de passagem enquanto direito de vizinhança e a ação de passagem forçada:

A) É possível condenar judicialmente o vizinho a conceder passagem forçada mesmo que haja acesso à via pública, mas que o acesso se dê de forma mais cômoda e facilitada se passar pela propriedade dele.

B) A ação de passagem forçada é possível no caso de terreno encravado sem acesso à via pública e para passagem de cabos, tubulações e dutos para serviços essenciais.

C) Se o proprietário vendeu parte do terreno que lhe pertencia, e ficou sem acesso à via pública, pode, depois, pleitear direito de passagem forçada pelo terreno do vizinho.

D) O vizinho que ganha do outro o direito à passagem forçada não será obrigado a indenizá-lo, pois esse direito decorre de lei.

E) Se ocorrer concessão de direito de passagem de cabos e tubulações na propriedade do vizinho e esses apresentarem risco, fica por conta dele as obras de segurança, pois ele é o proprietário e a quem foi atribuído o dever de passagem.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Alvenaria: Técnicas construtivas

Em alvenaria de vedação (preenchimento dos vãos das estruturas de concreto armado), um procedimento padrão deve ser efetuado para evitar o surgimento de fissuras entre a parede e a viga que fica imediatamente acima. O levantamento da parede é interrompido a cerca de 20 cm do respaldo, e deixa-se curar por alguns dias antes do fechamento com tijolos inclinados ou cortados na diagonal. Esse procedimento é denominado:

A) Emboço.

B) Encunhamento.

C) Cisalhamento.

D) Escantilhão.

E) Chapisco.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Hidrologia

Quantas são as unidades hidrográficas presentes no território do Brasil?

A) 10.

B) 11.

C) 12.

D) 15

E) 26.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Analise o seguinte código Python

a = 1
while True:
  if a % 3 == 0:
    break
  print(a) 
  a += 1

Qual é o resultado de sua execução?

A) Um erro de execução

B) 1 2

C) 1 2 3

D) Um laço while infinito
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 30 usuários muito felizes estudando em nosso site.