![]() |
|
||||
![]() 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 |
Você está aqui: C ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como criar um laço while infinito em CQuantidade de visualizações: 12081 vezes |
Um laço while infinito pode ser criado em C simplesmente fornecendo o valor 1 para a condição do laço. Neste caso é preciso que você forneça uma forma de parar o laço, ou o programa pode travar. Veja um trecho de código exemplificando o uso de um laço while infinito: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int valor = 5; while(1){ printf("%d ", valor); valor++; if(valor > 10) break; // pára o laço } printf("\n\n"); system("PAUSE"); return 0; } |
![]() |
C ::: Fundamentos da Linguagem ::: Estruturas de Controle |
||||
Apostila de C para iniciantes - Como criar um laço for infinito na linguagem CQuantidade de visualizações: 10129 vezes |
||||
A linguagem C nos permite criar laços for infinitos. Para isso, só precisamos omitir as partes de inicialização, teste e incremento/decremento. Veja um exemplo:
Veja que só usamos for(;;). Tenha o cuidado de fornecer uma forma de parar o laço. Do contrário seu programa executará até travar. | ||||
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
||||||||||||
Como alocar memória dinâmica usando a função calloc() da linguagem CQuantidade de visualizações: 18687 vezes |
||||||||||||
A função calloc() é bem parecida com a função malloc() e também é usada em C para alocarmos um bloco de memória. A diferença é que calloc() recebe a quantidade de elementos e o número de bytes do elemento e retorna um ponteiro do tipo void (genérico) para o início do bloco de memória obtido. Veja sua assinatura:void *calloc(size_t n, size_t size); Se a memória não puder se alocada, um ponteiro nulo (NULL) será retornado. É importante se lembrar de alguns conceitos antes de usar esta função. Suponhamos que você queira alocar memória para um único inteiro. Você poderia ter algo assim: // aloca memória para um int ponteiro = calloc(1, 4); Embora este código esteja correto, não é um boa idéia assumir que um inteiro terá sempre 4 bytes. Desta forma, é melhor usar o operador sizeof() para obter a quantidade de bytes em um inteiro em uma determinada arquitetura. Veja:
Eis o código completo para um aplicativo C que mostra como alocar memória para um inteiro e depois atribuir e obter o valor armazenado no bloco de memória alocado:
Uma aplicação interessante da função calloc() é quando precisamos construir uma matriz dinâmica. Veja como isso é feito no código abaixo:
| ||||||||||||
C ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
||||
Ordenação e pesquisa em C - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)Quantidade de visualizações: 2669 vezes |
||||
A ordenação Insertion Sort, ou Ordenação por Inserção, possui uma complexidade de tempo de execução igual à ordenação Bubble Sort (Ordenação da Bolha), ou seja, O(n2). Embora mais rápido que o Bubble Sort, e ser um algorítmo de ordenação quadrática, a ordenação Insertion Sort é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação, porém, nunca recomendada para um grande conjunto de dados. A forma mais comum para o entendimento da ordenação Insertion Sort é compará-la com forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando as cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma que as cartas obedeçam à ordenação. A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim em diante, até não receber mais cartas. Esta é a ideia por trás da ordenação por inserção. Percorra as posições do vetor (array), começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no sub-vetor ordenado à esquerda daquela posição. Vamos ver a implementação na linguagem C agora? Observe o seguinte código, no qual temos um vetor de inteiros com os elementos {4, 6, 2, 8, 1, 9, 3, 0, 11}:
Ao executar este código C nós teremos o seguinte resultado: Sem ordenação: 4 6 2 8 1 9 3 0 11 Ordenada usando Insertion Sort: 0 1 2 3 4 6 8 9 11 | ||||
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Revit Python Shell - Como pedir para o usuário selecionar somente um elemento no Revit usando a função PickObject() do objeto Selection do Revit Python Shell JavaScript - Como construir uma determinada data e hora usando o construtor do objeto Date do JavaScript |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |