![]() |
|
Código-Fonte Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimentoDiga 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 |
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas |
Exercícios Resolvidos de Java - Como inserir no início de uma lista ligada em Java - Escreva um programa Java que pede para o usuário informar váriosQuantidade de visualizações: 946 vezes |
|
Pergunta/Tarefa: Este exercício Java demonstra como inserir um nó no início de uma lista ligada. Escreva um programa Java que cria uma lista ligada, ou seja, uma lista dinamicamente encadeada, e pede para o usuário informar vários valores inteiros, colocando os valores sempre no início da lista. Seu código deverá interromper a leitura dos valores quando o usuário informar o valor -1. Quando isso acontecer, mostre todos os valores contidos na lista ligada, na mesma ordem que foram inseridos (o último valor lido será o primeiro da lista). Sua saída deve ser parecida com: Inserindo valores no início da lista Informe o valor (-1 para sair): 8 Informe o valor (-1 para sair): 2 Informe o valor (-1 para sair): 5 Informe o valor (-1 para sair): 7 Informe o valor (-1 para sair): -1 Valores na lista: 7 -> 5 -> 2 -> 8 -> null Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
// classe interna usada para representar um
// nó na lista ligada
class No {
int valor; // valor do nó
No proximo; // aponta para o novo nó
// construtor da classe No
No(int valor, No proximo) {
this.valor = valor;
this.proximo = proximo;
}
}
public class Estudos {
public static void main(String args[]){
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos criar uma referência para o início da lista
No inicio = null;
// agora vamos pedir para o usuário informar
// valores inteiros. O valor -1 sai do laço
int valor;
System.out.println("Inserindo valores no início da lista\n");
do {
System.out.print("Informe o valor (-1 para sair): ");
valor = Integer.parseInt(entrada.nextLine());
if (valor != -1) {
inicio = inserirInicio(inicio, valor);
}
} while(valor != -1);
// vamos exibir os valores na lista ligada
System.out.print("\nValores na lista: ");
exibirLista(inicio);
}
// função que permite adicionar um nó no início da
// lista ligada
public static No inserirInicio(No inicio, int valor) {
// vamos apontar para o nó inicial
No atual = inicio;
// criamos um novo nó
No novo = criarNo(valor);
// a lista ligada ainda está vazia?
if (atual == null){
// inicio recebe o novo nó
inicio = novo;
}
else { // temos um ou mais nós na lista ligada
// vamos inserir este nó antes do nó que
// representa o início da lista
novo.proximo = inicio;
inicio = novo;
}
// e retornamos o início da lista
return inicio;
}
// função usada para construir e retornar um novo nó
public static No criarNo(int valor) {
// cria o novo nó
No no = new No(valor, null);
// retorna o nó criado
return no;
}
// função usada para percorrer a lista ligada e
// exibir os valores contidos em seus nós
public static void exibirLista(No inicio) {
// vamos apontar para o início da lista
No temp = inicio;
// a lista está vazia?
if (temp == null) {
System.out.println("A lista está vazia.");
}
else {
// esse laço se repete enquanto tempo for
// diferente de null
while (temp != null) {
// vamos mostrar o valor desse nó
System.out.print(temp.valor + " -> ");
// avança para o próximo nó
temp = temp.proximo;
}
// mostra o final da lista
System.out.println("null");
}
}
}
|
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: 8423 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:
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. |
Python ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Como usar a busca binária em Python - Pesquisa binária na linguagem PythonQuantidade de visualizações: 922 vezes |
|
A busca binária, ou pesquisa binária, é um algoritmo eficiente para encontrar um item em uma lista (vetor ou array) ordenada. Sim, os itens devem, obrigatoriamente, estar ordenados. O processo é bem simples. A busca binária começa a partir do meio da lista e compara o item nesta posição com o valor sendo pesquisado. Se o valor não for encontrado e for menor que o item no meio da lista, o algoritmo passa para a porção à esquerda da lista, eliminando, assim, metade dos elementos do vetor ou array (a porção maior que o valor pesquisado). Se o valor não for encontrado e for maior que o item no meio da lista, então a busca reinicia a partir da metade da sub-lista à direita (os itens maiores que o valor pesquisado). Essa divisão continua até que o valor seja encontrado ou não seja mais possível dividir a lista pela metade. Se um array ou vetor possuir 100 elementos e usarmos a busca binária nele, precisaremos efetuar no máximo 7 tentativas para encontrar o valor desejado. Se a lista possuir 4 bilhões de itens nós teremos que fazer no máximo 32 tentativas. Isso acontece porque a pesquisa binária é executada em tempo logarítmico, ou seja, log2 n, onde n é a quantidade de itens no vetor. Dessa forma, se tivemos 1.000 itens em um array, log2 1000 = 10 tentativas. Lembre-se de que, na programação log e log2 retornam resultados diferentes: log(10) = 2.302585092994046 enquanto log2(10) = 3.321928094887362. Na análise da busca binária nós usamos sempre log2. Vamos agora ver como podemos codificar a busca binária em Python. Veja o código a seguir:
# função principal do programa
def main():
# vamos criar uma lista ordenada de inteiros
valores = [3, 5, 7, 8, 9, 12, 43, 50, 52, 60]
print("Os valores da lista são: {0}".format(valores))
# vamos pedir o item a ser pesquisado
numero = int(input("Informe o número a ser pesquisado: "))
# agora vamos pesquisar o número no array usando a pesquisa
# binária
# a variável esquerda aponta para o primeiro elemento do vetor
esquerda = 0
# a variável direita aponta para o último elemento do vetor
direita = len(valores) - 1
# para indicar se o valor foi encontrado
encontrado = False
# enquanto houver mais de um elemento a ser comparado
while esquerda <= direita:
# obtemos o elemento na metade da lista
meio = (esquerda + direita) // 2
# fazemos a comparação
if numero == valores[meio]:
print("O número foi encontrado no índice {0}".format(
meio))
encontrado = True
break # sai do laço
# o item atual é maior que o valor pesquisado?
if valores[meio] > numero:
direita = meio - 1
# o item atual é menor que o valor pesquisado?
else:
esquerda = meio + 1
# o valor foi encontrado?
if not encontrado:
print("O valor pesquisado não foi encontrado")
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Os valores da lista são: [3, 5, 7, 8, 9, 12, 43, 50, 52, 60] Informe o número a ser pesquisado: 9 O número foi encontrado no índice 4 |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de C++ - Escreva um programa C++ que mostra como somar os elementos da diagonal secundária de uma matrizQuantidade de visualizações: 16448 vezes |
|
Exercícios Resolvidos de C++ - Escreva um programa C++ que mostra como somar os elementos da diagonal secundária de uma matriz Pergunta/Tarefa: Em álgebra linear, a diagonal secundária de uma matriz A é a coleção das entradas Aij em que [i]i[/i] + [i]j[/i] é igual a n + 1 (onde n é a ordem da matriz). A diagonal secundária de uma matriz quadrada une o seu canto inferior esquerdo ao canto superior direito (conforme mostrado na saída do problema proposto abaixo). Escreva um programa C++ que declara uma matriz 3x3 e pede ao usuário para informar seus valores. Em seguida mostre todos os valores da matriz e a soma dos elementos da diagonal secundária. Sua saída deverá ser parecida com a imagem abaixo: ![]() Resposta/Solução: Veja a resolução comentada deste exercício:
#include <cstdlib>
#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, char *argv[])
{
int matriz[3][3]; // uma matriz de três linhas e três colunas
int soma_diagonal = 0; // guarda a soma dos elementos na diagonal secundária
// vamos ler os valores para os elementos da matriz
for(int i = 0; i < 3; i++){ // linhas
for(int j = 0; j < 3; j++){ // colunas
cout << "Valor para a linha " << i << " e coluna " << j << ": ";
cin >> matriz[i][j];
}
}
// vamos mostrar a matriz da forma que ela foi informada
cout << "\n\nValores na matriz\n" << endl;
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
cout << setw(5) << matriz[i][j];
}
cout << "\n" << endl;
}
// vamos calcular a soma dos elementos da diagonal secundária
int ordem = 3; // ordem da matriz
for(int i = 1; i <= 3; i++){
for(int j = 1; j <= 3; j++){
if((i + j) == (ordem + 1)){
soma_diagonal = soma_diagonal + matriz[i - 1][j - 1];
}
}
}
cout << "A soma dos elementos da diagonal secundaria e: " <<
soma_diagonal << endl;
cout << "\n" << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
|
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - Validação de formulários em JavaScript - Como validar CPF (com pontos e hífen) usando expressões regulares R - R para Matemática e Estatística - Como calcular desvio padrão usando a função sd() da linguagem R |
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 |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







