Você está aqui: C# ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Uma função C# que recebe um valor inteiro e informa se o mesmo é um número primo - Exercícios Resolvidos de C#Quantidade de visualizações: 283 vezes |
Pergunta/Tarefa: Um inteiro é um número primo se ele for divisível somente por 1 e por ele mesmo. Assim, 2, 3, 5 e 7 são primos, enquanto 4, 6, 8 e 9 não são. Escreva uma função C# que recebe um valor inteiro e informe se o mesmo é um número primo. Você deverá usar a seguinte assinatura para a função: static bool primo(int valor) { // implementação aqui } Informe um valor inteiro: 7 O numero informado é primo Veja a resolução comentada deste exercício em 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) { int numero; // vamos pedir para o usuário informar um número inteiro Console.Write("Informe um valor inteiro: "); numero = Int32.Parse(Console.ReadLine()); // vamos verificar se o valor informado é um número primo if (primo(numero)) { Console.WriteLine("O numero informado é primo."); } else { Console.WriteLine("O numero informado NÃO é primo."); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } // função que retorna verdadeiro se o número fornecido // como argumento for primo static bool primo(int valor) { // se o valor fornecido for 7, a variável i do laço contará // de 2 até 7 / 2 (divisão inteira), ou seja, 3. Se o // módulo de 7 por qualquer um dos valores neste intervalo // for igual a 0, então o número não é primo for (int i = 2; i <= (valor / 2); i++) { if (valor % i == 0) { return false; // não é primo } } return true; } } } |
Link para compartilhar na Internet ou com seus amigos: |
C# ::: Dicas & Truques ::: Validação de Dados |
C# Windows Forms - Como validar o conteúdo de uma caixa de texto usando o evento Validating da classe ControlQuantidade de visualizações: 17286 vezes |
O evento Validating (disponível para todas as classes que herdam de System.Windows.Forms.Control) é muito útil quando precisamos verificar a validade dos valores inseridos nos controle Windows Forms. Neste exemplo mostrarei como usá-lo para validar o conteúdo de um TextBox. Aqui veremos como verificar se o conteúdo inserido é um valor inteiro válido. Tudo começa com a propriedade CausesValidation da classe Control. Esta propriedade nos permite definir se o controle provocará uma validação de seus dados quando o mesmo estiver prestes a perder o foco, ou seja, o usuário começara a interagir com outro controle após inserir dados no controle alvo da validação. Se o valor desta propriedade for true a validação ocorrerá. Em seguida voltamos nossa atenção para o evento Validating (também declarado originalmente na classe Control). Este evento é disparado quando a propriedade CausesValidation é true e o controle está prestes a perder o foco (o usuário está saindo para interagir com outro controle). Veja a ordem dos eventos quando estamos saindo do controle usando o teclado: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- a) Leave b) Validating c) Validated d) LostFocus Se estivermos saindo do controle usando o mouse (clicando em outro controle), a ordem é: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- a) Leave b) Validating c) Validated Veja um exemplo do uso do evento Validating de um TextBox: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- private void textBox1_Validating(object sender, CancelEventArgs e){ MessageBox.Show("Meu conteúdo pode ser validado agora"); } Experimente executar este código, coloque o foco na caixa de texto e depois "saia" para outro componente. Você verá a caixa de mensagem ser exibida. O tratador de evento Validating recebe um objeto da classe CancelEventArgs. Esta classe possui apenas uma propriedade chamada Cancel. Se o valor desta propriedade for definido como true, o evento Validating (e todos que viriam após ele) é cancelado. Isso faz com que o foco fique preso no controle até que o usuário informe o valor correto. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- private void textBox1_Validating(object sender, CancelEventArgs e){ // vamos verificar se a caixa de texto contém um valor inteiro válido try{ // vamos tentar converter o texto recebido em um valor inteiro int valor = Int32.Parse(textBox1.Text); MessageBox.Show("Validação ocorreu com sucesso!"); } catch(FormatException fe){ // não conseguimos converter o texto em um valor inteiro MessageBox.Show("Valor inválido! Tente novamente! " + fe.Message.ToString()); // limpamos a caixa de texto textBox1.Text = ""; // e "prendemos" o foco na caixa de texto e.Cancel = true; } } Neste trecho de código nós usamos um bloco try...catch para tentar converter o texto do TextBox em um valor inteiro. Se houver falha na conversão nós avisamos o usuário, limpamos a caixa de texto e forçamos o usuário a fazer a correção. Para finalizar, entra em cena o evento Validated. Este evento é disparado imediatamente após o evento Validating finalizar sua parte e é um bom lugar para avisarmos o usuário sobre o sucesso da validação ou remover quaisquer efeito visual que tenhamos inserido durante o processo de validação. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- private void textBox1_Validating(object sender, CancelEventArgs e){ // vamos verificar se a caixa de texto contém um valor inteiro válido try{ // vamos tentar converter o texto recebido em um valor inteiro int valor = Int32.Parse(textBox1.Text); } catch(FormatException fe){ // não conseguimos converter o texto em um valor inteiro MessageBox.Show("Valor inválido! Tente novamente! " + fe.Message.ToString()); // limpamos a caixa de texto textBox1.Text = ""; // e "prendemos" o foco na caixa de texto e.Cancel = true; } } private void textBox1_Validated(object sender, EventArgs e){ MessageBox.Show("Validação ocorreu com sucesso!"); } Veja que tudo que fizemos aqui foi remover a mensagem de sucesso de validação do evento Validating para o evento Validated. |
C# ::: LINQ ::: LINQ to Objects |
Como retornar o primeiro elemento de um array de strings em C# usando a função First() do LINQQuantidade de visualizações: 870 vezes |
Nesta dica mostrarei um exemplo bem simples do uso do método First() do LINQ (Language-Integrated Query) do C# para retornar o primeiro 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 primeiro elemento do vetor string primeira = linguagens.First(); // vamos mostrar o resultado Console.WriteLine("A primeira linguagem é: {0}", primeira); Console.WriteLine("Pressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: A primeira linguagem é: Java Fique atento ao fato de que o método First() 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.First[TSource](IEnumerable`1 source) at Estudos.Principal.Main(String[] args) in C:\estudos_c#\Estudos\Principal.cs:line 11 |
C# ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística |
Exercícios Resolvidos de C# - Como calcular juros simples em C# - Um programa C# que lê o valor principal, o tempoQuantidade de visualizações: 565 vezes |
Pergunta/Tarefa: Saber como escrever um programa C# que recebe o valor principal, o tempo e a taxa de juros e retorna os juros simples a serem pagos ou recebidos é uma habilidade que todo programador deve aprender em algum ponto de sua carreira. Sendo assim, escreva um algoritmo em C# que pede para o usuário informar um valor a ser pago ou recebido, o tempo em dias, meses ou anos e a taxa de juros (sem dividi-la por 100) e retorne os juros simples a serem pagos ou recebidos. Note que, se você quiser mostrar o valor total a ser pago ou recebido, basta somar os juros ao valor principal. Antes, porém, veja a fórmula do cálculo de juros simples: \[\text{Juros} = \frac{\text{C} \times \text{i} \times \text{t}}{100}\] Onde: C é o valor a ser pago ou a ser recebido; i é a taxa de juros (sem dividir por 100); t é o tempo em dias, meses, anos, etc. Sua saída deverá ser parecida com: Informe o valor principal: 600 Taxa de juros: 12 Informe o tempo: 5 Juros a serem pagos ou recebidos: 360.0 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) { // vamos ler o valor principal Console.Write("Informe o valor principal: "); double principal = Double.Parse(Console.ReadLine()); // agora vamos ler a taxa de juros Console.Write("Taxa de juros: "); double taxa = Double.Parse(Console.ReadLine()); // finalmente o tempo em dias, meses, anos, etc Console.Write("Informe o tempo: "); int tempo = Int32.Parse(Console.ReadLine()); // vamos calcular os juros double juros = (principal * taxa * tempo) / 100; // e mostramos o resultado Console.WriteLine("Juros a serem pagos ou recebidos: " + juros); Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software 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 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 |