Publicidade

Entre para seguir isso  
Seguidores 0
Thaigo

Converter ( c ) para visualg

Esto precisando entende a logica desse programa

pra mim entende melhor seria melhor entende-la primeiro em visualg

alguem sabe converte para visualg... essa pesquisa binaria?

#include <stdio.h>
#include <stdlib.h>
int buscabinaria(int a[], int n, int x)
{int inicio = 0, final = n-1, meio;
// procura enquanto a tabela tem elementos
while (inicio <= final)
{printf("\ninicio = %3d final = %3d", inicio, final);
meio = (inicio + final) / 2;
if (a[meio] == x) return meio;
if (a[meio] > x) final = meio -1; // busca na parte de cima
else inicio = meio + 1; // busca na parte de baixo
}
// foi até o final e não encontrou
return -1;
}
void geravet(int v[], int k)
// gera vetor em ordem crescente com k elementos usando rand()
{int i;
srand(9999);v[0] = rand()%100;
for (i = 1; i < k; i++) v[i] = v[i-1] + rand()%100;
}
void impvet(int v[], int k)
// imprime vetor com k elementos
{int i;
for (i = 0; i < k; i++) printf("%6d", v[i]);
}
int main()
{int vet[1000], n, kk, x;
// ler n
printf("entre com n:");
scanf("%d", &n);
// gera o vetor e imprime
geravet(vet, n);
impvet(vet, n);
// ler vários números até encontrar um negativo e procurar no vetor
printf("\nentre com o valor a ser procurado:");
scanf("%d", &x);
while (x >= 0)
{if ((kk = buscabinaria(vet, n, x)) >= 0)
printf("\n*** encontrado na posicao %3d", kk);
else printf("\n*** nao encontrado");
printf("\nentre com o valor a ser procurado:");
scanf("%d", &x);
}
}
Editado por quitZAUMMM
Inclusão da tag [code]
0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entender? o programa ta td comentado, oq você n esta entendendo??

Jogar um monte de linha de código sem identação é facil.

tente fazer algo poste seus avanços q te orientamos!

 

[]s

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

var

buscabinaria :inteiro

a: vetor [1..500] de inteiro

n:inteiro

x,comeco,final,meio:inteiro

inicio

comeco<-0

final<- n-1

ate(comeco <= final)

escreval("inicio:",comeco)

escreval("final:",final)

meio<- (comeco+final)/2

se (a[meio]=x) //return// meio

se (a[meio]>x) entao

final=meio-1 //busca para cima

senao

comeco=meio+1 //busca para baixo

//foi e o final e nao encontrou

return -1 ???

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem um monte de erro de semantica e sintaxe

esse algoritmo parece começar de tras para frente

 

 

var

buscabinaria :inteiro

numero: vetor [1..500] de inteiro

n:inteiro

x,comeco,final,meio:inteiro

i,k:inteiro

kk:inteiro

inicio

comeco<-0

final<- n-1

ate(comeco <= final)

escreval("inicio:",comeco)

escreval("final:",final)

meio<- (comeco+final)/2

se (a[meio]=x) //return// meio

se (a[meio]>x) entao

final<-meio-1 //busca para cima

senao

comeco<-meio+1 //busca para baixo

//foi e o final e nao encontrou

fimse

fimse

fimalgoritmo

inicio

i<-0

enquanto i < 500 faca

numero<-numero[i-1]+rand%100

fimenquanto

enquanto i < 500 faca

escreval(numero)

fimenquanto

escreval("entre com n:")

leia(n)

// gera o vetor e imprime

geravet(vet, n);

impvet(vet, n);

escreval("entre com valor a ser procurado:")

leia(x)

ate(x>=0)

se ((kk = buscabinaria(vetor, n, x)) >=0)) entao

escreval("numero encontrado na pociçao:",kk)

senao

escreval("nao encontrado")

escreval("entre com o valor a ser procurado:")

leia(x)

fimalgoritmo

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora
Entre para seguir isso  
Seguidores 0

  • Próximos Eventos