Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD e VBA
PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

C ::: Estruturas de Dados ::: Lista Ligada Simples

Estrutura de Dados em C - Como inserir nós no final de uma lista singularmente ligada em C

Quantidade de visualizações: 8522 vezes
Esta dica mostra como inserir nós no final de uma lista singularmente ligada. A estrutura usada para representar cada nó é a seguinte:

struct No{
  int valor;
  struct No *proximo;
};

Note que cada nó contém apenas um valor inteiro e um ponteiro para o próximo nó. Ao analisar o código você perceberá que tanto a inserção no final quanto a exibição dos nós são feitas usando funções. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Vamos ao código:

#include <stdio.h>
#include <stdlib.h>

// estrutura Nó
struct No{
  int valor;
  struct No *proximo;
};
// fim da estrutura Nó

// função que permite exibir os valores de
// todos os nós da lista
void exibir(struct No *n){
  if(n != NULL){
    do{
      printf("%d\n", n->valor);
      n = n->proximo;
    }while(n != NULL);
  }
  else
    printf("A lista esta vazia\n\n");
}

// função que permite inserir nós no
// final da lista.
// veja que a função recebe o valor a ser
// armazenado em cada nó e um ponteiro para o
// início da lista. A função retorna um
// ponteiro para o início da lista
struct No *inserir_final(struct No *n, int v){
  // reserva memória para o novo nó
  struct No *novo = (struct No*)malloc(sizeof(struct No));
  novo->valor = v;

  // verifica se a lista está vazia
  if(n == NULL){
    // é o primeiro nó...não deve apontar para
    // lugar nenhum
    novo->proximo = NULL;
    return novo; // vamos retornar o novo nó como sendo o início da lista
  }
  else{ // não está vazia....vamos inserir o nó no final
    // o primeiro passo é chegarmos ao final da lista
    struct No *temp = n; // vamos obter uma referência ao primeiro nó
    // vamos varrer a lista até chegarmos ao último nó
    while(temp->proximo != NULL){
      temp = temp->proximo;
    }
    // na saída do laço temp aponta para o último nó da lista
  
    // novo será o último nó da lista...o campo próximo dele deve
    // apontar para NULL
    novo->proximo = NULL;
    // vamos fazer o último nó apontar para o nó recém-criado
    temp->proximo = novo;
    return n; // vamos retornar o início da lista intacto
  }
}

int main(int argc, char *argv[])
{
  // declara a lista
  struct No *inicio = NULL;

  // vamos inserir quatro valores no final
  // da lista
  inicio = inserir_final(inicio, 45);
  inicio = inserir_final(inicio, 3);
  inicio = inserir_final(inicio, 98);
  inicio = inserir_final(inicio, 47);

  // vamos exibir o resultado
  exibir(inicio);

  system("pause");
  return 0;
}



PHP ::: Dicas & Truques ::: Matemática e Estatística

Como gerar um número aleatório (randômico) em PHP usando a função rand()

Quantidade de visualizações: 31097 vezes
Nesta dica mostrarei como gerar números randômicos dentro de uma determinada faixa usando a função rand() da linguagem PHP. Veja que esta função requer o limite inicial e final (incluso) da faixa a partir da qual o número aleatório será gerado.

Veja um código PHP no qual geramos um número aleatório entre 1 e 10:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>

<?php
  $num = rand(1, 10);
  echo "O número gerado foi: " . $num;
?>
 
</body>
</html>

Ao executar este código nós teremos um resultado parecido com:

O número gerado foi: 5

Obs: A partir da versão 4.2.0 do PHP, não é mais necessário usar srand() ou mt_srand() para inicializar a semente (seed) do gerador de números aleatórios.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Exercícios Resolvidos de Java - Um método recursivo que calcula o fatorial de um determinado número inteiro

Quantidade de visualizações: 2853 vezes
Pergunta/Tarefa:

Na matemática, o fatorial de um número natural n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n.

O fatorial de um número n pode ser definido recursivamente da seguinte forma:

0! = 1;
n! = n x (n - 1)!; sendo n > 0
Escreva um método recursivo que recebe um valor inteiro do tipo int e retorne seu fatorial como um long. Seu método deverá possuir a seguinte assinatura:

public static long fatorial(int n){
  // sua implementação aqui
}
Sua saída deverá ser parecida com:

Informe um número inteiro: 5
O fatorial do número informado é: 120
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // cria um novo objeto da classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // vamos solicitar o número inteiro
    System.out.print("Informe um número inteiro: ");
    // lê o número
    int numero = Integer.parseInt(entrada.nextLine());
    
    // calcula o fatorial corresponde ao número informado
    System.out.print("O fatorial do número informado é: " + fatorial(numero));
    System.out.println("\n");
  }
  
  // método recursivo que calcula o fatorial de um inteiro informado
  public static long fatorial(int n){
    if(n == 0){ // caso base....retornar
      return 1;
    }
    else{
      return n * fatorial(n - 1); // efetua mais uma chamada recursiva
    }
  }
}



Delphi ::: Dicas & Truques ::: Matemática e Estatística

Como arredondar casas decimais para baixo usando a função Floor() do Delphi

Quantidade de visualizações: 14257 vezes
A função Floor(), presente na unit Math, é útil quando queremos arrendondar valores de ponto-flutuante (valores com casas decimais) para baixo, ou seja, para o maior inteiro menor ou igual ao valor fornecido. Veja um exemplo:

procedure TForm2.Button1Click(Sender: TObject);
var
  valor: Real;
  resultado: Integer;
begin
  // uses Math

  valor := 8.74;

  // vamos arredondar o valor para baixo
  // o resultado será 8
  resultado := Floor(valor);

  // exibe o resultado
  ShowMessage('O valor arredondado para baixo é: ' +
    IntToStr(resultado));
end;

Note que os valores 8.0001, 8.3, 8.1, 8.99, etc, serão todos arredondados para 8. No entanto, 9.0 é arredondado para 9.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser. Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 19,90


© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 50 usuários muito felizes estudando em nosso site.