Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Escreva um programa que solicita doze números do tipo inteiro ao usuário e guarde-os em um vetor. Separe esses números em pares e ímpares e os armazene em dois - Desafio de Programação Resolvido em C

Quantidade de visualizações: 1437 vezes
Exercício Resolvido de C - Escreva um programa que solicita doze números do tipo inteiro ao usuário e guarde-os em um vetor. Separe esses números em pares e ímpares e os armazene em dois

Pergunta/Tarefa:

Escreva um programa que solicita doze números do tipo inteiro ao usuário e guarde-os em um vetor. Separe esses números em pares e ímpares e os armazene em dois outros vetores chamados vetpar e vetimpar. Em seguida, o programa deve apresentar os resultados na tela.

Sua saída deverá ser parecida com:

Informe o 1.o número: 3
Informe o 2.o número: 65
Informe o 3.o número: 12
Informe o 4.o número: 31
Informe o 5.o número: 9
Informe o 6.o número: 7
Informe o 7.o número: 10
Informe o 8.o número: 21
Informe o 9.o número: 80
Informe o 10.o número: 4
Informe o 11.o número: 50
Informe o 12.o número: 37

Os números pares lidos foram:
12 10 80 4 50
Os números ímpares lidos foram:
3 65 31 9 7 21 37
Resposta/Solução:

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

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>   
   
int main(int argc, char *argv[]){
  int num[12]; // para guardar os números lidos
  int vetpar[12], vetimpar[12]; // para os números pares e impares
  int i, cont_par = 0, cont_impar = 0;
	
  setlocale(LC_ALL,""); // para acentos do português
	
  // vamos pedir para o usuário informar doze números inteiros
  for(i = 0; i < 12; i++){
    printf("Informe o %d.o número: ", (i + 1));
    scanf("%d", &num[i]);
  	
    // o número lido é par?
    if(num[i] % 2 == 0){
      vetpar[cont_par] = num[i];
      cont_par++;
    }
    else{ // o número lido é ímpar
      vetimpar[cont_impar] = num[i];
      cont_impar++;
    }
  }
  
  // vamos mostrar os números pares
  printf("\nOs números pares lidos foram:\n");
  for(i = 0; i < cont_par; i++){
    printf("%d ", vetpar[i]);
  }
  
  // vamos mostrar os números ímpares
  printf("\nOs números ímpares lidos foram:\n");
  for(i = 0; i < cont_impar; i++){
    printf("%d ", vetimpar[i]);
  }
  
  printf("\n\n");
  system("pause");
  return 0;
}


Link para compartilhar na Internet ou com seus amigos:

jQuery ::: Dicas & Truques ::: Atributos ou Propriedades HTML

Como remover uma classe (ou classes) de um elemento HTML usando a função removeClass() do jQuery

Quantidade de visualizações: 353 vezes
Muitas vezes precisamos remover uma ou mais classes de um elemento HTML. Para isso nós podemos usar o método removeClass() da biblioteca jQuery. Veja como isso pode ser feito no trecho de código abaixo:

<script type="text/javascript">
<!--
  function removerClass(){
    // remove a classe "destaque" do parágrafo
    // com o id "parag"
    $('#parag').removeClass("destaque");
  }
//-->
</script>

Se quisermos remover mais de uma classe ao mesmo tempo, basta separá-las por espaços no argumento para o método.

O retorno deste método é um objeto jQuery que pode ser usado para fins de encadeamento de chamadas de métodos.


Ruby ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como adicionar itens ao final de um array em Ruby usando o operador <<

Quantidade de visualizações: 6343 vezes
Nesta dica mostrarei como podemos usar o operador << da linguagem Ruby para adicionar novos elementos no final de um array.

Veja o código completo para o exemplo:

# vamos criar um array de nomes
nomes = []

# Lê entrada até que o valor -1 seja
# fornecido
loop do
  print "Digite um nome (-1 para sair): "
  nome = gets.chomp
  
  # vamos adicionar este nome no final do
  # array
  if nome != "-1"
    nomes << nome # adiciona o nome ao array
  end
  
  # vamos sair do laço se o valor for "-1"
  if nome == "-1"
    break
  end
end

# Exibe todos os valores do array
puts "\nOs nomes fornecidos foram:"
nomes.each do | nome |
  puts nome
end

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

Digite um nome (-1 para sair): FERNANDA
Digite um nome (-1 para sair): LAURA
Digite um nome (-1 para sair): ISADORA
Digite um nome (-1 para sair): CINTIA
Digite um nome (-1 para sair): -1

Os nomes fornecidos foram:
FERNANDA
LAURA
ISADORA
CINTIA


C# ::: Windows Forms ::: ListBox

Como adicionar itens a uma ListBox do C# Windows Forms via código usando o método Add()

Quantidade de visualizações: 25558 vezes
Nesta dica eu mostrarei como podemos adicionar novos itens a um controle ListBox do C# Windows Forms em tempo de execução, ou seja, quando a aplicação já estiver sendo executada. Para isso nós podemos usar o método Add() do objeto ObjectCollection da classe ListBox.

Veja um trecho de código no qual inserimos quatro nomes de cidades em uma ListBox. Os itens são adicionamos no evento Click de um botão:

private void button1_Click(object sender, EventArgs e) {
  listBox1.Items.Add("Goiânia");
  listBox1.Items.Add("São Paulo");
  listBox1.Items.Add("Rio de Janeiro");
  listBox1.Items.Add("Curitiba");
}



MySQL ::: Dicas & Truques ::: Joins (Junções)

Como usar joins no MySQL

Quantidade de visualizações: 10843 vezes
As junções (joins) são ferramentas presentes na maioria dos bancos de dados que suportam SQL e são usadas quando precisamos recuperar dados de uma ou mais tabelas com base em suas relações lógicas. Desta forma, é possível combinar os registros de tais tabelas de forma a construir um "super-registro", que nos permitirá exibir relatórios mais elaborados.

Para o bom entendimento de junções, vamos considerar duas tabelas: filmes e generos. Aqui nós temos uma cardinalidade de 1 x N. Um filme possui um gênero, enquanto um gênero pode abranger vários filmes. Vamos começar criando estas duas tabelas (comece com a tabela generos, já que esta não depende da tabela de filmes):

Comando DLL CREATE TABLE para a tabela generos:

CREATE TABLE generos(
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  nome VARCHAR(45) NOT NULL,
  PRIMARY KEY(id)
)
ENGINE = InnoDB;

Veja agora o comando SQL para a criação da tabela de filmes:

Comando DLL CREATE TABLE para a tabela filmes:

CREATE TABLE filmes(
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  titulo VARCHAR(45) NOT NULL,
  genero INTEGER UNSIGNED NOT NULL,
  PRIMARY KEY(id),
  CONSTRAINT fk_filmes_generos FOREIGN KEY fk_filmes_generos(id)
    REFERENCES generos(id) ON DELETE RESTRICT ON UPDATE RESTRICT
)
ENGINE = InnoDB;

Veja que a tabela filmes contém uma chave estrangeira referenciando a chave primária da tabela generos. Isso nos permite "atrelar" um filme ao seu gênero. Vá em frente e insira alguns dados em ambas as tabelas. Primeiro cadastre alguns gêneros e em seguida alguns filmes.

Vejamos agora a importância dos joins. Observe o resultado de um comando DML SELECT na tabela filmes:

SELECT * FROM filmes;

id  titulo	        genero
1   EFEITO BORBOLETA	6
2   O PENTELHO	        1
3   VIAGEM MALDITA	3

Nesta query o gênero é retornado como um valor inteiro, ou seja, o valor do campo id da tabela generos. Em muitos casos este não é o comportamento que queremos. Em vez do id do gênero nós gostaríamos de exibir seu nome. Isso pode ser conseguido da seguinte forma:

SELECT filmes.id, filmes.titulo, generos.nome FROM filmes,
generos WHERE filmes.genero = generos.id;

id  titulo	        genero
1   EFEITO BORBOLETA	FICÇÃO
2   O PENTELHO	        COMÉDIA
3   VIAGEM MALDITA	TERROR

Nesta query eu usei o nome completo da tabela antes do nome dos campos a serem retornados. Na prática, é comum darmos apelidos às tabelas. Veja:

SELECT f.id, f.titulo, g.nome FROM filmes f,
generos g WHERE f.genero = g.id;

Neste exemplo, não usamos as palavras-chaves INNER JOIN, LEFT JOIN, RIGHT JOIN, etc. A junção está "escondida" na cláusula SELECT. Esta técnica é conhecida como "junção implícita" ou "implicit join". Veja como o mesmo resultado pode ser obtido usando a junção INNER JOIN:

SELECT f.id, f.titulo, g.nome FROM filmes f INNER JOIN
generos g ON f.genero = g.id;

Veja minhas outras dicas sobre junções para aprender mais sobre INNER JOIN, LEFT JOIN, RIGHT JOIN, OUTER JOIN, FULL JOIN, etc.


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

Como usar a busca binária em Python - Pesquisa binária na linguagem Python

Quantidade de visualizações: 340 vezes
A busca binária, ou pesquisa binária, é um algoritmo eficiente para encontrar um item em uma lista (vetor ou array) ordenada. Sim, os itens devem, obrigatoriamente, estar ordenados.

O processo é bem simples. A busca binária começa a partir do meio da lista e compara o item nesta posição com o valor sendo pesquisado. Se o valor não for encontrado e for menor que o item no meio da lista, o algoritmo passa para a porção à esquerda da lista, eliminando, assim, metade dos elementos do vetor ou array (a porção maior que o valor pesquisado).

Se o valor não for encontrado e for maior que o item no meio da lista, então a busca reinicia a partir da metade da sub-lista à direita (os itens maiores que o valor pesquisado). Essa divisão continua até que o valor seja encontrado ou não seja mais possível dividir a lista pela metade.

Se um array ou vetor possuir 100 elementos e usarmos a busca binária nele, precisaremos efetuar no máximo 7 tentativas para encontrar o valor desejado. Se a lista possuir 4 bilhões de itens nós teremos que fazer no máximo 32 tentativas.

Isso acontece porque a pesquisa binária é executada em tempo logarítmico, ou seja, log2 n, onde n é a quantidade de itens no vetor. Dessa forma, se tivemos 1.000 itens em um array, log2 1000 = 10 tentativas. Lembre-se de que, na programação log e log2 retornam resultados diferentes: log(10) = 2.302585092994046 enquanto log2(10) = 3.321928094887362. Na análise da busca binária nós usamos sempre log2.

Vamos agora ver como podemos codificar a busca binária em Python. Veja o código a seguir:

# função principal do programa
def main():
  # vamos criar uma lista ordenada de inteiros
  valores = [3, 5, 7, 8, 9, 12, 43, 50, 52, 60]
  print("Os valores da lista são: {0}".format(valores))

  # vamos pedir o item a ser pesquisado
  numero = int(input("Informe o número a ser pesquisado: "))

  # agora vamos pesquisar o número no array usando a pesquisa
  # binária
  # a variável esquerda aponta para o primeiro elemento do vetor
  esquerda = 0
  # a variável direita aponta para o último elemento do vetor
  direita = len(valores) - 1
  # para indicar se o valor foi encontrado
  encontrado = False

  # enquanto houver mais de um elemento a ser comparado
  while esquerda <= direita:
    # obtemos o elemento na metade da lista
    meio = (esquerda + direita) // 2
    
    # fazemos a comparação
    if numero == valores[meio]:
      print("O número foi encontrado no índice {0}".format(
        meio))
      encontrado = True
      break # sai do laço  

    # o item atual é maior que o valor pesquisado?
    if valores[meio] > numero:
      direita = meio - 1
    # o item atual é menor que o valor pesquisado?
    else:
      esquerda = meio + 1

  # o valor foi encontrado?
  if not encontrado:
    print("O valor pesquisado não foi encontrado")  

if __name__== "__main__":
  main()

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

Os valores da lista são: [3, 5, 7, 8, 9, 12, 43, 50, 52, 60]
Informe o número a ser pesquisado: 9
O número foi encontrado no índice 4


Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

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á 9 usuários muito felizes estudando em nosso site.