Desafios e Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico

Como calcular média ponderada em Python - Ler o nome de um aluno e as notas de três provas - Lista de Exercícios Resolvidos de Python

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

Escrever um programa em Python que leia o nome de um aluno e as notas das três provas que ele obteve no semestre. No final informar o nome do aluno e a sua média (ponderada), onde o primeiro e o segundo teste têm pesos de 30% e o terceiro 40%.

Sua saída deverá ser parecida com:

Nome do aluno: MICHELE LEMOS
Informe a primeira nota: 6.7
Informe a segunda nota: 5.4
Informe a terceira nota: 9.5
A média do aluno MICHELE LEMOS é: 7.43 
Resposta/Solução:

Veja a resolução comentada deste exercício usando a linguagem Python:



Link para compartilhar na Internet ou com seus amigos:

C# ::: Datas e Horas ::: DateTime

Como usar a estrutura DateTime do C# em seus programas

Quantidade de visualizações: 9209 vezes
A estrutura DateTime representa um momento no tempo, geralmente expressado como uma data e hora do dia. O tipo DateTime representa datas e horas com valores na faixa de meia-noite do dia 1º de janeiro de 0001 Anno Domini (Common Era) até as 11:59:59 da noite do dia 31 de dezembro de 9999 A.D. (C.E.).

Os valores de horas são medidos em unidades de 100 nanosegundos chamados de ticks e uma data em particular é o número de ticks desde a meia-noite do dia 1º de janeiro de 0001 A.D (C.E) no calendário Gregoriano (GregorianCalendar). Por exemplo, um valor de tick de 31241376000000000L representa a data 1º de janeiro de 0100 (sexta-feira) à meia-noite. O valor DateTime é sempre expresso no contexto de um calendário explícito ou padrão.

Considerações sobre versões

Em versões do .NET Framework anteriores à 2.0, a estrutura DateTime contém um campo de 64 bits composto de um campo de 2 bits não usados concatenados com um campo privado Ticks, que é um campo sem sinal de 62 bits que contém o número de ticks que representam a data e hora. O valor do campo Ticks pode ser obtido por meio da propriedade Ticks.

A partir do .NET Framework 2.0, a estrutura DateTime contém um campo de 64 bits composto de um campo privado Kind concatenado com o campo Ticks. O campo Kind é um campo de 2 bits que indica se a estrutura DateTime representa uma hora local, uma hora UTC (Coordinated Universal Time) ou um hora em um fuso horário não especificado. O campo Kind é usado quando estamos efetuando conversões de horas entre fuso horários, mas, não é usado para comparações de datas e horas ou aritmética. O valor do campo Kind pode ser obtido por meio da propriedade Kind.

É importante observar que uma alternativa ao uso da estrutura DateTime para se trabalhar com datas e horas em um fuso horário em particular é a estrutura DateTimeOffset. Esta estrutura guarda as informações de data e hora em um campo DateTime privado e o número de minutos pelos quais a data e hora diferem do horário UTC em um campo Int16 privado. Isso torna possível usarmos um valor DateTimeOffset para refletir as horas em um fuso horário em particular, enquanto um valor DateTime pode, sem causar confusão, refletir somente a hora UTC e do fuso horário local.

Valores DateTime

As descrições de valores de horas no tipo DateTime geralmente são expressas usando o padrão Coordinated Universal Time (UTC), que é o nome reconhecido internacionalmente para o Greenwich Mean Time (GMT). O Coordinated Universal Time é a hora de acordo com as medições em longitude de zero graus, ou seja, o ponto de origem UTC. Horários de verão não são aplicáveis ao UTC.

A hora local é relativa a um determinado fuso horário. Um fuso horário está associado à diferença de fuso horário, que é o deslocamento do fuso horário medido em horas a partir do ponto de origem UTC. Além disso, a hora local é opcionalmente afetada pelo horário de verão, que adiciona ou subtrai uma hora à duração do dia. Consequentemente, a hora local é calculada adicionando-se a diferença de fuso horário ao UTC e ajustando o horário de verão se necessário. A diferença de fuso horário no ponto de origem UTC é zero.

A hora UTC é ideal para cálculos, comparações e armazenamento de datas e horas em arquivos. A hora local é apropriada para a exibição em interfaces do usuário em aplicações desktop. Aplicações que são acessadas em diferentes fuso horários (tais com aplicações web) também precisam fornecer meios para a correta adequação a tais fuso horários.

Veja um trecho de código no qual usamos a propriedade Now da estrutura DateTime para exibir a data e hora local no formato longo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

static void Main(string[] args){
  // Data e hora atual
  DateTime agora = DateTime.Now;

  // exibe o resultado
  System.Console.WriteLine("{0:F}", agora);

  // pausa o programa
  Console.ReadKey();
}

O resultado da execução deste código será algo parecido com:

segunda-feira, 23 de fevereiro de 2008 19:54:46.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

Algorítmos Resolvidos de Java - A classe Retangulo (construtores, getters e setters, encapsulamento e static)

Quantidade de visualizações: 14340 vezes
Exercícios Resolvidos de Java - A classe Retangulo (construtores, getters e setters, encapsulamento e static)

Pergunta/Tarefa:

Escreva uma classe Retangulo para representar um retângulo. A classe deve conter:

a) Dois campos de dados do tipo double chamados largura e altura que especificam a largura e a altura do retângulo. Os valores padrões são 1 tanto para a largura quanto para a altura.

b) Um campo de dado do tipo String chamado cor que especifica a cor do retângulo. Para este exercício em particular, assuma que TODOS os retângulos possuirão a mesma cor. A cor padrão é branco.

c) Um construtor sem argumentos que cria um retângulo padrão.

d) Um construtor que cria um retângulo com a largura e altura especificadas.

e) Métodos get() e set() para os três campos de dados da classe.

f) Um método chamado getArea() que retorna a área do retângulo.

g) Um método chamado getPerimetro() que retorna o perímetro do retângulo.

Escreva um programa de teste que cria dois objetos da classe Retangulo. Sua saída deverá ser parecida com:



Resposta/Solução:

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

Retangulo.java

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

public class Retangulo {
  private double largura; // largura do retângulo
  private double altura; // altura do retângulo
  
  // O exercício pede que TODOS os retângulos tenham a mesma cor
  // consulte a dica http://www.arquivodecodigos.net/dicas/1158 para mais
  // detalhes sobre o modificador static
  private static String cor = "branco"; // cor do retângulo

  // construtor sem argumentos
  public Retangulo(){
    this.largura = 1;
    this.altura = 1;
  }

  // construtor que permite especificar a largura e a altura
  public Retangulo(double largura, double altura){
    this.largura = largura;
    this.altura = altura;
  }

  // obtém a altura
  public double getAltura() {
    return altura;
  }

  // define a altura
  public void setAltura(double altura){
    this.altura = altura;
  }

  // obtém a largura
  public double getLargura(){
    return largura;
  }

  // define a largura
  public void setLargura(double largura){
    this.largura = largura;
  }
  
  // obtém a cor de TODOS os retângulos
  public static String getCor(){
    return cor;
  }

  // define a cor de TODOS os retângulos
  public static void setCor(String cor){
    Retangulo.cor = cor;
  }

  // este método retorna a área do retângulo (em metros quadrados)
  public double getArea(){
    return (this.largura * this.altura);  
  }
  
  // este método retorna o perímetro do retângulo (em metros)
  public double getPerimetro(){
    return ((2 * this.largura) + (2 * this.altura));  
  }
}

Agora o teste no método main():

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar uma instância da classe Retangulo com
    // os valores padrões
    Retangulo a = new Retangulo();
    
    // agora vamos informar a largura e a altura
    Retangulo b = new Retangulo(10, 5);
    
    // os dois retângulos terão a cor verde
    Retangulo.setCor("verde");
    
    // vamos mostrar os resultados do primeiro retângulo
    System.out.println("Primeiro retângulo");
    System.out.println("Largura: " + a.getLargura());
    System.out.println("Altura: " + a.getAltura());
    System.out.println("Cor: " + Retangulo.getCor());
    System.out.println("Área: " + a.getArea() + " metros quadrados");
    System.out.println("Perímetro: " + a.getPerimetro() + " metros");
    
    // vamos mostrar os resultados do segundo retângulo
    System.out.println("\nSegundo retângulo");
    System.out.println("Largura: " + b.getLargura());
    System.out.println("Altura: " + b.getAltura());
    System.out.println("Cor: " + Retangulo.getCor());
    System.out.println("Área: " + b.getArea() + " metros quadrados");
    System.out.println("Perímetro: " + b.getPerimetro() + " metros");
  }
}



Node.js ::: Dicas de Estudo e Anotações ::: Passos Iniciais

Saiba o que é o Node.js e como baixar, instalar e testar seu funcionamento no Windows

Quantidade de visualizações: 1344 vezes
O que é o Node.js

Então todos os seus amigos estão comentando sobre Node.js e você não tem a mínima idéia do que se trata? Neste pequeno tutorial falaremos um pouco sobre essa ferramenta, faremos o download do instalador no Windows 10 (deve funcionar em outras versões também) e no final testaremos a instalação para termos certeza de que já estaremos prontos para desenvolver algumas idéias.

O Node.js é uma plataforma server-side, ou seja, que executa do lado do servidor web e escrito a partir do Google Chrome's JavaScript Engine (V8 Engine), o motor de interpretação e/ou compilação de códigos JavaScript do navegador Google Chrome. Esta ferramenta foi desenvolvida por Ryan Dahl e desde então tem sido adotada em vários projetos web e sofre melhorias a cada versão.

O objetivo principal do Node.js é facilitar o desenvolvimento de aplicações web que sejam mais rápidas e de fácil escalabilidade. Este web server (sim, o Node.js é um servidor web tal como o Apache Web Server, Tomcat, etc) usa um modelo direcionado a eventos (event-driven) e sem bloqueio de I/O, o que o torno leve e muito eficiente, perfeito para aplicações de tempo real e acesso intensivo a dados e que possam ser executadas em ambientes distribuidos.

O Node.js é uma plataforma open source e cross-platform, ou seja, permite que nossos códigos rodem em diferentes sistemas operacionais com poucas ou nenhuma alteração. Além disso, aplicações Node.js são escritas em JavaScript e são executadas dentro do runtime do próprio Node.js. Para completar, esta ferramenta nos fornece uma extensa biblioteca de módulos JavaScript, o que simplifica ainda mais o desenvolvimento de aplicações web.

Baixando e instalando o Node.js

Para fazer o download do Node.js, direcione o seu navegador para a URL https://nodejs.org/en/download. Você encontrará os binários e instaladores para Windows, MacOS e Linux. Para este tutorial eu baixei o instalador para o Windows 64-bit Windows Installer (.msi), node-v12.16.3-x64.msi, com o tamanho de 18,8Mb.

Execute o instalador e siga o passo-a-passo da instalação. Um detalhe importante é informar, para a instalação, um diretório que não contenha espaços. Veja:



Depois de escolhido o local de instalação, continue e logo você verá a seguinte tela:



Aqui o instalador nos informa que alguns módulos rpm precisam ser compilados com C/C++ antes de serem instalados. Se você quiser instalar tais módulos, algumas ferramentas tais como Python e o Visual Studio Build Tools deverão ser baixadas. Mas se você não quiser, não precisa se preocupar com isso agora. Apenas clique o botão Next e finalize a instalação.

Testando a sua instalação do Node.js

Finalizada a instalação, chegou a hora de fazermos o teste. Abra um janela de comando (cmd) e digite:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
node -v

Opcionalmente você pode digitar --version em vez de -v. O resultado será a versão do Node.js que você acaba de instalar.

Para concluir, vamos testar a interface de linha de comando do Node. Abra de novo a janela de terminal do Windows e digite apenas:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

node

Agora você verá o sinal ">" aguardando os seus comandos. Digite algo como:

console.log('Que beleza. O Node.js está pronto!');

Pressione a tecla Enter e o Node.js exibirá o conteúdo digitado. Para sair do comando de linha do Node e voltar para o terminal do Windows, basta pressionar Ctrl+D.

Pronto! Agora você já pode ver nossas dicas de Node.js e dar continuidade aos seus estudos.


C# ::: Windows Forms ::: ListBox

Como excluir todos os itens selecionados em uma ListBox de múltipla seleção do C# Windows Forms

Quantidade de visualizações: 10985 vezes
Em algumas situações precisamos remover todos os itens selecionados em uma ListBox. Nesta dica mostrarei como isso pode ser feito.

Comece criando uma ListBox com o nome listBox1 e adicione o código abaixo no evento Click de um botão:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void button1_Click(object sender, EventArgs e){
  // vamos adicionar alguns itens na ListBox
  listBox1.Items.Add("Java");
  listBox1.Items.Add("C++");
  listBox1.Items.Add("Delphi");
  listBox1.Items.Add("Python");
  listBox1.Items.Add("VB.NET");

  // vamos definir a seleção da lista como seleção múltipla
  listBox1.SelectionMode = SelectionMode.MultiExtended;
}

Em seguida coloque o trecho de código abaixo no evento Click de um segundo botão:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void button2_Click(object sender, EventArgs e){
  // vamos obter a lista de itens selecionados
  ListBox.SelectedObjectCollection selecionados = 
    new ListBox.SelectedObjectCollection(listBox1);
  
  // vamos excluir todos os itens selecionados
  for(int i = selecionados.Count - 1; i >= 0; i--){
    listBox1.Items.Remove(selecionados[i]);
  }
}

Execute a aplicação e clique no primeiro botão. Isso fará com que alguns itens sejam inseridos na lista e seu modo de seleção seja definido como seleção múltipla. Agora selecione alguns itens e clique no segundo botão. Você verá que os itens selecionados são automaticamente excluídos.

O primeiro passo foi obter um objeto da classe ListBox.SelectedObjectCollection contendo apenas os itens selecionados na ListBox. Em seguida nós usamos um laço for para percorrer os itens do objeto ListBox.SelectedObjectCollection e fornecer o índice de cada item selecionado ao método Remove() da coleção de itens da ListBox. Esta coleção é uma instância da classe ListBox.ObjectCollection.

Há uma segunda forma de se excluir todos os itens da ListBox sem usar um objeto da classe ListBox.SelectedObjectCollection. Tudo que precisamos fazer é combinar os métodos GetSelected() da classe ListBox e o método RemoveAt() da coleção de itens (objeto da classe ListBox.ObjectCollection):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void button2_Click(object sender, EventArgs e){
  // vamos excluir todos os itens selecionados
  for(int i = listBox1.Items.Count - 1; i >= 0; i--){
    // o item está selecionado?
    if(listBox1.GetSelected(i)){
      listBox1.Items.RemoveAt(i);
    }
  }
}



JavaScript ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções

JavaScript Avançado - Como escrever uma função JavaScript que aceita um número variável de argumentos

Quantidade de visualizações: 8003 vezes
Em algumas situações precisamos criar funções JavaScript que aceitam um número variável de argumentos, ou seja, queremos ser capazes de chamar a função e fornecer 0, 1, 2 ou mais argumentos. Nesta dica eu mostrarei como isso é possível.

A técnica aqui é usar o objeto arguments, que representa os argumentos da função que está sendo executada no momento. Para saber a quantidade de argumentos fornecidos, só precisamos usar a propriedade length deste objeto. A partir daí um laço for nos permite acessar cada um dos argumentos fornecidos individualmente.

Veja uma página HTML contendo uma função JavaScript que permite somar os valores fornecidos como argumentos. Note que podemos passar quantos valores quisermos para a função:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
<title>Estudos JavaScript</title>

<script type="text/javascript">
  function somar(){
    var soma = 0;

    // vamos percorrer os argumentos fornecidos
    for(var i = 0; i < arguments.length; i++){
      soma += arguments[i];
    }

    window.alert("A soma dos valores é: " + soma);
  }

  // vamos somar alguns valores
  somar(3); // um argumento
  somar(2, 8); // dois argumentos
  somar(1, 2, 4, 4); // quatro argumentos
</script>

</head>
<body>

</body>
</html>

O objeto argumentos não pode ser criado explicitamente. Este objeto está disponível somente quando uma função inicia sua execução. O objeto arguments de uma função não é um array (matriz), mas os argumentos individuais podem ser acessados da mesma forma que os elementos de um array, ou seja, usando índices. O índice é, na verdade, uma referência a uma das propriedades 0...n do objeto arguments.


Desafios, Exercícios e Algoritmos Resolvidos de JavaScript

Veja mais Dicas e truques de JavaScript

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

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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


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