Você está aqui: C# ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Como converter de binário para decimal em C# usando o laço for - Exercícios Resolvidos de C#Quantidade de visualizações: 420 vezes |
Pergunta/Tarefa: Escreva um programa C# que usa o laço for para converter um número binário (como uma String) em sua representação decimal (como um int). Peça ao usuário para informar um número binário e mostre o mesmo em decimal (como um int). Sua solução deve obrigatoriamente usar o laço for. Sua saída deverá ser parecida com: Informe um número binário: 1100 A representação decimal do valor binário 1100 é 12 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) { // vamos ler o número binário (como uma String) Console.Write("Informe um número binário: "); String binario = Console.ReadLine(); int n_decimal = 0; // guarda a representação decimal // vamos percorrer todos os dígitos do número binário começando do início int expoente = binario.Length - 1; for (int i = 0; i < binario.Length; i++) { // converte o caractere atual para inteiro int temp = (int)Char.GetNumericValue(binario[i]); n_decimal = n_decimal + (temp * (int)Math.Pow(2, expoente)); // reduz o expoente em 1 expoente = expoente - 1; } // agora mostramos o resultado Console.WriteLine("A representação decimal do valor binário " + binario + " é " + n_decimal); Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } |
![]() |
C# ::: Windows Forms ::: TextBox |
C# Windows Forms Avançado - Como rolar as linhas de um TextBox para cima uma de cada vez usando a API do WindowsQuantidade de visualizações: 7542 vezes |
Em algumas situações gostaríamos de rolar para cima o conteúdo de um TextBox de múltiplas linhas uma linha de cada vez. Para isso podemos usar a API do Windows, mais especificamente a mensagem WM_VSCROLL com o valor SB_LINEUP para seu parâmetro wParam. O valor do parâmetro lParam é zero. Veja um trecho de código que rola para cima o conteúdo de um TextBox uma linha de cada vez. Antes de executar este exemplo, tenha a certeza de ter um TextBox de múltiplas, com barras de rolagem e conteúdo que force o aparecimento das barras de rolagem. Comece adicionando a linha: ---------------------------------------------------------------------- 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.Runtime.InteropServices; na seção de usings do seu formulário ou classe. Em seguida adicione o trecho de código abaixo no corpo da classe, como um método: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- [DllImport("user32.dll", EntryPoint = "SendMessage", CharSet = CharSet.Auto, SetLastError = true)] private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); Finalmente coloque o código abaixo no evento Click de um botão: ---------------------------------------------------------------------- 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){ // antes de executar este exemplo certifique-se de que // a propriedade Multiline do TextBox esteja definida // como true e a propriedade ScrollBars contenha o valor // Vertical ou Both textBox1.Multiline = true; textBox1.ScrollBars = ScrollBars.Vertical; // constante para a mensagem WM_VSCROLL const uint WM_VSCROLL = 0x115; // constante para o parâmetro wParam const int SB_LINEUP = 0; // handle para a caixa de texto IntPtr handle = textBox1.Handle; IntPtr wParam = (IntPtr)SB_LINEUP; IntPtr lParam = IntPtr.Zero; // vamos fazer com que o TextBox role uma linha para cima SendMessage(textBox1.Handle, WM_VSCROLL, wParam, lParam); } |
C# ::: Coleções (Collections) ::: ArrayList |
Como percorrer os elementos de uma ArrayList do C# usando um objeto da interface IEnumeratorQuantidade de visualizações: 8521 vezes |
Um objeto da interface IEnumerator (no namespace System.Collections) pode ser usado para percorrer os elementos de uma coleção não-genérica, como é o caso da classe ArrayList. Podemos usar um enumerador para acessar os itens da lista individualmente, mas estes não poderão sofrer modificações por meio do enumerador. Um enumerador para uma ArrayList é obtido por meio do método GetEnumerator(). 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 ---------------------------------------------------------------------- // vamos obter um enumerador para a lista IEnumerator enumerador = lista.GetEnumerator(); Observe agora um trecho de código no qual temos uma lista contendo 5 inteiros. Note o uso de um IEnumerator para percorrer os elementos e exibir o valor contido no elemento atual: ---------------------------------------------------------------------- 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 se esqueça // using System.Collections; // Cria o ArrayList ArrayList lista = new ArrayList(); // Adiciona 5 inteiros lista.Add(65); lista.Add(2); lista.Add(13); lista.Add(97); lista.Add(4); // vamos obter um enumerador para a lista IEnumerator enumerador = lista.GetEnumerator(); // vamos percorrer a lista usando o enumerador while(enumerador.MoveNext()){ Console.WriteLine(enumerador.Current); } Console.Write("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } Para saber mais sobre os enumeradores, consulte minhas dicas sobre a interface IEnumerator. |
C# ::: Dicas & Truques ::: Data e Hora |
Como adicionar ou subtrair dias de uma data em C# usando o método AddDays() da classe DateTimeQuantidade de visualizações: 26773 vezes |
Em algumas situações nossos códigos precisam adicionar ou subtrair dias de uma data. Isso pode ser feito com o auxílio do método AddDays() da estrutura DateTime. Este método recebe o número de dias a serem acrescidos ou substraídos da data representada pelo DateTime atual e retorna um novo DateTime com as devidas modificações. Veja um trecho de código no qual adicionamos 5 dias à data atual: ---------------------------------------------------------------------- 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){ // vamos obter a data de hoje DateTime hoje = DateTime.Now; // exibe a data de hoje System.Console.WriteLine("Hoje é {0:d}", hoje); // vamos adicionar 5 dias à data de hoje DateTime data_futura = hoje.AddDays(5); // exibe a data daqui a cinco dias System.Console.WriteLine("Daqui a 5 dias será {0:d}", data_futura); // pausa o programa System.Console.Write("\nPressione qualquer tecla para sair..."); Console.ReadKey(); } É possível também subtrair dias. Para isso só precisamos fornecer um valor negativo para o método AddDays(). 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 ---------------------------------------------------------------------- static void Main(string[] args){ // vamos obter a data de hoje DateTime hoje = DateTime.Now; // exibe a data de hoje System.Console.WriteLine("Hoje é {0:d}", hoje); // vamos subtrair 7 dias da data de hoje DateTime data_passado = hoje.AddDays(-7); // exibe a data sete dias atrás System.Console.WriteLine("Há 7 dias era {0:d}", data_passado); // pausa o programa System.Console.Write("\nPressione qualquer tecla para sair..."); Console.ReadKey(); } Lembre-se, contudo, que o método AddDays() pode disparar uma exceção do tipo ArgumentOutOfRangeException se o DateTime resultante for menor que MinValue ou maior que MaxValue. MinValue e MaxValue são os menor e maior valores que um DateTime pode representar. |
C# ::: Datas e Horas ::: DateTime |
Como usar o método IsLeapYear() da estrutura DateTime do C# para verificar se um determinado ano é bissextoQuantidade de visualizações: 7454 vezes |
Podemos verificar se um determinando ano é bissexto usando o método IsLeapYear() da estrutura DateTime. Este método recebe um valor inteiro representando o ano com 4 dígitos e retorna um valor true ou false. Veja 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 ---------------------------------------------------------------------- static void Main(string[] args){ // vamos verificar se o ano 2008 // é bissexto int ano = 2008; if(DateTime.IsLeapYear(ano)) Console.WriteLine("O ano informado é bissexto"); else Console.WriteLine("O ano informado NÃO é bissexto"); // pausa o programa Console.ReadKey(); } Este método pode disparar uma exceção ArgumentOutOfRangeException se o valor do ano for menor que 1 ou maior que 9999. |
C# ::: Coleções (Collections) ::: List<T> |
Como percorrer os itens de uma List do C# usando o laço forQuantidade de visualizações: 518 vezes |
Em várias ocasiões nós precisamos percorrer os elementos de uma lista do C#. Para isso nós podemos usar o laço for e, dentro deste laço, acessar os elementos da lista individualmente usando o operador [] e o índice desejado. Veja o código C# 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.Collections.Generic; namespace Estudos { class Principal { static void Main(string[] args) { List<int> valores = new List<int>(); // insere valores na lista valores.Add(4); valores.Add(2); valores.Add(87); valores.Add(23); valores.Add(100); // agora vamos usar o laço for para percorrer os // itens da lista Console.WriteLine("Os itens da lista são:"); for(int i = 0; i < valores.Count; i++) { Console.Write(valores[i] + ", "); } Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Os itens da lista são: 4, 2, 87, 23, 100, |
C# ::: Windows Forms ::: TextBox |
Como contar as palavras em um TextBox de múltiplas linhas do C# Windows FormsQuantidade de visualizações: 13910 vezes |
Em algumas situações nós precisamos retornar a quantidade de palavras digitadas em um campo TextBox de múltiplas linhas do C# Windows Forms. O trecho de código abaixo mostra como isso pode ser feito. Note como usei os métodos da classe String para alcançar o objetivo. Veja o código C# completo disparado a partir do clique de um botão Button: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- /* Este exemplo mostra como obter a quantidade de palavras em um TextBox. Veja que usamos a técnica de contar as palavras contidas em um array após retirar as quebras de linhas e espaços duplicados na string. */ private void button1_Click(object sender, EventArgs e){ // Obtém o texto da caixa de texto string texto = textBox1.Text.Trim(); // Remove as quebras de linhas substituindo-as por // espaços texto = texto.Replace(Environment.NewLine, " "); // remove os espaços em excesso while(texto.IndexOf(" ") >= 0){ texto = texto.Replace(" ", " "); } // Obtém um array de palavras string[] palavras = texto.Split(" "); // Obtém a quantidade de palavras int quant = palavras.Length; // Exibe o resultado MessageBox.Show("O TextBox contém " + quant + " palavras."); } |
C# ::: Coleções (Collections) ::: List<T> |
Como retornar a quantidade de elementos que podem ser armazenados na List do C# sem redimensioná-laQuantidade de visualizações: 7377 vezes |
O objeto List do C# possui uma propriedade Capacity que nos retorna a quantidade de elementos que podem ser inseridos na lista antes que ela tenha que redimensionar o seu array interno. Quando o tamanho da lista excede essa capacidade, automaticamente o array interno é redimensionado de forma a acomodar esses novos itens. Nessa dica eu mostro como podemos retornar o valor dessa propriedade. 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; using System.Collections.Generic; namespace Estudos { class Principal { static void Main(string[] args) { List<int> valores = new List<int>(); // insere valores na lista valores.Add(4); valores.Add(2); valores.Add(87); valores.Add(23); valores.Add(100); // obtém a capacidade da lista // NOTA: Capacity é o número de elementos que a lista // pode armazenar antes de ser preciso redimensioná-la. int capac = valores.Capacity; Console.WriteLine("A capacidade da lista é de " + capac + " elementos."); Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: A capacidade da lista é de 8 elementos. |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como embaralhar as palavras em uma frase ou texto usando C#Quantidade de visualizações: 12211 vezes |
Nesta dica mostrarei como podemos usar a linguagem C# para embaralhar, ou seja, exibir as palavras de uma string em ordem aleatória. Veja o código C# 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; namespace Estudos { class Program { static void Main(string[] args) { string frase = "Gosto de VB.NET, Java e C#"; // mostra a frase na ordem original Console.WriteLine("Ordem original: " + frase); // converte em um vetor de palavras string[] frase2 = frase.Split(' '); // vamos embaralhar 5 vezes Embaralhar(ref frase2, 5); // junta as partes da string novamente frase = String.Join(" ", frase2); // exibe o resultado Console.WriteLine("Embaralhada: " + frase); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } static void Embaralhar(ref String[] array, int vezes) { Random rand = new Random(DateTime.Now.Millisecond); for (int i = 1; i <= vezes; i++) { for (int x = 1; x <= array.Length; x++) { Trocar(ref array[rand.Next(0, array.Length)], ref array[rand.Next(0, array.Length)]); } } } static void Trocar(ref String arg1, ref String arg2) { String strTemp = arg1; arg1 = arg2; arg2 = strTemp; } } } Ao executar este código C# nós teremos o seguinte resultado: Ordem original: Gosto de VB.NET, Java e C# Embaralhada: VB.NET, C# Java de e Gosto |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
O aço no edifício A estrutura de estabilização da moldura estrutural da edificação da figura abaixo, que se caracteriza pelo fato de não possuir amarrações diagonais nem paredes de cisalhamento para assegurar a estabilidade lateral, pode ser chamada de: ![]() A) Estrutura contraventada. B) Moldura amarrada excentricamente. C) Moldura resistente a momentos. D) Paredes de cisalhamento. E) Nenhuma das alternativas anteriores. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Turbinas hidráulicas Turbinas hidráulicas têm como principal aplicação a geração de energia, transformando energia cinética da água em energia mecânica, que será posteriormente convertida em energia elétrica. Sobre as turbinas hidráulicas, marque a alternativa correta: A) Uma turbina do tipo Francis apresenta uma baixa eficiência e pode ser operada apenas em baixas vazões. B) Uma turbina do tipo Francis tem eficiência relativamente baixa, porém tem ampla faixa de operação. C) A turbina do tipo Pelton tem um conjunto de pás fixas que podem ajustar o ângulo de entrada da água. D) A turbina do tipo Kaplan foi adaptada a partir da turbina de hélice e pode ser operada em grandes vazões. E) Uma turbina do tipo Pelton tem suas pás em formato de conchas e são operadas em grandes vazões. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
(TRE-MT - Analista Judiciário - Engenharia Civil) Em hidráulica, no que diz respeito à classificação dos escoamentos quanto à direção na trejetória das partículas, o escoamento pode ser A) forçado. B) laminar. C) permanente. D) livre. E) transitório. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Principais Normas Brasileiras para Concreto Armado A ABNT é o órgão brasileiro responsável pela normatização técnica do Brasil, o qual fornece insumos para o desenvolvimento tecnológico, por meio de normativas que buscam a qualidade em qualquer tipo de trabalho. Em se tratando da ABNT, das NBRs e do uso do concreto, assinale a alternativa que apresenta corretamente qual é a NBR que se refere ao procedimento para projeto de estruturas de concreto armado: A) NBR 6123. B) NBR 6120. C) NBR 6118. D) NBR 7187. E) NBR 8681. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Fases de uma obra Ao documento em que se registram, pela ordem de sucessão em que são executados, os serviços necessários à realização da construção e os respectivos prazos, dá-se o nome de: A) Diário de obra. B) Cronograma físico-financeiro. C) Gráfico de Gantt. D) Planejamento. E) Cronograma físico. 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 |
AutoCAD VBA - Como criar uma linha no AutoCAD usando Autocad VBA e a função AddLine() do objeto ModelSpace |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |