Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: Python ::: Dicas & Truques ::: Lista (List)

Como excluir e retornar um item da lista Python baseado em seu índice usando a função pop()

Quantidade de visualizações: 8953 vezes
Nesta dica mostrarei como é possível usar o método pop() do objeto List da linguagem Python para excluir e retornar um item de uma lista baseado em seu índice. Tudo que precisamos fazer é informar o índice do elemento a ser excluído e retornado.

Veja o exemplo Python completo:

"""
  Este exemplo mostra como excluir e retornar
  um determinado item em uma lista
"""

def main():
  # cria uma lista de inteiros
  valores = [4, 23, 7, 1, 0, 54]
 
  # imprime a lista
  print(valores)
......


Ao executar este código Python nós teremos o seguinte resultado:

[4, 23, 7, 1, 0, 54]
Item removido: 7
[4, 23, 1, 0, 54]

É importante ficarmos atentos aos erros que podem ocorrer com chamadas à função pop(). Por exemplo, se a List estiver vazia, o seguinte erro será exibido:

Exception has occurred: IndexError
......


Se, por exemplo, fornecermos ao método pop() um índice inexistente, o seguinte erro ocorrerá:

Exception has occurred: IndexError
......


Link para compartilhar na Internet ou com seus amigos:

Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular vetor unitário em Java - Java para Física e Engenharia

Quantidade de visualizações: 327 vezes
Um vetor unitário ou versor num espaço vetorial normado é um vetor (mais comumente um vetor espacial) cujo comprimento ou magnitude é 1. Em geral um vetor unitário é representado por um "circunflexo", assim: __$\hat{i}__$.

O vetor normalizado __$\hat{u}__$ de um vetor não zero __$\vec{u}__$ é o vetor unitário codirecional com __$\vec{u}__$.

O termo vetor normalizado é algumas vezes utilizado simplesmente como sinônimo para vetor unitário. Dessa forma, o vetor unitário de um vetor __$\vec{u}__$ possui a mesma direção e sentido, mas magnitude 1. Por magnitude entendemos o módulo, a norma ou comprimento do vetor.

Então, vejamos a fórmula para a obtenção do vetor unitário:

\[\hat{u} = \dfrac{\vec{v}}{\left|\vec{v}\right|}\]

Note que nós temos que dividir as componentes do vetor pelo seu módulo de forma a obter o seu vetor unitário. Por essa razão o vetor nulo não possui vetor unitário, pois o seu módulo é zero, e, como sabemos, uma divisão por zero não é possível.

Veja agora o código Java que pede as coordenadas x e y de um vetor 2D ou R2 e retorna o seu vetor unitário:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
     
    // vamos ler os valores x e y
    System.out.print("Informe o valor de x: ");
    double x = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe o valor de y: ");
    double y = Double.parseDouble(entrada.nextLine());
......


Ao executar este código Java nós teremos o seguinte resultado:

Informe o valor de x: -4
Informe o valor de y: 6
O vetor unitário é: (x = -0.5547001962252291; y = 0.8320502943378437

Veja agora uma modificação deste código para retornarmos o vetor unitário de um vetor 3D ou R3, ou seja, um vetor no espaço:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
     
    // vamos ler os valores x, y e z
    System.out.print("Informe o valor de x: ");
    double x = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe o valor de y: ");
    double y = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe o valor de z: ");
    double z = Double.parseDouble(entrada.nextLine());
......


Ao executarmos este novo código nós teremos o seguinte resultado:

Informe o valor de x: 3
Informe o valor de y: 7
Informe o valor de z: 5
O vetor unitário é: (x = 0.329292779969071; y = 0.7683498199278324; z = 0.5488212999484517


PHP ::: Fundamentos da Linguagem ::: Variáveis e Constantes

Apostila PHP para iniciantes - Como usar constantes na linguagem PHP

Quantidade de visualizações: 11813 vezes
Como acontece na maioria das linguagens de programação, o PHP também permite o uso de constantes. Como o próprio nome diz, constantes são inicializadas uma vez e não podem ter seus valores alterados durante a execução do programa.

A definição de constantes em PHP segue as mesmas regras de nomeação de variáveis, com a exceção de que constantes não possuem o símbolo $ e são geralmente escritas em letras maiúsculas.

Diferente de variáveis, constantes, uma vez definidas, são acessadas globalmente. Não há a necessidade de redeclará-las em cada nova função ou arquivo.

A síntaxe de definição de uma constante é:

define("CONSTANT_NAME", value [, case_sensitivity])

onde:

a) CONSTANT_NAME é o nome da constante;

b) value é o valor atribuído à constante. Não é possível atribuir arrays nem objetos à constantes;

c) case_sensitivity permite definir se o nome da constante será tratado igualmente se referenciado usando letras maiúsculas ou minúsculas. O valor padrão é true, o que quer dizer que "VALOR" e "Valor" serão tratados como uma única constante.

REVISÃO: Revisando este código no PHP 8 eu percebi que o terceiro argumento (case_sensitivity) não é mais suportado, e gera um aviso do tipo:

Warning: define(): Argument #3 ($case_insensitive) is ignored since declaration of case-insensitive constants is no longer supported in...

Veja um exemplo de declaração e uso de constantes em PHP:

<?
  // declara uma constante com o nome MODO e valor 2
  define("MODO", 2);
......


Veja agora o que acontece quando tentamos modificar o valor de uma variável do tipo constante:

<?
  // declara uma constante com o nome MODO e valor 2
  define("MODO", 2);
......


Este código gera a seguinte mensagem de erro:

Parse error: syntax error, unexpected token "=" in...


VB.NET ::: Dicas & Truques ::: Sistema

Como retornar a versão do .NET a partir de seus códigos VB.NET usando Environment.Version.ToString()

Quantidade de visualizações: 6872 vezes
Em algumas situações nós precisamos saber qual a versão do .NET Framework no qual nosso programa VB.NET está sendo executado. Para isso nós podemos usar o método Environment.Version.ToString(), que retorna a versão do Runtime do .NET Framework como uma string.

Veja o código completo para o exemplo:

Imports System

Module Program
  Sub Main(args As String())
    ' vamos obter a versão do .NET 
    Dim versao As String = Environment.Version.ToString()

    ' vamos mostrar o resultado
    Console.WriteLine("A versão do .NET é: " & versao)
......


Ao executar este código VB.NET nós teremos o seguinte resultado:

A versão do .NET é: 3.1.23


C ::: Dicas & Truques ::: Recursão (Recursividade)

Como calcular o fatorial de um número em C usando recursividade

Quantidade de visualizações: 15496 vezes
O fatorial de um determinado número, representado por n! equivale a multiplicar este número por seus antecessores. Assim, o fatorial de 4 (4!) pode ser calculado da seguinte forma:

4 x 3 x 2 x 1 = 24


Sempre que falamos de recursão, o cálculo de fatorial nos auxilia na exemplificação por ser relativamente fácil de se entender todas as etapas do processo. O código abaixo mostra uma função recursiva em C que calcula o fatorial de qualquer número. Tenha cuidado. Calcular o fatorial de um número maior que 10 pode tornar sua máquina extremamente lenta, além de, muitas vezes, não retornar os resultados esperados.

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

// cabeçalho da função fatorial recursiva
int fatorial(int n);

// função principal do programa
int main(int argc, char *argv[]){
  setlocale(LC_ALL,""); // para acentos do português 
    
  // vamos calcular o fatorial de 5
  int res = fatorial(5);

  // exibe o resultado
......


Ao executar este código C nós teremos o seguinte resultado:

O fatorial de 5 é: 120


Java ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca)

Java Insertion Sort - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)

Quantidade de visualizações: 4226 vezes
A ordenação Insertion Sort, 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 a forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando 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 por 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 Java 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}:

package arquivodecodigos;
 
public class Estudos{
  // método que permite ordenar o vetor de inteiros
  // usando a ordenação Insertion Sort
  public static void insertionSort(int[] vetor){
    // percorre todos os elementos do vetor começando
    // pelo segundo elemento
    for(int i = 1; i < vetor.length; i++){
      int atual = vetor[i]; // o valor atual a ser inserido
      // começa a comparar com a célula à esquerda de i
      int j = i - 1;
      
      // enquanto vetor[j] estiver fora de ordem em relação
      // a atual
      while((j >= 0) && (vetor[j] > atual)){
        // movemos vetor[j] para a direita e decrementamos j
        vetor[j + 1] = vetor[j];
        j--;
      }
      
      // colocamos atual em seu devido lugar
......


Ao executar este código Java 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 Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

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



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