Jump to content
Fórum Script Brasil
  • 0

Ajuda em indice Remissivo


KeoughxD

Question

Seguinte To com um trabalho na facu pra fazer porem quebrei a mao to programando com 1 mao so e preciso fazer um programa q vale 5 pontos eu fazendo ele fecho 2 materias , bom o programa e o seguinte :

E um indice Remissivo .. e oque é isso ??

>>

Escreva um programa em C, para construir um índice remissivo a partir de um arquivo lido em disco. Este arquivo conterá apenas letras e espaços em branco. As palavras do índice remissivo deverão ser armazenadas em um vetor de palavras em ordem alfabética crescente. Cada posição do vetor de palavras está dividida em dois campos:

a) O primeiro, denominado palavra, deverá guardar a palavra;

B) O segundo campo, denominado início, deverá guardar a posição onde está armazenado o primeiro elemento da lista de linhas.

Tal lista contém as linhas nas quais uma palavra do índice remissivo aparece no texto lido. Uma vez construído o índice, escreva funções para realizar as seguintes operações e, apresentar resultados na tela:

i) Mostrar todo o conteúdo do índice;

ii) Mostrar todas as linhas nas quais aparece uma palavra informada pelo usuário;

iii) Mostrar a palavra mais frequente no texto;

iv) Mostrar a linha na qual uma palavra informada pelo usuário, aparece com mais frequência.

Para a implementação, considere as estruturas:

# define MAX 100

typedefstructelem {

charpalavra[20];

intinicio;

} t_elem;

Typedefstruct no {

intlinha;

intprox;

} t_no;

t_elem palavras[MAX];

t_no lista[MAX];

========

>>

Bom eu estou fazendo mas esta dando alguns erros e eu to meio confuso oque eu fiz de errado estou no 1º ano e preciso de dicas de pessoas + experientes na área ..

aqui ta meu código:

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <ctype.h>

# define MAX 100

typedef struct elem{

char palavra[20];

int inicio;

}t_elem;

typedef struct no{

int linha;

int prox;

}t_no;

t_elem palavras[MAX];

t_no lista[MAX];

FILE *fp;

void conta_palavras()

{

char ch,forma_palavra[20];

int i=0,lin=1,k=0,cont=0,x,existe=0,j=0;

if ((fp=fopen("tekxto.txt","r"))==NULL)

printf("Erro ao abrir o arquivo!!");

else

{

while ((ch=getc(fp))!=EOF)

{

if (ch!=' ')

{

if(isalpha(ch))

forma_palavra[i++]=ch;

}

cont++;

for(x=0; x<=cont;x++)

{

if (strcmp(forma_palavra,palavras[x].palavra) == 0)

{

existe=1;

break;

}

}

if (ch!='\n' && existe==0)

{

forma_palavra='';

lista[j++].linha = lin;

palavras[k].inicio++-1;

strcpy(palavras[k++].palavra,forma_palavra);

}

else

lin++;

} }}

main()

{

void conta_palavra();

getch();

}

:ninja: :ninja: :ninja:

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...