Python ::: Dicas & Truques ::: Lista (List) |
Apostila de Python - Como ordenar uma lista de inteiros em ordem crescente ou decrescente usando o método sort() do objeto List do PythonQuantidade de visualizações: 18584 vezes |
|
Nesta dica veremos como usar a função sort() do objeto List da linguagem Python para ordenar um vetor de inteiros em ordem crescente ou decrescente. Veja que, para ordenar o vetor em ordem descrecente, tudo que fiz foi fornecer o valor "reverse=True" para a função sort(). Veja o código completo para o exemplo: def main(): # cria uma lista de inteiros valores = [2, 5, 12, 2, 3, 32, 18] # exibe a lista na ordem original print(valores) # ordena a lista em ordem crescente valores.sort() # exibe a lista ordenada em ordem crescente print(valores) # ordena a lista em ordem decrescente valores.sort(reverse=True) # exibe a lista ordenada em ordem decrescente print(valores) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: [2, 5, 12, 2, 3, 32, 18] [2, 2, 3, 5, 12, 18, 32] [32, 18, 12, 5, 3, 2, 2] |
Python ::: Dicas & Truques ::: Aplicativos e Outros |
Como calcular a distância entre dois pontos na terra em PythonQuantidade de visualizações: 1542 vezes |
|
Nesta dica mostrarei como calcular a distância em quilômetros entre dois pontos na terra dadas suas latitudes e longitudes. Neste exemplo eu coloquei o valor de 6378.137 para o raio da terra, mas você pode definir para o valor que achar mais adequado. O cálculo usado neste código se baseia na Fórmula de Haversine, que determina a distância do grande círculo entre dois pontos em uma esfera, dadas suas longitudes e latitudes. Veja o código Python completo:
# vamos importar o módulo Math
import math
# função que recebe dois pontos na terra e retorna a distância
# entre eles em quilômetros
def calcularDistancia(lat1, lat2, lon1, lon2):
raio_terra = 6378.137 # raio da terra em quilômetros
# o primeiro passo é converter as latitudes e longitudes
# para radianos
lon1 = math.radians(lon1)
lon2 = math.radians(lon2)
lat1 = math.radians(lat1)
lat2 = math.radians(lat2)
# agora aplicamos a Fórmula de Haversine
dlon = lon2 - lon1
dlat = lat2 - lat1
a = math.pow(math.sin(dlat / 2), 2) + math.cos(lat1) * math.cos(lat2) \
* math.pow(math.sin(dlon / 2),2)
c = 2 * math.asin(math.sqrt(a))
# e retornamos a distância
return(c * raio_terra)
# método principal
def main():
# vamos solicitar a latitude e longitude das duas localizações
lat1 = float(input("Informe a primeira latitude: "))
lon1 = float(input("Informe a primeira longitude: "))
lat2 = float(input("Informe a segunda latitude: "))
lon2 = float(input("Informe a segunda longitude: "))
# vamos calcular a distância entre os dois pontos em Kms
distancia = calcularDistancia(lat1, lat2, lon1, lon2)
# mostramos o resultado
print("A distância entre os dois pontos é: {0} kms".format(distancia))
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Informe a primeira latitude: -16.674551 Informe a primeira longitude: -49.303598 Informe a segunda latitude: -15.579321 Informe a segunda longitude: -56.10009 A distância entre os dois pontos é: 736.9183827638687kms Neste exemplo eu calculei a distância entre as cidades de Goiânia-GO e Cuibá-MT. A latitude é a distância ao Equador medida ao longo do meridiano de Greenwich. Esta distância mede-se em graus, podendo variar entre 0o e 90o para Norte(N) ou para Sul(S). A longitude é a distância ao meridiano de Greenwich medida ao longo do Equador. |
C++ ::: Dicas & Truques ::: Arquivos e Diretórios |
Arquivos e diretórios em C++ - Como excluir um arquivo usando a função remove() do C++Quantidade de visualizações: 10584 vezes |
Em algumas situações nossos códigos C++ precisam excluir arquivos. Isso pode ser feito com o auxílio da função remove() ou _remove(), disponível no header io.h or stdio.h (trazido da linguagem C). Veja a assinatura desta função:int remove(const char *filename); Se o arquivo for excluído com sucesso a função retornará o valor 0. O retorno será -1 se um erro ocorrer. Neste caso a variável global errno será definido como um dos seguintes valores: a) ENOENT - No such file or directory - O caminho do arquivo é inválido; b) EACCESS - Acesso negado - Algum outro programa está usando este arquivo e mantém controle sobre o mesmo. Veja um trecho de código no qual excluimos um arquivo:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// vamos excluir este arquivo
char arquivo[] = "C:\\Dev-Cpp\\arquivo.txt";
// vamos testar se o arquivo foi excluído com sucesso
if(remove(arquivo) != 0){
cout << "Erro: " << strerror(errno) << endl;
}
else{
cout << "Arquivo excluído com sucesso" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
É possível usar a versão Unicode de remove(). O método _wremove(), também presente em io.h or stdio.h é útil quando precisamos internacionalizar nossas aplicações. Veja o exemplo:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// vamos excluir este arquivo
wchar_t arquivo[] = L"C:\\Dev-Cpp\\arquivo.txt";
// vamos testar se o arquivo foi excluído com sucesso
if(_wremove(arquivo) != 0){
cout << "Erro: " << strerror(errno) << endl;
}
else{
cout << "Arquivo excluído com sucesso" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código nós teremos o seguinte resultado: Arquivo excluído com sucesso. |
VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de VisuAlg - A concessionária de veículos "CARANGO VELHO" está vendendo os seus veículos com descontos. Faça um algoritmo VisuAlgQuantidade de visualizações: 498 vezes |
|
Pergunta/Tarefa: A concessionária de veículos "CARANGO VELHO" está vendendo os seus veículos com descontos. Faça um algoritmo VisuAlg que calcule e exiba o valor do desconto e o valor a ser pago pelo cliente de vários carros. O desconto deverá ser calculado de acordo com o ano do veículo. Até o ano 2000 o desconto é 12%, e acima de 2000 o desconto é de 7%. Seu código deverá solicitar o valor do carro e o seu ano e aplicar o desconto correspondente. Além disso o sistema deverá perguntar se deseja continuar calculando descontos até que a resposta seja: "(N) Não". Informar o total de carros com ano até 2000 e o total geral a ser pago pelo cliente. Sua saída deve ser parecida com: Informe o valor do carro sem desconto: 25000 Informe o ano do carro: 2010 Desconto concedido: 1750 Valor do carro com desconto: 23250 Deseja adicionar mais carros? [S, N]: S Informe o valor do carro sem desconto: 30500 Informe o ano do carro: 1985 Desconto concedido: 3660 Valor do carro com desconto: 26840 Deseja adicionar mais carros? [S, N]: S Informe o valor do carro sem desconto: 16800 Informe o ano do carro: 1990 Desconto concedido: 2016 Valor do carro com desconto: 14784 Deseja adicionar mais carros? [S, N]: N Total de carros com ano até 2000: 2 Total geral a pagar: 64874 Veja a resolução comentada deste exercício usando VisuAlg:
algoritmo "Cálculo de desconto nos preços de vários veículos"
var
// variáveis usadas na resolução do problema
valor_carro, valor_desconto, valor_carro_desconto: real
total_geral: real
ano: inteiro
total_carros_ano_2000: inteiro
resposta: caractere
inicio
// vamos inicializar os valores de algumas variáveis
total_geral <- 0
total_carros_ano_2000 <- 0
// repete até que o usuário informe o valor "N"
repita
// vamos ler o valor do carro sem desconto
escreva("Informe o valor do carro sem desconto: ")
leia(valor_carro)
// vamos ler o ano do carro
escreva("Informe o ano do carro: ")
leia(ano)
// o ano é menor ou igual a 2000
se ano <= 2000 entao
valor_desconto <- valor_carro * (12.0 / 100.0)
// vamos somar mais este carro
total_carros_ano_2000 <- total_carros_ano_2000 + 1
senao
valor_desconto <- valor_carro * (7.0 / 100.0)
fimse
// calculamos o valor do carro com o desconto
valor_carro_desconto <- valor_carro - valor_desconto
escreval("Desconto concedido: ", valor_desconto)
escreval("Valor do carro com desconto: ", valor_carro_desconto)
// somamos mais este valor ao total geral
total_geral <- total_geral + valor_carro_desconto
// perguntamos se o usuário deseja adicionar mais carros
escreva("Deseja adicionar mais carros? [S, N]: ")
leia(resposta)
// adiciona uma quebra de linha
escreval()
ate resposta = "N"
// mostramos os resultados
escreval("Total de carros com ano até 2000: ", total_carros_ano_2000)
escreval("Total geral a pagar: ", total_geral)
fimalgoritmo
|
Nossas 20 dicas & truques de programação mais populares |
|
Java - Exercícios Resolvidos de Java - Como converter decimal em binário em Java usando o laço while |
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 |





