Você está aqui: PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como remover e retornar o primeiro elemento de um array PHP usando a função array_shift()Quantidade de visualizações: 8832 vezes |
A função array_shift() do PHP remove o primeiro elemento de um vetor (array) e retorna o seu valor. Nesse caso, se as chaves, ou índices, do vetor forem do tipo númerico, elas serão reorganizadas. Veja um exemplo de seu uso no código PHP a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <?php /* Este exemplo mostra como usar a função array_shift() para extrair e retornar o primeiro elemento de um array */ $pessoas[0] = "Carlos"; $pessoas[1] = "Juliana"; $pessoas[2] = "Igor"; $pessoas[3] = "Marcelo"; // extrai o primeiro elemento $primeiro = array_shift($pessoas); echo "O elemento extraido foi: " . $primeiro . "<br>"; // vamos nos certificar de que o primeiro elemento // foi realmente removido echo "O array contém agora " . count($pessoas) . " elementos"; ?> Ao executar este código PHP nós teremos o seguinte resultado: O elemento extraido foi: Carlos O array contém agora 3 elementos |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Como resolver o problema da Torre de Hanói recursivamenteQuantidade de visualizações: 1266 vezes |
Pergunta/Tarefa: Torre de Hanói, ou The Towers of Hanoi, é um "quebra-cabeça" que consiste em uma base contendo três pinos, em um dos quais são dispostos alguns discos uns sobre os outros, em ordem crescente de diâmetro, de cima para baixo. O problema consiste em passar todos os discos de um pino para outro qualquer, usando um dos pinos como auxiliar, de maneira que um disco maior nunca fique em cima de outro menor em nenhuma situação. O número de discos pode variar sendo que o mais simples contém apenas três. A solução da Torre de Hanói (The Towers of Hanoi) pode ser feita recursivamente da seguinte forma: O caso base (parada da recursão) é quando n = 1. Se n = 1 nós podemos simplesmente mover o disco de A para B, sem precisar passar pelo pino C. Quando n > 1 nós podemos dividir o problema original em três sub-problemas e resolvê-los sequencialmente. 1) Mova os primeiros n - 1 discos de A para C com a ajuda do pino B; 2) Mova o disco n de A para B; 3) Mova n - 1 discos do pino C para o pino B com a ajuda do pino A. Além de resolver o problema, seu programa deverá informar quantas chamadas recursivas foram feitas. Sua saída deverá ser parecida com: Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.util.Scanner; public class Estudos { static int quantChamadasRecursivas = 0; // registra as chamadas recursivas public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos ler a quantidade de discos a serem usados na simulação System.out.print("Informe a quantidade de discos: "); int discos = Integer.parseInt(entrada.nextLine()); // resolve o problema recusivamente System.out.println("\nOs movimentos para resolver o problema foram:\n"); moverDiscos(discos, 'A', 'B', 'C'); System.out.println("\nForam feitas " + quantChamadasRecursivas + " chamadas recursivas"); System.out.println(); } // método recursivo que resolve o problema da Torre de Hanói public static void moverDiscos(int n, char daTorre, char paraTorre, char torreAux) { quantChamadasRecursivas++; // registra mais uma chamada recursiva if(n == 1){ // condição de parada System.out.println("Movendo o disco " + n + " de " + daTorre + " para " + paraTorre); } else{ // faz mais uma chamada recursiva moverDiscos(n - 1, daTorre, torreAux, paraTorre); System.out.println("Movendo o disco " + n + " de " + daTorre + " para " + paraTorre); moverDiscos(n - 1, torreAux, paraTorre, daTorre); } } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos |
POO - Programação Orientada a Objetos - Exercícios Resolvidos de Java - Ex. 2 - A classe Circulo (construtores, métodos, getters e setters e encapsulamento)Quantidade de visualizações: 18842 vezes |
Pergunta/Tarefa: Escreva uma classe Circulo para representar círculos. Esta classe deverá conter os seguintes atributos e métodos: a) Uma variável privada do tipo double chamada raio que guardará o valor do raio atual do circulo. b) Métodos get() e set() públicos que permitem definir e acessar o valor da variável raio. c) Um construtor que recebe o valor do raio como argumento. d) Um método getArea() que calcula e retorna a área do círculo. e) Um método getCircunferencia() que calcula e retorna a circunferência do círculo. f) Um método aumentarRaio() que recebe um valor double e o usa como percentual para aumentar o raio do círculo. Crie uma classe contendo um método main() para testar a funcionalidade da classe Circulo. Eis um exemplo de entrada e saída: Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: Circulo.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class Circulo{ private double raio; // guarda o raio atual do círculo // construtor que recebe o valor do raio como argumento public Circulo(double raio){ this.raio = raio; } // permite obter o raio do círculo public double getRaio(){ return raio; } // permite definir o raio do círculo public void setRaio(double raio){ this.raio = raio; } // obtém a área do círculo public double getArea(){ double area = Math.PI * Math.pow(this.raio, 2); return area; } // obtém a circunferência do círculo public double getCircunferencia(){ double circunferencia = (2 * Math.PI) * this.raio; return circunferencia; } // permite aumentar o raio de acordo com uma porcentagem fornecida public void aumentarRaio(double porcentagem){ this.raio = this.raio + (porcentagem / 100.0) * this.raio; } } Veja agora o método main() que nos permite testar a funcionalidade da classe Circulo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // vamos criar uma instância da classe Circulo Scanner entrada = new Scanner(System.in); System.out.print("Informe o raio do círculo: "); double raio = Double.parseDouble(entrada.nextLine()); Circulo c = new Circulo(raio); // vamos mostrar o valor do raio atual System.out.println("Raio: " + c.getRaio()); // vamos mostrar a área System.out.println("Área: " + c.getArea() + " metros quadrados"); // vamos mostrar a circunferência System.out.println("Circunferência: " + c.getCircunferencia() + " metros"); // vamos aumentar o raio do circulo em uma determinada porcentagem System.out.print("\nInforme o percentual de aumento do raio: "); double percentual = Double.parseDouble(entrada.nextLine()); c.aumentarRaio(percentual); // vamos mostrar o valor do raio atual System.out.println("Raio: " + c.getRaio()); // vamos mostrar a área System.out.println("Área: " + c.getArea() + " metros quadrados"); // vamos mostrar a circunferência System.out.println("Circunferência: " + c.getCircunferencia() + " metros"); } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Exceções e Tratamentos de Erros |
Exceções e Tratamentos de Erros - Exercícios Resolvidos de Java - Ex. 1 - Forçando o usuário a informar dois inteiros válidos antes de efetuar sua somaQuantidade de visualizações: 2614 vezes |
Pergunta/Tarefa: Escreva um programa Java que usa tratamento de erros try...catch para forçar o usuário a informar dois valores inteiros válidos antes de tentar somá-los. Caso o usuário informe um ou os dois valores inválidos, o programa deverá exibir uma mensagem de erro e solicitar os valores novamente. Sua saída deverá ser parecida com: Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); boolean validos = false; // para verificar se os valores são inteiros válidos int n1, n2, soma; // solicita que o usuário informe os dois valores while(!validos){ try { System.out.print("Informe o primeiro valor: "); n1 = Integer.parseInt(entrada.nextLine()); // tenta fazer a conversão System.out.print("Informe o segundo valor: "); n2 = Integer.parseInt(entrada.nextLine()); // tenta fazer a conversão // se chegou até aqui é porque não houve erros na conversão, ou seja, o usuário // informou inteiros válidos soma = n1 + n2; System.out.println("A soma dos valores é: " + soma); validos = true; } catch (Exception ex) { // houve erro na conversão? System.out.println("Dados inválidos: " + ex.toString()); System.out.println("Por favor, informe os dois números novamente"); } } } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Uma locadora de charretes cobra R$ 10,00 de taxa para cada 3 horas de uso destasQuantidade de visualizações: 5720 vezes |
Exercício Resolvido de Java - Uma locadora de charretes cobra R$ 10,00 de taxa para cada 3 horas de uso destas Pergunta/Tarefa: Uma locadora de charretes cobra R$ 10,00 de taxa para cada 3 horas de uso destas e R$ 5,00 para cada 1 hora abaixo destas 3 horas. Faça um programa (algorítmo) Java que leia a quantidade de horas que a charrete foi usada, calcule e escreva o valor a ser pago pelo cliente. Sua saída deverá ser parecida com: Quantidade de horas que a charrete foi usada: 7 Valor total a ser pago: R$ 25,00 Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package exercicio; import java.text.NumberFormat; import java.util.Scanner; public class Exercicio { public static void main(String[] args) { // vamos fazer a leitura usando a classe Scanner Scanner entrada = new Scanner(System.in); // vamos ler a quantidade de horas que a charrete foi usada System.out.print("Quantidade de horas que a charrete foi usada: "); int horas = Integer.parseInt(entrada.nextLine()); // vamos calcular o valor por 3 horas exatas int valor = horas / 3; // valor a ser pago para cada hora abaixo de 3 int restante = horas % 3; // finalmente calculamos o valor total a ser pago double valor_total = (valor * 10.0) + (restante * 5); // e exibimos o resultado NumberFormat formato = NumberFormat.getCurrencyInstance(); System.out.println("Valor total a ser pago: " + formato.format(valor_total)); } } |
C# ::: Dicas & Truques ::: Arquivos e Diretórios |
Como retornar a data e hora da criação de um diretório em C# usando a função GetCreationTime() da classe DirectoryQuantidade de visualizações: 8570 vezes |
Nesta dica mostrarei como usar o método GetCreationTime() da classe Directory do C# para obter e retornar a data e hora da criação de um diretório. Note que o retorno de uma chamada a este método é um objeto da classe DateTime. Veja o código 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.IO; namespace Estudos { class Principal { static void Main(string[] args) { // caminho e nome do diretíro string diretorio = @"C:\estudos_csharp\imagens"; DateTime data = Directory.GetCreationTime(diretorio); Console.WriteLine("Diretório criado em: {0}", data); Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Diretório criado em: 17/07/2022 22:09:12 |
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
Revit C# - Como criar eixos no Revit via programação usando a função Create() da classe Grid da Revit C# API |
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 |