AGRADECIMENTO...

Pessoal, Gostaria de pedir desculpas aqueles que deixam perguntas/comentários/elogios/críticas e ainda não foram respondidos.

Aproveito a oportunidade para informar a todos que devido a correria do dia a dia não conclui o curso de BSI, por isso meus conhecimentos são limitados rsrsrs...

Ainda não retirei o blog do ar porque tem ajudado a diversos estudantes, principalmente os iniciantes.

As vezes, quando o trabalho me permite, ainda arrisco tentar resolver algumas questões rs... mas para não deixar esse blog parar no tempo, o ESTUDANTE que quiser enviar a resolução de alguma questão (código próprio) para o meu e-mail, terei o prazer de posta-la neste blog e será mantido a autoria.

Desde já agradeço a todos pelas visitas e desejo bons estudos.

Thiago Campos
(srthiago@hotmail.com)

quinta-feira, 10 de maio de 2012

Exercicio de Algoritmo: Faça um algoritmo que leia um vetor de 50 posições, ordene-o em ordem decrescente e depois permita ao usuário buscar um valor utilizando a busca binária:


Questão de Algoritmo – 13.05.2012                                                                                                     (Thiago Campos)
Algoritmo “Ordenar_e_Pesquisar”
//Declaração de variaveis
Inteiro baixo, meio, alto, vetor[50], procuro, tam=50, aux, achou, i; 

Inicio   
Escreva("informe o que procura:");
Leia(procuro);
alto = tam; //limite da sequencia
baixo = 0;
achou = 0; //convencionado zero para Falso
//entrada da sequencia
Para i=0 ate tam faça
Escreva("Informe o numero");
Leia(vetor[i]);
fimPara //fim da entrada da sequencia
       
//ordena a sequencia
Para  i=(tam-1) ate 0 faça
Para j=0 ate i faça
Se vetor[i]<vetor[j] faça
aux = vetor[i];
vetor[i] = vetor[j];
vetor[j] = aux;
fimSe
fimPara
fimPara //fim da ordenação

//mostra a sequencia ordenada decrescentemente
Para i=tam ate 0 faça
Escreva(vetor[i]);
fimPara //fim da mostra ordenada
       
//busca binaria
Enquanto baixo<=alto E achou == 0 faça
meio = (baixo + alto)/2;
Se procuro < vetor[meio] faça
alto = meio - 1;
Senão
Se procuro > vetor[meio] faça
                      baixo = meio + 1;
                      senão
achou = 1;
                      fimSe
fimSe
Se achou==1 faça
                      Escreva("valor encontrado");
Senão
Escreva("valor NAO encontrado");}
fimSe  //fim da busca primaria
fimEnquanto
fimAlgoritmo

ALGORITMO EM JAVA
//Autor: Thiago Campos
//Data: 14.05.2012

import java.util.Scanner;

public class OrdenarPesquisar {
    public static void main(String[] args){
        //Data: 14.05.2012
        Scanner entrada = new Scanner(System.in);
        int baixo, meio, alto;
        int vetor[]=new int[50];
        int procuro;
        int tam=4, aux, achou;
       
        System.out.print("informe o que procura:");
        procuro = entrada.nextInt();
       
        alto = tam; //limite da sequencia
        baixo = 0;
        achou = 0; //convencionado zero para Falso
       
        //entrada da sequencia
        for(int i=0; i<tam; i++){
            System.out.print("Informe o numero");
            vetor[i]=entrada.nextInt();
        }//fim da entrada da sequencia
       
        //ordena a sequencia
        for(int i=tam-1;i>0;i--){
            for (int j=0; j<i;j++){
                if(vetor[i]<vetor[j]){
                    aux = vetor[i];
                    vetor[i] = vetor[j];
                    vetor[j] = aux;
                }
            }
        }//fim da ordenaçao
       
        //mostra a sequencia ordenada
        for(int i=tam-1; i>=0;i--){
        System.out.println(vetor[i]);
        }//fim da mostra ordenada
        //busca binaria
        while (baixo<=alto && achou == 0){
            meio = (baixo + alto)/2;
            if (procuro < vetor[meio]){
                alto = meio - 1;
            }else if (procuro > vetor[meio]){
                baixo = meio + 1;
            }else{
                achou = 1;
            }
        }
        if(achou = =1){
            System.out.println("valor encontrado");
        }else{System.out.println("valor NAO encontrado");}
        //fim da busca primaria
   }
}

2 comentários:

  1. Olá Thiago tudo bem?

    preciso de um programa que leia 10 números inteiros fornecidos pelo usuário, e exiba quantos número impares foram informados.

    espero que possa mim ajudar...obrigado

    ResponderExcluir
    Respostas
    1. Caro amigo Geovano, desculpe-me pois ando meio sem tempo para responder todos os posts. Com relação a sua dúvida, o que posso te dizer a resolução do exercicio disponivel no link (http://thiagoccampos.blogspot.com.br/2012/03/verificar-se-o-numero-fornecido-pelo.html) vai te ajudar. Basta você alterar a condição, colocando uma variavel "conteImpar" para contar qtd vezes é verdadeira. Lembro-lhe que o "IF" vai ter que está dentro de um "FOR" para um loop de 10 ocorrências. Depois basta mandar mostrar a variável "conteImpar".

      Espero ter ajudado. Boa sorte!

      Excluir