Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: Python ::: Dicas & Truques ::: Matemática e Estatística

Como testar se um número é primo em Python

Quantidade de visualizações: 3323 vezes
O Número Primo é o número maior que 1 e que só pode ser dividido por 1 e por ele mesmo, ou seja, números primos não podem ser divididos por outros números, a não ser por ele mesmo e pelo número 1. Dessa forma, 2, 3, 5, 7, 11, 13, 17, etc, são todos números primos.

É importante observar que 0 e 1 não são números primos, e que o número 2 é o único número primo par.

Veja agora um código Python completo que pede para o usuário informar um número inteiro positivo e mostra uma mensagem indicando se o número informado é primo ou não:

def main():
  primo = True # vamos assumir que o número é primo

  # vamos solicitar um número inteiro positivo
  numero = int(input("Informe um número inteiro positivo: "))

  # o número é negativo?
  if numero < 0:
    print("Número inválido.")
  # é 0 ou 1?
  elif (numero == 0) or (numero == 1):
    print("Número válido, mas não é primo.")
  # passou até aqui. Vamos testar se o número é primo
  else:
    for i in range(2, int((numero / 2))):
      # se passar no teste, não é primo
      if numero % i == 0:
        primo = False # recebe false
        break

    if primo:
      print("O número informado é primo")
    else:
      print("O número informado não é primo")
    
if __name__== "__main__":
  main()

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

Informe um número inteiro positivo: 9
O número informado não é primo

Link para compartilhar na Internet ou com seus amigos:

C ::: Dicas & Truques ::: Struct (Estruturas, Registros)

Como alocar memória para instâncias de uma estrutura (struct) e acessá-las usando ponteiros em C

Quantidade de visualizações: 11176 vezes
Esta dica mostra como declarar uma estrutura (struct), alocar duas instâncias desta e acessá-las usando ponteiros.

Considere a seguinte struct:

// define a estrutura Livro
struct Livro{
  char titulo[80];
  int codigo;
  int paginas;
};

Note que agora a variável titulo foi declarada como uma matriz de caracteres de 80 posições. Mais adiante você entenderá o propósito de tal abordagem. Veja agora como alocamos memória para duas instâncias desta estrutura:

// cria dois ponteiros para duas instâncias (recém-alocadas)
// de Livro
Livro *a = (struct Livro*)malloc(sizeof(struct Livro));
Livro *b = (struct Livro*)malloc(sizeof(struct Livro));

A partir deste ponto as variáveis a e b são ponteiros para as duas instâncias recém alocadas. Observe que, quando usamos ponteiros para estruturas, seus membros são acessados usando-se a notação -> em vez do ponto. Veja:

a->codigo = 342;
a->paginas = 230;

Para definir o valor para o membro titulo é preciso lançar mão da função strcpy(). Isso é feito porque estamos lidando com ponteiros, e cada instância de Livro possui sua área de memória a partir da qual a posição inicial da cadeia de caracteres que receberá o título do livro já foi inicializada. Veja:

strcpy(a->titulo, "Programando em Java");

Observe agora o código completo para o exemplo:

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

// define a estrutura Livro
struct Livro{
  char titulo[80];
  int codigo;
  int paginas;
};

int main(int argc, char *argv[]){
  // cria dois ponteiros para duas instâncias (recém-alocadas)
  // de Livro
  Livro *a = (struct Livro*)malloc(sizeof(struct Livro));
  Livro *b = (struct Livro*)malloc(sizeof(struct Livro));

  // preenche os dados do primeiro Livro
  // Estamos usando ponteiros agora. Para definir o título
  // do livro é preciso usar a função strcpy, já que estamos
  // usando uma cadeia de caracteres
  strcpy(a->titulo, "Programando em Java");
  a->codigo = 342;
  a->paginas = 230;

  // preenche os dados do segundo Livro
  strcpy(b->titulo, "JavaScript - O Guia Prático");
  b->codigo = 675;
  b->paginas = 930;

  // exibe os dados do primeiro livro
  printf("Primeiro Livro\nTitulo: %s\nCodigo: %d\nPaginas: %d\n",
    a->titulo, a->codigo, a->paginas);

  // exibe os dados do segundo livro
  printf("\nSegundo Livro\nTitulo: %s\nCodigo: %d\nPaginas: %d\n",
    b->titulo, b->codigo, b->paginas);

  puts("\n\n");
  system("PAUSE");
  return 0;
}



C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercício Resolvido de C - Usando um laço for para percorrer os elementos de uma matriz e exibí-los na ordem original e invertida

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

Considere a seguinte matriz de inteiros:

// uma matriz de inteiros contendo sete elementos
int valores[] = {6, 9, 12, 34, 83, 20, 17};
Escreva um programa C que usa um laço for para percorrer todos os elementos desta matriz duas vezes e exibí-los na ordem original e invertidos (somente na exibição, ou seja, não é necessário alterar a ordem dos elementos na matriz).

Seu programa deverá exibir a seguinte saída:

Ordem original:

6 9 12 34 83 20 17 

Ordem inversa:

17 20 83 34 12 9 6
Resposta/Solução:

Veja abaixo a resolução completa para esta tarefa:

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

int main(int argc, char *argv[])
{
  // uma matriz de inteiros contendo sete elementos
  int valores[] = {6, 9, 12, 34, 83, 20, 17};
  int tam_matriz = 7;
  int i;
    
  // primeiro vamos exibir os valores da matriz na ordem original
  printf("Ordem original:\n");

  for(i = 0; i < tam_matriz; i++){
    printf("%d  ", valores[i]);
  }

  // agora vamos exibir na ordem inversa
  printf("\n\nOrdem inversa:\n");

  for(i = tam_matriz - 1; i >= 0; i--){
    printf("%d  ", valores[i]);
  }
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}



C++ ::: STL (Standard Template Library) ::: Vector C++

Como retornar uma referência ao último elemento de um vector C++ usando a função back()

Quantidade de visualizações: 6694 vezes
O último elemento de um contêiner STL vector pode ser acessado por meio da função back(). Como esta função é sobrecarregada, temos duas opções:

reference back();
const_reference back() const;  
A primeira versão é do tipo T&, ou seja, retorna uma referência ao último elemento. Veja:

#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char *argv[]){
  // um vector vazio que conterá inteiros
  vector<int> valores;

  // vamos inserir três elementos
  valores.push_back(54);
  valores.push_back(13);
  valores.push_back(87);

  // vamos obter o valor do último elemento do vector
  // Note que back() pode ser usada dos dois lados
  // de uma operação de atribuição
  int valor = valores.back();
  cout << "Último elemento: " << valor << endl;

  // vamos alterar o valor do último elemento
  valores.back() = 102;

  // vamos testar o resultado
  cout << "Último elemento: " << valores.back() << endl;

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

Último elemento: 87
Último elemento: 102

Note que aqui nós usamos:

int valor = valores.back();

para guardar o valor do último elemento na variável valor. Poderíamos também usar:

int& valor = valores.back();
valor = 102;

Agora valor é uma referência direta ao último elemento do vector. Desta forma, qualquer alteração no valor da variável valor afetará também o último elemento do vector.

Observe agora o seguinte trecho de código:

int valor = valores.back(); // o último elemento é 87
valores.back() = 20;
cout << "Último elemento: " << valor << endl;

Aqui nós acessamos o valor do último elemento, guardarmos-o na variável valor e atribuímos o valor 20 à valores.back(). Porém, ao imprimirmos a variável valor o seu conteúdo ainda é 87. De fato, o que gostaríamos é que uma alteração em valores.back() afetasse também a variável valor. Assim:

int& valor = valores.back(); // o último elemento é 87
valores.back() = 20;
cout << "Último elemento: " << valor << endl;

Mas, como evitar alterações diretas na variável valor? Podemos declarar valor como uma referência constante, ou seja, usar a segunda versão da função back(), a saber const T&, que retorna uma referência constante. Veja:

const int& valor = valores.back(); // o último elemento é 87
valores.back() = 20;
valor = 300; // esta linha não compila
cout << "Último elemento: " << valor << endl;

Agora o efeito que queríamos é alcançado. Alterações em valores.back() afetam a variável valor, mas, não podemos alterar valor diretamente, já que esta variável é uma referência constante agora.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Vetores e Matrizes - Exercícios Resolvidos de Java - Ex. 15 - Declarar, construir e inicializar dois vetores de int e criar um terceiro vetor com os valores dos elementos sendo a soma dos elementos dos dois vetores anteriores

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

Considere os seguintes vetores:

// declara, constrói e inicializa dois vetores de 5 inteiros cada
int a[] = {5, 2, 9, 5, 7};
int b[] = {2, 6, 10, 3, 3};
Escreva um programa Java GUI ou console que cria um terceiro vetor de 5 inteiros e atribua a cada elemento deste vetor a soma dos elementos correspondentes nos dois vetores anteriores. Sua saída deverá ser algo parecido com:

Valores na matriz a: 5   2   9   5   7   
Valores na matriz b: 2   6   10   3   3   
Valores na matriz c: 7   8   19   8   10
Resposta/Solução:

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

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // declara, constrói e inicializa dois vetores de 5 inteiros cada
    int a[] = {5, 2, 9, 5, 7};
    int b[] = {2, 6, 10, 3, 3};
    int c[] = new int[5];
    
    // vamos preencher o terceiro vetor com a soma dos dois anteriores
    for(int i = 0; i < c.length; i++){
      c[i] = a[i] + b[i];  
    }
    
    // vamos mostar o resultado
    System.out.print("Valores no vetor a: ");
    for(int i = 0; i < a.length; i++){
      System.out.print(a[i] + "   ");  
    }
    
    System.out.print("\nValores no vetor b: ");
    for(int i = 0; i < b.length; i++){
      System.out.print(b[i] + "   ");  
    }
    
    System.out.print("\nValores no vetor c: ");
    for(int i = 0; i < c.length; i++){
      System.out.print(c[i] + "   ");  
    }
    
    System.out.println();
  }
}



PHP ::: Dicas & Truques ::: Gráficos e Cores

Gráficos em PHP - Como criar imagens dinamicamente usando a função imagecreate() do PHP

Quantidade de visualizações: 12589 vezes
O primeiro passo para a criação de imagens dinâmicas em PHP é entender o funcionamento da função imagecreate(). Esta função retorna uma referência para uma imagem criada na memória com a largura e altura especificadas e na cor branca. Assim, tudo que temos a fazer é escrever ou desenhar nesta área branca e finalmente salvar ou enviar para o browser.

Veja um exemplo de código no qual criamos uma imagem PNG com a largura de 200 pixels e altura de 150 pixels. Note que a cor de fundo é azul e a cor do texto é branca:

<?
  // informamos ao browser que o conteúdo é uma imagem PNG
  header("Content-type: image/png");
  // criamos uma imagem com largura de 200 e altura de 150 pixels
  $imagem = imagecreate(200, 150);
  // cor de fundo será azul
  $cor_fundo = imagecolorallocate($imagem, 0, 0, 255);
  // cor do texto será branca
  $cor_texto = imagecolorallocate($imagem, 255, 255, 255);
  // escrevemos na imagem
  imagestring($imagem, 3, 10, 10,  "Arquivo de Códigos", $cor_texto);
  // mandamos para o browser
  imagepng($imagem);
  // liberamos a memória
  imagedestroy($imagem);
?>

Para visualizar este resultado, salve este código como imagem.php e use o nome deste arquivo na propriedade src de uma imagem em uma outra página. Veja:

<img src="imagem.php">



Desafios, Exercícios e Algoritmos Resolvidos de PHP

Veja mais Dicas e truques de PHP

Dicas e truques de outras linguagens

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

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

Anúncio Patrocinado
Chat de Sexo - Site para adultso - Maiores de 18 anos. Converse com pessoas de todo o Brasil, de forma discreta e anônima


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