Respostas no Fórum
-
AutorPosts
-
1 de fevereiro de 2023 às 08:52 em resposta a: M04A18 – Busca Binária em Vetores – Módulo 04: Variáveis compostas #109672Carol ProtásioParticipante
Obrigada Jessica por essa correção na identação e post na area correta, realmente procurei e não achei.. facilitaria um campo de busca no forum 🙂
De qualquer forma, vc entendeu minha dúvida? ainda não consegui resolver… agradeço sua atenção31 de janeiro de 2023 às 15:55 em resposta a: M04A18 – Busca Binária em Vetores – Módulo 04: Variáveis compostas #109640Carol ProtásioParticipanteOlá!!
Na explicação da aula sobre busca binária(M04A18) prof. Gustavo demostrou como fazer essa busca, porém se procurarmos pela o valor da chave que esteja na posição: ini ou fim, dá erro(chave não encontra-se no vetor). Consegui resolver colocando:
se(vet[meio] == chave ou chave == vet[ini] ou chave == vet[fim])
porém, para mostrar o resultado da busca, estou tendo dificuldade de mostrar a posição da chave, já que não podemos escrever a variavel “meio”, já que por ex. a chave estava na posição ini(ou fim):
se(encontrado){
escreva(“\nO valor “+chave+” foi encontrado na posição “+meio+” do vetor”)
}senao{
escreva(“\nInfelizmente o valor “+chave+” não se encontra no vetor”)minha dúvida é: no escreva(no se(encontrado)) como coloco a posição, já que pode ser: meio, fim, ou ini?
segue abaixo todo o cod:
Obrigada!!!inteiro vet[10]
inteiro p=0, aux, i
logico encontradoenquanto(p < u.numero_elementos(vet)){
vet[p] = sorteia(1,15)
encontrado = falso
para(aux=0; aux < p;aux++){
se(vet[aux] == vet[p]){
encontrado = verdadeiro
pare
}
}
se(nao encontrado){
p++
}
}inteiro auxiliar = 0, pr, sec
para(pr=0; pr < u.numero_elementos(vet);pr++){
para(sec=pr+1;sec<u.numero_elementos(vet);sec++){
se(vet[pr]>vet[sec]){
auxiliar=vet[pr]
vet[pr]=vet[sec]
vet[sec]=auxiliar}
}
}para(i=0;i<u.numero_elementos(vet);i++){
escreva(vet[i]+” “)
u.aguarde(100)
}//busca binaria
inteiro chave
inteiro ini=0, fim = u.numero_elementos(vet)-1, meio=0
encontrado = falso
escreva(“\nQuer achar que valor? “)
leia(chave)enquanto(ini < fim){
meio = (ini+fim)/2
se(vet[meio] == chave ou chave == vet[ini] ou chave == vet[fim]){
encontrado = verdadeiro
pare
}senao{
se(chave > vet[meio]){
ini = meio + 1
}senao{
fim = meio – 1
}}
}
se(encontrado){
escreva(“\nO valor “+chave+” foi encontrado na posição “+meio+” do vetor”)
}senao{
escreva(“\nInfelizmente o valor “+chave+” não se encontra no vetor”)
}Carol ProtásioParticipanteOlá!! Cheguei nesse code para a pirâmide “normal” que o prof Guanabara solicitou:
inclua biblioteca Util –> u
inteiro and, cEst, cEsp, cAnd, tot
escreva(“Quantos andares seu triangulo vai ter? “)
leia(and)inteiro qtEst = 1
inteiro qtEsp = and – 1para(cAnd = 1; cAnd <= and; cAnd++){
para(cEsp = 1; cEsp <= qtEsp; cEsp++){
escreva(” “)
}
qtEsp–
para(cEst = 1; cEst <= qtEst; cEst++){
escreva(“*”)
u.aguarde(100)
}
qtEst+=2
escreva(“\n”)
}Carol ProtásioParticipanteNossa Jessica, valeu pela correção 🙂 muito obrigada!!
Carol ProtásioParticipanteBom dia!!
Estou no ex. 42, fui codando e verificando os resultados, mas estou sem saber onde estou errando ao calcular o numero de mulheres que ganham mais de mil, meu resultado está bem parecido com o do prof. mas o meu resultado está puxando o numero de homens e mulheres que ganham mais de mil. poderia verificar meu cod? muito obrigadaprograma
{
inclua biblioteca Matematica –> m
inclua biblioteca Tipos –> t
inclua biblioteca Texto –> txt
funcao inicio()
{
inteiro c = 0, totM = 0, totF = 0, totMil = 0
cadeia nome
caracter sexo, res
real sal, medSalM = 0.0, maiorSalM = 0.0, salM = 0.0enquanto(verdadeiro){
escreva(“——————————“)
escreva(“\n Cadastro de Funcionários\n”)
escreva(“——————————\n”)
escreva(“Nome: “)
leia(nome)
escreva(“Sexo [F/M]: “)
leia(sexo)
escreva(“Salário: R$”)
leia(sal)c++
se(sexo == ‘M’ ou sexo == ‘m’){
totM++
salM += sal
se(totM == 1){
maiorSalM = sal
}senao{
se(sal > maiorSalM){
maiorSalM = sal
}
}
}senao se(sexo == ‘F’ ou sexo == ‘f’){
totF++
}se (sal > 1000){
totMil++
}escreva(“Quer continuar? [S/N] “)
leia(res)
se(res == ‘N’ou res == ‘n’){
pare
}}
medSalM = t.inteiro_para_real(salM)/totM
escreva(“====== RESULTADOS ======\n”)
escreva(“Total de pessoas cadastradas, “, c)
escreva(“\nTotal de mulheres: “, totF)
escreva(“\nTotal de homens: “, totM)
escreva(“\nMédia salarial dos homens: “, m.arredondar(medSalM, 2))
escreva(“\nTemos ” ,totMil, ” mulheres que ganham mais de Mil Reais: “)
escreva(“\nMaior salário entre os homens: “, maiorSalM)}
} -
AutorPosts