A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo X Metodologia Top-down com Subprogramação.

Apresentações semelhantes


Apresentação em tema: "CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo X Metodologia Top-down com Subprogramação."— Transcrição da apresentação:

1 CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo X Metodologia Top-down com Subprogramação

2 Capítulo X – Metodologia Top- down com Subprogramação 10.1 – Considerações iniciais 10.2 – Contagem da ocorrência de palavras em um texto

3 10.1 – Considerações Iniciais Recordando: a idéia básica da metodologia top-down é a decomposição de uma tarefa num conjunto de tarefas menores interligadas Recordando: a idéia básica da metodologia top-down é a decomposição de uma tarefa num conjunto de tarefas menores interligadas Aquelas que ainda apresentarem certo grau de complexidade também podem ser decompostas da mesma maneira Aquelas que ainda apresentarem certo grau de complexidade também podem ser decompostas da mesma maneira Prossegue-se assim, até que se obtenha um conjunto de tarefas triviais interligadas Prossegue-se assim, até que se obtenha um conjunto de tarefas triviais interligadas

4 Nessa idéia, cada tarefa suficientemente complexa pode ser realizada por um subprograma específico Nessa idéia, cada tarefa suficientemente complexa pode ser realizada por um subprograma específico O comandos desse subprograma se constituem na decomposição da mesma em tarefas menores interligadas O comandos desse subprograma se constituem na decomposição da mesma em tarefas menores interligadas O tópico a seguir ilustra a utilização dessa metodologia auxiliada por subprogramação no desenvolvimento de um programa para: O tópico a seguir ilustra a utilização dessa metodologia auxiliada por subprogramação no desenvolvimento de um programa para:  Contagem da ocorrência de palavras em um texto

5 Capítulo X – Metodologia Top- down com Subprogramação 10.1 – Considerações iniciais 10.2 – Contagem da ocorrência de palavras em um texto

6 10.2 – Contagem da Ocorrência de Palavras em um Texto Desenvolvimento de um programa para: Ler o texto de um arquivo Ler o texto de um arquivo Contar o número de ocorrências de cada palavra desse texto Contar o número de ocorrências de cada palavra desse texto Gerar uma tabela com essas palavras em ordem alfabética ao lado de seus respectivos números de ocorrências Gerar uma tabela com essas palavras em ordem alfabética ao lado de seus respectivos números de ocorrências

7 Exemplo: seja o seguinte texto no arquivo ctpalavras.dat Exemplo: seja o seguinte texto no arquivo ctpalavras.dat voce pode enganar algumas pessoas em todo o tempo e todas as pessoas em algum tempo mas nao pode enganar todas as pessoas em todo o tempo Montar a seguinte tabela:

8 1ª Etapa: ContarPalavras { Abrir o arquivo ctpalavr.dat para leitura; Inicializar com zero palavras a tabela a ser montada; Ler a 1ª palavra do arquivo; Enquanto não se chegar ao final do arquivo { Procurar a palavra lida na tabela e sua posição; Se ela já estiver na tabela Acrescentar ‘1’ ao seu número de ocorrências; Senão Inserir a palavra na posição em que deveria estar; Ler a próxima palavra do arquivo; } Mostrar a tabela no vídeo; }

9 2ª Etapa: ContarPalavras { Abrir o arquivo ctpalavr.dat para leitura; Inicializar com zero palavras a tabela a ser montada; Ler a 1ª palavra do arquivo; Enquanto não se chegar ao final do arquivo { Procurar a palavra lida na tabela e sua posição; Se ela já estiver na tabela Acrescentar ‘1’ ao seu número de ocorrências; Senão Inserir a palavra na posição em que deveria estar; Ler a próxima palavra do arquivo; } Mostrar a tabela no vídeo; }

10 2ª Etapa: ContarPalavras { fl = open (“ctpalavras.dat”, “read”); Inicializar com zero palavras a tabela a ser montada; Ler a 1ª palavra do arquivo; Enquanto não se chegar ao final do arquivo { Procurar a palavra lida na tabela e sua posição; Se ela já estiver na tabela Acrescentar ‘1’ ao seu número de ocorrências; Senão Inserir a palavra na posição em que deveria estar; Ler a próxima palavra do arquivo; } Mostrar a tabela no vídeo; } file fl;

11 2ª Etapa: ContarPalavras { fl = open (“ctpalavras.dat”, “read”); Inicializar com zero palavras a tabela a ser montada; Ler a 1ª palavra do arquivo; Enquanto não se chegar ao final do arquivo { Procurar a palavra lida na tabela e sua posição; Se ela já estiver na tabela Acrescentar ‘1’ ao seu número de ocorrências; Senão Inserir a palavra na posição em que deveria estar; Ler a próxima palavra do arquivo; } Mostrar a tabela no vídeo; } file fl;

12 2ª Etapa: ContarPalavras { fl = open (“ctpalavras.dat”, “read”); ntab = 0; Ler a 1ª palavra do arquivo; Enquanto não se chegar ao final do arquivo { Procurar a palavra lida na tabela e sua posição; Se ela já estiver na tabela Acrescentar ‘1’ ao seu número de ocorrências; Senão Inserir a palavra na posição em que deveria estar; Ler a próxima palavra do arquivo; } Mostrar a tabela no vídeo; } file fl; int ntab; entr_tab tabela[100]; typedef char cadeia[31]; struct entr_tab { cadeia nome; int n_ocorr; } file fl;

13 2ª Etapa: ContarPalavras { fl = open (“ctpalavras.dat”, “read”); ntab = 0; Ler a 1ª palavra do arquivo; Enquanto não se chegar ao final do arquivo { Procurar a palavra lida na tabela e sua posição; Se ela já estiver na tabela Acrescentar ‘1’ ao seu número de ocorrências; Senão Inserir a palavra na posição em que deveria estar; Ler a próxima palavra do arquivo; } Mostrar a tabela no vídeo; } file fl; int ntab; entr_tab tabela[100]; typedef char cadeia[31]; struct entr_tab { cadeia nome; int n_ocorr; } Juntar as 3 linhas num só cabeçalho de while

14 2ª Etapa: ContarPalavras { fl = open (“ctpalavras.dat”, “read”); ntab = 0; while (readfile (fl, palavra) == 1) { Procurar a palavra lida na tabela e sua posição; Se ela já estiver na tabela Acrescentar ‘1’ ao seu número de ocorrências; Senão Inserir a palavra na posição em que deveria estar; } Mostrar a tabela no vídeo; } file fl; int ntab; entr_tab tabela[100]; typedef char cadeia[31]; struct entr_tab { cadeia nome; int n_ocorr; } Juntar as 3 linhas num só cabeçalho de while file fl; int ntab; entr_tab tabela[100]; cadeia palavra;

15 2ª Etapa: ContarPalavras { fl = open (“ctpalavras.dat”, “read”); ntab = 0; while (readfile (fl, palavra) == 1) { Procurar a palavra lida na tabela e sua posição; Se ela já estiver na tabela Acrescentar ‘1’ ao seu número de ocorrências; Senão Inserir a palavra na posição em que deveria estar; } Mostrar a tabela no vídeo; } typedef char cadeia[31]; struct entr_tab { cadeia nome; int n_ocorr; } file fl; int ntab; entr_tab tabela[100]; cadeia palavra;

16 2ª Etapa: ContarPalavras { fl = open (“ctpalavras.dat”, “read”); ntab = 0; while (readfile (fl, palavra) == 1) { posic = Posicao (palavra); Se ela já estiver na tabela Acrescentar ‘1’ ao seu número de ocorrências; Senão Inserir a palavra na posição em que deveria estar; } Mostrar a tabela no vídeo; } typedef char cadeia[31]; struct entr_tab { cadeia nome; int n_ocorr; } file fl; int ntab; entr_tab tabela[100]; cadeia palavra; file fl; int ntab, posic; entr_tab tabela[100]; cadeia palavra; Posicao retorna o índice onde palavra está ou deveria estar na tabela >0 se estiver e <0 se não

17 2ª Etapa: ContarPalavras { fl = open (“ctpalavras.dat”, “read”); ntab = 0; while (readfile (fl, palavra) == 1) { posic = Posicao (palavra); Se ela já estiver na tabela Acrescentar ‘1’ ao seu número de ocorrências; Senão Inserir a palavra na posição em que deveria estar; } Mostrar a tabela no vídeo; } typedef char cadeia[31]; struct entr_tab { cadeia nome; int n_ocorr; } file fl; int ntab, posic; entr_tab tabela[100]; cadeia palavra;

18 2ª Etapa: ContarPalavras { fl = open (“ctpalavras.dat”, “read”); ntab = 0; while (readfile (fl, palavra) == 1) { posic = Posicao (palavra); if (posic > 0) tabela[posic].n_ocorr++;else Inserir (palavra, -posic); } Mostrar a tabela no vídeo; } typedef char cadeia[31]; struct entr_tab { cadeia nome; int n_ocorr; } file fl; int ntab, posic; entr_tab tabela[100]; cadeia palavra; Inserir coloca a palavra na tabela mantendo a ordem alfabética

19 2ª Etapa: ContarPalavras { fl = open (“ctpalavras.dat”, “read”); ntab = 0; while (readfile (fl, palavra) == 1) { posic = Posicao (palavra); if (posic > 0) tabela[posic].n_ocorr++;else Inserir (palavra, -posic); } Mostrar a tabela no vídeo; } typedef char cadeia[31]; struct entr_tab { cadeia nome; int n_ocorr; } file fl; int ntab, posic; entr_tab tabela[100]; cadeia palavra;

20 2ª Etapa: ContarPalavras { fl = open (“ctpalavras.dat”, “read”); ntab = 0; while (readfile (fl, palavra) == 1) { posic = Posicao (palavra); if (posic > 0) tabela[posic].n_ocorr++;else Inserir (palavra, -posic); } ExibirTabela (); } typedef char cadeia[31]; struct entr_tab { cadeia nome; int n_ocorr; } file fl; int ntab, posic; entr_tab tabela[100]; cadeia palavra;

21 3ª Etapa: Desenvolvimento das funções Posicao, Inserir e ExibirTabela Função Posicao: utiliza procura binária pois a tabela está ordenada Função Posicao: utiliza procura binária pois a tabela está ordenada Função Inserir: desloca as palavras para baixo e insere a nova palavra em sua posição, mantendo a ordem alfabética Função Inserir: desloca as palavras para baixo e insere a nova palavra em sua posição, mantendo a ordem alfabética Função ExibirTabela: escreve no vídeo a tabela das palavras em formato de tabela Função ExibirTabela: escreve no vídeo a tabela das palavras em formato de tabela As variáveis fl, tabela e ntab serão globais As variáveis fl, tabela e ntab serão globais

22 3ª Etapa: int Posição (cadeia palavra) { int inf, sup, med, posic; logic achou; achou = FALSE; inf = 1; sup = ntab; while (! achou && sup >= inf) { med = (inf + sup) / 2; if (palavra == tabela[med].nome) achou = TRUE; else if (palavra < tabela[med].nome) sup = med – 1; else inf = med + 1; } if (achou) posic = med; else posic = - inf; return posic; } ExibirTabela () { int i; write (“Palavra”, “|”, “Num. de ocorr”); write (“\n”, “--------------------------------------------------”); for (i = 1; i <= ntab; i++) write (“\n”, tabela[i].nome, “|”, tabela[i].n_ocorr); } Inserir (cadeia palavra, int posic) { int i; ntab++; for (i = ntab; i > posic; i--) tabela[i] = tabela[i-1]; tabela[posic].nome = palavra; tabela[posic].n_ocorr = 1; } Ver o programa completo no livro-texto


Carregar ppt "CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo X Metodologia Top-down com Subprogramação."

Apresentações semelhantes


Anúncios Google