Home › Fóruns › Programação Básica › M04A05 – Busca Sequencial em Vetor – pq a expressão (não achei)
- Este tópico contém 3 respostas, 4 vozes e foi atualizado pela última vez 1 ano, 6 meses atrás por Tutora Jessica.
-
AutorPosts
-
-
22 de janeiro de 2022 às 23:01 #84843MARCELINO SILVA DA CUNHAParticipante
Por que se digitou a expressão na linha 20 ” se (nao achei) ” para poder informar que não achou a chave no vetor? Não consegui entender o motivo de ter invertido a variável “lógico achei” de falso para verdadeiro.
-
23 de janeiro de 2022 às 14:45 #84856IcaroFilhoModerador
Bom dia Marcelino,
A condição
se
só executa o primeiro bloco quase a condição passada é verdadeira. Tendo isso em mente, ocorrerá 2 coisas.Ele declara a varável
achei
comofalso
no inicio do código, logo ela so tem seu valor alterado quando se encontra o valor da chave dentro do vetor.
Sendo assim,
Caso não exista chave:
O valor será mantido e como o valor de achei é falso, esta condição não seria entendida e o bloco não executado… então é preciso inverter o valor negando ele. ( sempre que negamos um valor, invertemos ele ).O mesmo acontece se o valor for encontrado.
Ele esta recebendo verdadeiro e será exibido. Para não ser exibido ele inverte o sinal ( ao se negar um booleano verdadeiro, obtemos um valor falso ).Existem outras maneiras de se fazer. O professor apenas trouxe uma técnica de negação que é muito praticada no ambiente real de programação.
Espero ter ajudado.
Caso continue com a duvida, basta responder a baixo que tentarei explicar de uma outra maneira ou outra pessoa tbm pode responder…
Bons estudos ! -
2 de maio de 2023 às 19:55 #115029TATIANE ROCHAParticipante
Olá, tive uma dúvida no exemplo abaixo. No caso, na linha onde se encontra o se(não achei) não entendi muito bem, pois como o valor logico indicado na variavel é falso. Colocando o “não” antes ele não ficaria verdadeiro? Poderia me ajudar com essa dúvida? Acho que entendi alguma coisa errada.
programa
{
inclua biblioteca Util–> ufuncao inicio()
{
inteiro num [8]= {2, 5, 7, 3, 2, 9, 4, 2}
inteiro chave
logico achei= falsoescreva(“Qual é a chave? “)
leia(chave)para(inteiro pos=0; pos<u.numero_elementos(num); pos++) {
se (num[pos]== chave) {
escreva(“\nAchei a chave na posição “, pos)
achei= verdadeiro
}
}
se (nao achei) {
escreva(“infelizmente a chave “, chave, ” não se encontra no vetor\n”)
}
}
} -
3 de maio de 2023 às 10:19 #115071Tutora JessicaModerador
Ola Tatiane, trouxe a sua dúvida para uma igual ja existente no fórum.
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.