Você está aqui: C# ::: Estruturas de Dados ::: Filas |
Como criar uma fila em C# usando um vetor de ints - Estruturas de Dados em C#Quantidade de visualizações: 1446 vezes |
A Fila é uma estrutura de dados do tipo FIFO - First-In, First-Out (Primeiro a entrar, primeiro a sair). Neste tipo de estrutura, o primeiro elemento a ser inserido é o primeiro a ser removido. Funciona exatamente igual a fila de um banco, fila para comprar ingressos, fila para pagar no caixa da lanchonete, etc. Veja a imagem a seguir: Embora seja mais comum a criação de uma estrutura de dados do tipo Fila de forma dinâmica (usando ponteiros e referências), nesta dica eu mostrarei como podemos criá-la em C# usando um array, ou seja, um vetor. No exemplo eu usei inteiros, mas você pode modificar para o tipo de dados que você achar mais adequado. Veja o código completo para uma classe Fila usando um vetor de ints. Veja que o tamanho do vetor é informado no construtor da classe. Note também a lógica empregada na construção dos métodos enfileirar(), desenfileirar() e imprimirFila(): Código para Fila.cs: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- using System; namespace Estudos { class Fila { private int[] elementos; private int inicio; // início da fila private int final; // fim da fila private int maximo; // quantidade máxima de elementos na fila // construtor da Fila que aceita o tamanho public Fila(int tamanho) { // constrói o vetor com o tamanho informado this.elementos = new int[tamanho]; this.inicio = 0; // define o início como sendo o primeiro elemento this.final = -1; // fila vazia. Não tem final ainda this.maximo = tamanho; // ajusta a quantidade máxima de elementos } // método que permite enfileirar um novo elemento public void enfileirar(int item) { // a fila já está cheia if (this.final == (this.maximo - 1)) { Console.WriteLine("\nA fila está cheia.\n"); return; } // ainda há espaço na fila else { this.elementos[++this.final] = item; } } // método que permite desenfileirar e retornar // o elemento no início da fila public int desenfileirar() { // a fila está vazia if (this.inicio == (this.final + 1)) { Console.WriteLine("\nA fila está vazia.\n"); return -1; } // retorna o elemento desenfileirado else { Console.WriteLine("Elemento desenfileirado: " + this.elementos[this.inicio]); return this.elementos[this.inicio++]; } } // exibe os elementos da fila public void exibirFila() { // a fila está vazia if (this.inicio == (this.final + 1)) { Console.WriteLine("\nA fila está vazia.\n"); return; } else { for (int i = this.inicio; i <= this.final; i++) { Console.WriteLine("Item[" + (i + 1) + "]: " + this.elementos[i]); } } } } } Veja agora o código para a classe principal, ou seja, a classe Principal usada para testar a funcionalidade da nossa fila: Código para Principal.cs: ---------------------------------------------------------------------- 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 { static void Main(string[] args) { // Vamos criar uma nova fila com espaço para 5 elementos Fila fila = new Fila(5); // vamos inserir 3 elementos na fila fila.enfileirar(34); fila.enfileirar(27); fila.enfileirar(11); // vamos imprimir a fila Console.WriteLine("Os itens na fila são: "); fila.exibirFila(); // vamos desenfileirar dois itens Console.WriteLine(); fila.desenfileirar(); fila.desenfileirar(); // vamos imprimir a fila novamente Console.WriteLine("\nOs itens na fila são: "); fila.exibirFila(); Console.WriteLine("Pressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Os itens na fila são: Item[1]: 34 Item[2]: 27 Item[3]: 11 Elemento desenfileirado: 34 Elemento desenfileirado: 27 Os itens na fila são: Item[3]: 11 |
Link para compartilhar na Internet ou com seus amigos: |
C# ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como retornar o tamanho de um array em C# usando a propriedade LengthQuantidade de visualizações: 7940 vezes |
Nesta dica mostrarei como saber a quantidade de elementos em um vetor do C# usando a sua propriedade Length. Por quantidade de elementos nós estamos falando do tamanho do array. Veja o código C# 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) { // cria e inicializa um array de strings string[] cidades = {"Goiânia", "São Paulo", "Rio de Janeiro", "Curitiba"}; // obtém a quantidade de elementos no array int quant = cidades.Length; Console.WriteLine("Este array possui {0} elementos.", quant); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Este array possui 4 elementos. |
C# ::: Coleções (Collections) ::: List<T> |
Como retornar a quantidade de itens em uma List genérica do C# usando a propriedade CountQuantidade de visualizações: 9811 vezes |
Nesta dica mostrarei como podemos retornar o tamanho de uma List do C# usando a propriedade Count. Veja o código C# completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- using System; using System.Collections.Generic; namespace Estudos { class Principal { static void Main(string[] args) { // cria uma List genérica de inteiros List<int> valores = new List<int>(); // insere valores na lista valores.Add(4); valores.Add(2); valores.Add(87); valores.Add(23); // obtém a quantidade de itens na lista int quant = valores.Count; Console.WriteLine("A lista contém " + quant + " elementos."); Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: A lista contém 4 elementos. |
C# ::: Dicas & Truques ::: Gráficos |
Como desenhar linhas em C# usando o método DrawLine() da classe Graphics - Computação Gráfica usando C#Quantidade de visualizações: 13128 vezes |
Uma das tarefas mais simples que realizamos quando estamos desenhando em C# é o desenho de linhas. Para isso usamos o método DrawLine() da classe Graphics. Este método recebe um objeto da classe Pen (representando a cor e espessura da caneta de desenho) e as coordenadas iniciais e finais da linha a ser desenhada. Veja um trecho de código no qual desenhamos uma linha na cor vermelha e com a espessura de dois pixels: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- private void button1_Click(object sender, EventArgs e){ // vamos obter o Graphics do formulário Graphics g = this.CreateGraphics(); // vamos desenhar uma linha na cor vermelha e com espessura // de dois pixels g.DrawLine(new Pen(Color.Red, 2), new Point(100, 150), new Point(400, 450)); // vamos liberar o objeto Graphics g.Dispose(); } Execute este código e verá uma linha vermelha na vertical ser desenhada quando você clicar no botão. Aqui nós usamos dois objetos da classe Point. Um para as coordenadas iniciais (x = 100; y = 150) e outro para as coordenadas finais (x = 400; y = 450). É possível fornecer os valores das coordenadas diretamente. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- g.DrawLine(new Pen(Color.Red, 2), 100, 150, 400, 450); É possível também desenhar múltiplas linhas de uma só vez. Para isso podemos usar o método DrawLines(). Este método recebe um objeto da classe Pen e um array de objetos da classe Point representando as diversas coordenadas. Desta forma, todas as linhas serão conectadas. Veja um exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- private void button1_Click(object sender, EventArgs e){ // vamos obter o Graphics do formulário Graphics g = this.CreateGraphics(); // vamos criar várias coordenadas x e y Point[] coordenadas = {new Point(15, 20), new Point(15, 300), new Point(400, 300), new Point(400, 20), new Point(15, 20)}; // vamos desenhar todas as linhas conectadas usando a cor azul e a // espessura de um pixel g.DrawLines(new Pen(Color.Blue, 1), coordenadas); // vamos liberar o objeto Graphics g.Dispose(); } Execute este código e clique no botão. Você verá um retângulo azul e com a espessura de 1 pixel ser desenhado no formulário. |
Vamos testar seus conhecimentos em Hidrologia |
(CEBRASPE - 2008 - Perito PC AC) Conhecimentos de hidráulica, hidrologia e saneamento têm grande aplicação no funcionamento técnico das cidades, permitindo boa gestão dos serviços urbanos. Com base nesses tópicos do conhecimento, julgue o seguinte item. No escoamento superficial de uma bacia, o hidrograma unitário é a resposta da bacia a uma precipitação de volume unitário de duração conhecida. A) Verdadeiro B) Falso Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual instrução é usada para interromper um laço em Python? A) return B) catch C) break D) continue E) exit Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Domínios de Deformações Vigas de concreto armado, com seções submetidas a um momento fletor e a um esforço cortante, são dimensionadas de tal forma que se determine uma armadura longitudinal para resistir ao momento fletor e uma armadura transversal para resistir ao esforço cortante. Analise as informações a seguir, a respeito da solicitação normal do tipo momento fletor: I) Solicitação de flexão simples ocorre quando a única solicitação atuante é o momento fletor. II) Solicitação de flexão composta ocorre quando, além do momento fletor, há uma força normal atuante. III) Solicitação de flexão oblíqua ocorre quando o plano de flexão compreende um eixo de simetria da seção transversal. Assinale a alternativa correta: A) Somente a afirmação I está correta. B) Somente as afirmações I e II estão corretas. C) Somente a afirmação II está correta. D) Somente a afirmação III está correta. E) Somente as afirmações II e III estão corretas. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Java |
Analise o seguinte código Javapublic class Estudos { public static void main(String[] args) { int a = 3; System.out.println(++a * 8); } } Qual é o resultado de sua execução? A) 24 B) 32 C) 72 D) 25 Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Analise o seguinte código JavaScriptfunction somar(array) { array[1]++; array = array + array; } valores = new Array(1, 3, 2, 5); somar(valores); Qual é o conteúdo do array valores após a execução deste código? A) o array contém a string "1,4,2,5,1,4,2,5" B) o array passa a ter 8 elementos: 1,4,2,5,1,4,2,5 C) o array permanece o mesmo: 1,3,2,5 D) o array contém os valores 1,4,2,5 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 |
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 |