Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmo PalavrasIguais_1 /* Declaração de variáveis otimida */ Início Leia(fr1, fr2) i ç 0 Enquanto i < tamanho (fr1) faca jç0 Enquanto ( fr1 [ i ] != ‘ ’ ) E ( i < tamanho (fr1) ) faca palavra[j] ç fr1[ i ]; i ++ j++ fim_enquanto palavra[j]ç‘\0’ kç0 achouç0 enquanto (k < tamanho(fr2) E (achou=0)) faca lç0 enquanto ( fr2 [ k ] != ‘ ’ ) E ( k < tamanho(fr2) ) faca p_aux[l] çfr2 [ k ] k++ l++ fim_enquanto p_aux [l] ç‘\0’ /* Fazer o teste se palavra = p_aux, mostrar palavra, e achou recebe 1. Veja estre trecho na próxima página. */ k++ fim_enquanto i++ fim_enquanto Fim. SOLUÇÃO EX. 3 SLIDES SOBRE STRINGS (varrendo os dois vetores) /* Encontra uma palavra em fr1 e armazena na string “palavra” */ /* Encontra uma palavra em fr2 e armazena na string “p_aux” */ Se (j=l) então m ç 0 Enquanto (palavra [m] = p_aux[m]) E (m < j) faca m++ Fim_enquanto Se (m=j) então achouç1 Escreva (palavra) Fim_se Fim_se SOLUÇÃO EX. 3 SLIDES SOBRE STRINGS (varrendo os dois vetores) /* testa se palavra é igual a p_aux */ Algoritmo PalavrasIguais_2 /* Declaração de variáveis omitida */ Início Leia(fr1, fr2) x ç 0 i ç 0 Enquanto ( fr2 [ i ] != NULL ) faça conta_pal ç 0 Enquanto ( fr2 [ i ] ! = ‘ ’) E ( fr2 [ i ] != NULL ) faça i++ conta_pal++ Fim_Enquanto TAM_fr2 [ x ]çconta_pal x++ /* x vai guardar o número de palavras na string fr2 */ i++ Fim_Enquanto /* o algoritmo continua no próximo slide */ SOLUÇÃO OTIMIZADA DO EX. 3 DOS SLIDES SOBRE STRINGS UTILIZANDO VETOR AUXILIAR PARA GUARDAR O TAMANHO DAS PALAVRAS DE fr2 /* Conta o tamanho de cada palavra em fr2 e armazena no vetor de inteiros TAM_fr2*/ i ç 0 Enquanto i < tamanho (fr1) faca jç0 Enquanto ( fr1 [ i ] != ‘ ’ ) E ( i < tamanho (fr1) ) faca palavra[j] ç fr1[ i ]; i ++ j++ fim_enquanto palavra[j]ç‘\0’ tam_palavraç strlen(palavra) kç0 achouç0 enquanto ((k < x ) E (achou==0)) faca Se (TAM_fr2[ k ] == tam_palavra) então indice ç 0 Para n ç 0 até k-1 faça indice ç indice + TAM_fr2[ n ] + 1 Fim_Para m ç 0 Enquanto ((palavra [m] = fr2[indice]) E (m < tam_palavra )) faca m++ indice++ Fim_enquanto Se (m=tam_palavra) então achouç1 Escreva (palavra) Fim_se Fim_Se k++ fim_enquanto i++ fim_enquanto Fim. /* Encontra uma palavra em fr1 e armazena na string “palavra” */ /* encontra o índice em fr2 onde começa a palavra a ser testada */ /* testa a string “palavra” com a palavra de fr2 que tem o mesmo tamanho*/
Compartilhar