Análise de texto. A disponibilidade de computadores com capacidades de manipulação de strings resultou em algumas técnicas interessantes de análise de escritas de grandes autores. A dúvida se William Shakespeare realmente existiu tem recebido muita atenção. Alguns estudiosos pensam ter encontrado evidências substanciais que provam que Christopher Marlowe foi quem realmente escreveu as obras-primas atribuídas a Shakespeare. Os pesquisadores usaram computadores para descobrir semelhanças nos escritos desses dois autores. Esse exercício examina três métodos de análisede textos com um computador.

a) Escreva um programa que leia várias linhas de texto e imprima uma tabela que indique o número de ocorrências de cada letra do alfabeto no texto. Por exemplo, a frase Ser ou não ser; eis a questão: contém três ‘a’, nenhum ‘b’, nenhum ‘c’ e assim por diante.

b) Escreva um programa que leia várias linhas de texto e imprima uma tabela que indique o número de palavras com uma letra, palavras com duas letras, palavras com três letras, e assim por diante, que aparecem no texto. Por exemplo, a frase

c) Escreva um programa que leia várias linhas de texto e imprima uma tabela que indique o número de ocorrências de cada palavra diferente no texto. A primeira versão de seu programa deverá incluir as palavras na tabela na mesma ordem em que elas aparecerem no texto. Uma saída interessante (e útil) deverá então ser experimentada, uma em que as palavras são ordenadas alfabeticamente. Por exemplo, as linhas Ser ou não ser: eis a questão: Será mais nobre em nosso espírito sofrer. contêm as palavras ‘ser’ duas vezes, a palavra ‘ou’ uma vez e assim por diante.

Passo 1

Beleza pessoal?! Espero que sim, hoje iremos realizar uma questão bem grande e bem desafiadora de C, então abram seus compiladores para que possam acompanhar corretamente e não perderem nada!!!!

  1. Vamos escrever um programa que realiza o seguinte:
  2. Solicita que o usuário insira várias linhas de texto.

    Determine e exiba o total de ocorrências de cada letra do alfabeto nas linhas de texto usando a função strchr. (As letras maiúsculas e minúsculas devem ser contadas juntas).

    Para escrever este programa, primeiro declararemos os seguintes arquivos de cabeçalho

    #include // Para funções de entrada e saída

    #include // Para as funções de string

    Em seguida, vamos definir a função principal

    int main(){

    }

    Dentro desta função, vamos definir o requisito do programa.

    Agora, declare as seguintes variáveis

    Em seguida, solicite ao usuário que insira várias linhas de texto e leia cada linha de texto usando a função fgets.

    Em seguida, conte e exiba a ocorrência de cada caractere no texto. Para isso, faremos o seguinte

    Passo 2

  3. Vamos escrever um programa que faça o seguinte:
  4. Solicita que o usuário insira várias linhas de texto.

    Determine o comprimento das palavras no texto e exibe uma tabela que indica o número de palavras de uma letra, palavras de duas letras, palavras de três letras e assim por diante, que aparecem no texto.

    Para escrever este programa, primeiro declararemos os seguintes arquivos de cabeçalho

    #include // Para funções de entrada e saída

    #include // Para as funções de string

    Em seguida, vamos definir a função principal

    int main(){

    }

    Dentro desta função, vamos definir o requisito do programa.

    Em seguida, determinaremos o comprimento de cada palavra no texto e contaremos suas ocorrências totais no texto. Para isso, faremos o seguinte

    Por fim, exibiremos os comprimentos das palavras e suas ocorrências correspondentes no texto percorrendo o array e indicaremos que o programa terminou com sucesso colocando o valor de retorno da função main.

    Passo 3

  5. Vamos escrever um programa que realiza o seguinte:

Solicita que o usuário insira várias linhas de texto.

Determina cada palavra diferente no texto e exibe uma tabela que indica o número de ocorrências de cada palavra diferente.

Vamos criar duas versões deste programa. A primeira versão exibe as palavras não classificadas e suas ocorrências, enquanto a segunda versão exibe as palavras classificadas e suas ocorrências no texto.

Para escrever a primeira versão deste programa, primeiro declararemos os seguintes arquivos de cabeçalho

#include // Para funções de entrada e saída

#include // Para as funções de string

Em seguida, vamos definir a função principal

int main(){

}

Dentro desta função, vamos definir o requisito do programa.

Agora, declare as seguintes variáveis.

char text[5][100]; // Para armazenar as linhas no texto

char words[50][15]; // Para armazenar cada palavra diferente no texto

int count[50]={0}; // Para armazenar as ocorrências de cada palavra diferente

char *wordPtr; // Para apontar para uma palavra no texto

Em seguida, solicite ao usuário que insira várias linhas de texto e leia cada linha de texto usando a função fgets.

Passo 2

Em seguida, determinaremos cada palavra diferente no texto e suas ocorrências totais. Para isso, faremos o seguinte

Por fim, exibiremos cada palavra diferente no texto e suas ocorrências correspondentes percorrendo a matriz de palavras e contagem. Em seguida, indicaremos que o programa foi finalizado com sucesso, colocando o valor de retorno da função principal.

Para a versão ordenada, vamos simplesmente criar um processo para ordenar o array de palavras e inserir este processo antes de exibir o resultado. Ao ordenar o array de palavras, devemos considerar também que suas ocorrências correspondentes devem ser armazenadas em índices paralelos. Para isso, faremos o seguinte

Resposta

Ver desenvolvimento!!!