Você está aqui: C# ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Ler os lados de um triângulo e informar se ele é isósceles, escaleno ou equilátero - Desafio de Programação Resolvido em C#Quantidade de visualizações: 477 vezes |
Pergunta/Tarefa: Um triângulo é uma forma geométrica (polígono) composta de três lados, sendo que cada lado é menor que a soma dos outros dois lados. Assim, para que um triângulo seja válido, é preciso que seus lados A, B e C obedeçam à seguinte regra: A < (B + C), B < (A + C) e C < (A + B). Escreva um programa C# que leia os três lados de um triângulo e verifique se tais valores realmente formam um triângulo. Se o teste for satisfatório, informe se o triângulo é isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou equilátero (todos os lados iguais). Sua saída deverá ser parecida com: Informe o primeiro lado do triângulo: 30 Informe o segundo lado do triângulo: 40 Informe o terceiro lado do triângulo: 60 O triângulo é escaleno Veja a resolução comentada deste exercício usando C#: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- 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 lado_a, lado_b, lado_c; // vamos ler o primeiro lado do triângulo Console.Write("Informe o primeiro lado do triângulo: "); lado_a = Int32.Parse(Console.ReadLine()); // vamos ler o segundo lado do triângulo Console.Write("Informe o segundo lado do triângulo: "); lado_b = Int32.Parse(Console.ReadLine()); // vamos ler o terceiro lado do triângulo Console.Write("Informe o terceiro lado do triângulo: "); lado_c = Int32.Parse(Console.ReadLine()); // os lados informados formam um triângulo? if ((lado_a < (lado_b + lado_c)) && (lado_b < (lado_a + lado_c)) && (lado_c < (lado_a + lado_b))) { // é um triângulo equilátero (todos os lados iguais)? if ((lado_a == lado_b) && (lado_b == lado_c)) { Console.WriteLine("O triângulo é equilátero"); } else { // é isósceles (dois lados iguais e um diferente)? if ((lado_a == lado_b) || (lado_a == lado_c) || (lado_c == lado_b)) { Console.WriteLine("O triângulo é isósceles"); } else { // é escaleno Console.WriteLine("O triângulo é escaleno"); } } } else { Console.WriteLine("Os lados informados não formam um triângulo."); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } |
![]() |
C# ::: Windows Forms ::: ListBox |
Como inserir um item em uma determinada posição da ListBox do C# Windows Forms usando o método Insert()Quantidade de visualizações: 770 vezes |
Em algumas situações nós gostaríamos de adicionar um novo item a uma ListBox do C# Windows Forms e indicar a posição (índice) na qual ela deverá ficar. Para isso podemos usar a função Insert() do objeto Items da ListBox. O método Insert() recebe o índice no qual o elemento será inserido e o item a ser inserido. Veja um exemplo de seu uso no trecho de código a seguir: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- private void button2_Click(object sender, EventArgs e) { // insere um item na terceira posição listBox1.Items.Insert(2, "Fortaleza"); } Se o índice fornecido para o método Insert() não estiver dentro da faixa de índices válidos para os elementos da ListBox, uma exceção do tipo ArgumentOutOfRangeException será atirada: System.ArgumentOutOfRangeException HResult=0x80131502 Message=InvalidArgument=Value '20' não é um valor válido para 'index'. Parameter name: index Source=System.Windows.Forms StackTrace: em System.Windows.Forms.ListBox.ObjectCollection.Insert(Int32 index, Object item) |
C# ::: Dicas & Truques ::: Data e Hora |
Como exibir a data e hora atual no formato longo em C# usando o sinalizador {0:F} da função Format() da classe StringQuantidade de visualizações: 88 vezes |
Nesta dica mostrarei como podemos tirar proveito do método Format() da classe String da linguagem C# e do sinalizador {0:F} para mostrar a data e hora atual no formato completo, ou seja, na forma "quarta-feira, 16 de março de 2022 10:13:42". Veja o exemplo a seguir: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- using System; namespace Estudos { class Program { static void Main(string[] args) { // vamos obter a data e hora atuais DateTime dataHora = DateTime.Now; // mostramos a data e hora no formato longo System.Console.WriteLine("Hoje é: {0:F}", dataHora); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Hoje é: quarta-feira, 16 de março de 2022 10:17:29 Note que aqui eu coloquei o especificador de formatação direto na saída do programa. Podemos usá-lo também em uma variável. Veja: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- using System; namespace Estudos { class Program { static void Main(string[] args) { // vamos obter a data e hora atuais DateTime dataHora = DateTime.Now; // guardamos a data e hora em uma variável string dataHoraStr = String.Format("{0:F}", dataHora); // mostramos o resultado System.Console.WriteLine("Hoje é: " + dataHoraStr); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } |
C# ::: Windows Forms ::: TextBox |
C# Windows Forms - Como criar uma caixa de texto TextBox do tipo senha (password)Quantidade de visualizações: 14373 vezes |
Algumas vezes precisamos fazer com que um TextBox se comporte como uma caixa de texto do tipo senha. Para isso só precisamos manipular sua propriedade PasswordChar. Esta propriedade pode ser definida em tempo de design (usando a janela de propriedades Properties) ou em tempo de execução. Veja:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- private void button2_Click(object sender, EventArgs e){ // vamos definir o caractere a ser usado como máscara para a // digitação dos caracteres de senha textBox1.PasswordChar = '*'; } Em tempo de execução o valor da propriedade PasswordChar pode ser obtido da seguinte forma: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- private void button2_Click(object sender, EventArgs e){ // vamos definir o caractere a ser usado como máscara para a // digitação dos caracteres de senha textBox1.PasswordChar = '*'; // vamos obter o caractere usado como máscara para a digitação // dos caracteres de senha char letra = textBox1.PasswordChar; MessageBox.Show("O caractere usado para a propriedade PasswordChar é: " + letra); } É possível também forçar o TextBox a usar o caractere de senha usado pelo Windows. Para isso só precisamos fornecer o valor true para a propriedade UseSystemPasswordChar. Veja: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- private void button2_Click(object sender, EventArgs e){ // queremos que o caractere usado como máscara para a digitação // de senhas seja o mesmo do sistema textBox1.UseSystemPasswordChar = true; } |
C# ::: Dicas & Truques ::: Data e Hora |
Como usar a classe Calendar em suas aplicações C#Quantidade de visualizações: 11649 vezes |
A classe Calendar da plataforma .NET está presente no namespace System.Globalization. Esta é uma classe abstrata (não pode ser instanciada e serve somente como classe base para futuras implementações) que implementa a interface ICloneable. Veja sua posição na hierarquia de classes da plataforma .NET:System.Object System.Globalization.Calendar Um calendário divide o tempo em unidades, tais como semanas, meses e anos. O número, comprimento e início destas divisões variam de acordo com cada calendário. Qualquer momento no tempo pode ser representado como um conjunto de valores numéricos usando um calendário em particular. Por exemplo, um equinócio vernal ocorreu em (1999, 3, 20, 8, 46, 0, 0.0) no calendário Gregoriano (Gregorian calendar), ou seja, 20 de março de 1999 C.E às 8:46:00:0.0. Uma implementação de Calendar pode mapear cada data na faixa de um calendário específico para um conjunto similiar de valores numéricos, e DateTime pode mapear tais conjuntos de valores numéricos para uma representação textual usando informações de Calendar e DateTimeFormatInfo. A representação textual pode ser dependente de cultura (culture-sensitive) (por exemplo, "8:46 AM March 20th 1999 AD" para a cultura en-US) ou independente de cultura (culture-insensitive) (por exemplo, "1999-03-20T08:46:00" no formato ISO 8601). Uma implementação de Calendar pode definir uma ou mais eras. A classe Calendar identifica tais eras como uma enumeração de inteiros na qual a era atual (CurrentEra) tem o valor 0. Para compensar a diferença entre o ano do calendário e a tempo real que a terra se movimenta ao redor do sol ou o tempo real que a lua se movimenta ao redor da terra, um ano bissexto tem um número diferente de dias que um ano padrão de um calendário. Cada implementação de Calendar define anos bissextos de forma diferenciada. Para fins de consistência, a primeira unidade de cada intervalo (por exemplo, o primeiro mês) recebe o valor 1. O trecho de código abaixo mostra como obter o calendário padrão não dependente de cultura e então exibir o valor numérico referente ao dia do mês: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- static void Main(string[] args){ // using System.Globalization; // obtém uma instância da implementação padrão de // Calendar não dependente da cultura local Calendar c = CultureInfo.InvariantCulture.Calendar; // obtém a data e hora atual DateTime agora = DateTime.Now; // obtém o dia do ano int dia = c.GetDayOfMonth(agora); Console.WriteLine("O dia do mês é: {0}", dia); // pausa o programa Console.ReadKey(); } O namespace System.Globalization inclui as seguintes implementações de Calendar: GregorianCalendar, HebrewCalendar, HijriCalendar, JapaneseCalendar, JulianCalendar, KoreanCalendar, TaiwanCalendar e ThaiBuddhistCalendar. |
C# ::: Dicas & Truques ::: Arquivos e Diretórios |
Como renomear ou mover arquivos em C# usando a função Move() da classe FileQuantidade de visualizações: 16430 vezes |
O método Move() da classe File é útil quando precisamos renomear ou mover arquivos. Este método recebe os caminhos e nomes antigo e novo do arquivo a ser renomeado ou movido de diretório. Veja um trecho de código no qual mostramos como renomear um arquivo texto (sem movê-lo para um diretório diferente): ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- static void Main(string[] args){ // não esqueça // using System.IO; // caminho e nome atual do arquivo string antigo = "C:\\estudos_csharp\\arquivo.txt"; // caminho e novo nome do arquivo string novo = "C:\\estudos_csharp\\arquivo2.txt"; // vamos renomear o arquivo File.Move(antigo, novo); Console.WriteLine("Arquivo renomeado com sucesso."); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } |
C# ::: Windows Forms ::: ComboBox |
Como excluir todos os itens de um ComboBox do C# Windows Forms usando a função Clear() da classe ComboBox.ObjectCollectionQuantidade de visualizações: 9998 vezes |
Há algumas situações nas quais precisamos remover (limpar) todos os itens de um ComboBox. Isso pode ser feito com uma chamada ao método Clear() da classe ComboBox.ObjectCollection. Temos acesso a esta classe por meio da propriedade Items da classe ComboBox. Vja o exemplo:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- private void button1_Click(object sender, EventArgs e){ // exclui todos os itens do ComboBox chamado // linguagensCombo linguagensCombo.Items.Clear(); } |
C# ::: Namespace System.Drawing ::: Graphics |
Desenhando retângulos usando o método DrawRectangle() da classe Graphics do C#Quantidade de visualizações: 7201 vezes |
Retângulos podem ser desenhados em C# e Windows Forms usando o método DrawRectangle() da classe Graphics. Este método pede a caneta de desenho (um objeto da classe Pen), as coordenadas do canto superior esquerdo e a largura e altura do retângulo. Veja a assinatura do método DrawRectangle() mais comumente usada:Graphics.DrawRectangle(Pen, Single, Single, Single, Single) Veja um trecho de código no qual desenhamos um retângulo com 250 pixels de largura por 150 pixels de altura: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- private void button1_Click(object sender, EventArgs e){ // vamos obter o Graphics do formulário Graphics g = this.CreateGraphics(); // vamos desenhar um retângulo de 250 pixels de largura por 150 // pixels de altura g.DrawRectangle(new Pen(Color.Red, 1), 50, 50, 250, 150); // vamos liberar o objeto Graphics g.Dispose(); } As coordenadas do canto superior esquerdo e a largura e altura do retângulo podem ser especificadas como um objeto da estrutura Rectangle. Veja: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- private void button1_Click(object sender, EventArgs e){ // vamos obter o Graphics do formulário Graphics g = this.CreateGraphics(); // vamos desenhar um retângulo de 250 pixels de largura por 150 // pixels de altura g.DrawRectangle(new Pen(Color.Red, 1), new Rectangle(100, 100, 250, 150)); // vamos liberar o objeto Graphics g.Dispose(); } |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como remover espaços em excesso de uma string C# usando expressões regularesQuantidade de visualizações: 14633 vezes |
Nesta dica mostrarei como podemos usar expressões regulares em C# para remover os espaços em excesso de uma frase ou texto. Esta técnica é bem útil quando estamos trabalhando com dados informados pelos usuários de nossas aplicações. Temos sempre que verificar, não somente o excesso de espaços no meio do texto, quanto espaços no início e no fim das strings informadas. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- using System; using System.Text.RegularExpressions; namespace Estudos { class Program { static void Main(string[] args) { // vamos construir o Regex com o padrão que queremos Regex regex = new Regex("\\s +", RegexOptions.IgnoreCase | RegexOptions.Compiled); // frase com espaços string frase = " Gosto muito de C# "; // frase sem espaços string resultado = (regex.Replace(frase, " ")).Trim(); // mostramos o resultado Console.WriteLine("Frase com espaços em excesso: {0}", frase); Console.WriteLine("Espaços em excesso removidos: {0}", resultado); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- Frase com espaços em excesso: Gosto muito de C# Espaços em excesso removidos: Gosto muito de C# |
Vamos testar seus conhecimentos em Fundações |
Fundações profundas As estacas Strauss podem ser armadas com ferragem longitudinal (barras retas) e estribos que permitam livre passagem do soquete de compactação e garantam um cobrimento da armadura não inferior a 3cm. A estaca Strauss é recomendada: A) apenas em terrenos com comprimento fixo de cravação. B) em trabalhos abaixo do lençol freático. C) em terrenos com comprimento variável de cravação. D) com a disponibilidade de equipamentos robustos e complexos na execução. E) em áreas não suscetíveis à presença de agentes biológicos. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrostática |
Princípios da Hidrostática A hidrostática é um ramo da Física que tem como objeto de estudo a propriedade dos líquidos e fluidos sob a ação da força gravitacional em equilíbrio estático. De acordo com o escopo dessa disciplina, marque a alternativa que melhor define massa específica. A) Massa específica é a própria densidade relativa à substância. B) Pode ser definida pela quantidade de matéria que cabe no volume de 1 litro dessa substância. C) Massa específica é o volume ocupado por uma substância e a massa de uma porção oca de uma substância. D) Massa específica pode ser a razão direta entre força pela área dada em Pascal (Pa), dividida pelo volume total da substância. E) A massa especifica é a razão entre a massa homogênea e o volume. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
O projeto de instalação hidrossanitária Em relação ao histograma, considere as seguintes sentenças: I - Histograma consiste em um gráfico que apresenta a distribuição de frequências de uma variável por meio de retângulos justapostos, feitos sobre as classes dessa variável, sendo que a área de cada retângulo é proporcional à frequência observada da correspondente classe. II - Histogramas são obrigatórios em todos os projetos civis, sendo, inclusive, exigidos pelos órgãos para liberação do habite-se; III - Histogramas são recomendáveis apenas em projetos muito grandes ou de grande complexidade. Assinale a alternativa correta: A) Apenas as sentenças I e II estão corretas. B) Apenas as sentenças II e III estão corretas. C) Apenas a sentença I está correta. D) Apenas a sentença III está correta. E) Todas as sentenças estão corretas. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual o resultado da execução do seguinte código Python?valor = 56.21 print("Valor: %.5d" % valor) A) Valor: 00056 B) Valor: 21 C) Valor: 00056.21 D) Valor: 56 E) Valor: 6.2100 Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
Estrutura e propriedade dos materiais O estudo das propriedades elétricas aborda os conceitos de resistividade e condutividade elétrica, pois são as mais relevantes quanto aos materiais de construção. Assinale a alternativa que define essas propriedades corretamente. A) Condutividade elétrica é a resistência à passagem da corrente elétrica através de um material, e a resistividade é a facilidade com que um material é capaz de transmitir uma corrente elétrica. B) Condutividade elétrica é a facilidade com que um material é capaz de transmitir uma corrente elétrica, e a resistividade é a resistência à passagem da corrente elétrica através de um material. C) Condutividade elétrica é a capacidade que um material apresenta de absorver energia, e a resistividade é a facilidade com que um material é capaz de transmitir uma corrente elétrica. D) Condutividade elétrica é a facilidade com que um material é capaz de transmitir uma corrente elétrica, e a resistividade é a capacidade que um material apresenta em absorver a energia. E) Condutividade elétrica é a resistência à passagem da corrente elétrica através de um material, e a resistividade é a capacidade que um material apresenta em absorver a energia. 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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |