Skocz do zawartości
Gość

Program W C - Wyszukiwarka Wyrazów

Rekomendowane odpowiedzi

ok..nie wiem czy zostane zjechany czy nie ale trudno..sprawa jest dość trudna..otóż na Algorytmy i struktury danych mamy przygotowac program w stylu CTRL-F..po prostu wyszukiwarka wyrazów..nie byłoby to może trudne gdyby zostało NALEŻYCIE wytłumaczone..a koleś który to prowadzi tak namącił, 5 razy poprawiał na tablicy (aha taka informacja - przedmiot ten "odbywa" sie na tablicy i jest to w stylu Maszyny Turinga - czyli "blokowo")...i teraz kazał nam przygotować algorytm i napisać program w C (nieważne że C prawie nie mieliśmy)...troszke w C umiem ale nie aż tak..

 

czy są jakieś stronki z których można by takie coś ściągnać...wiem że może nieładnie tak itp. no ale co zrobić?? coś trzeba mieć a sam NA PEWNO nie wykombinuje...a może ktoś już pisał i by tu wkleił??

 

thx

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Gość lukk

a w czym masz te wyrazy wyszukiwac ? ;)

1319614[/snapback]

hehe w sumie dobre pytanie..chyba z wczesniej wprowadzonego jakiegos tekstu...kurde nie wiem...serio koles jest juz starszawy i tak zakrecony ze ja nie wiem jak sobie poradze...no ale przyjmijmy ze we wczesniej wprowadzonym przez uzytkownika tekscie..

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

najproscie to sprawdzac tekst po jednej lini, po znaku, po spacji (ew od poczatku lini) zapiujesz do jakiegos bufora poszczegolne literki, jak napotkasz spacje to porownujesz zawartosc bufora z zadanym kryterium (scrcmp() np). jak sie zgadza to cos robisz z ta informacja i zerujesz bufor, jak sie nie zgadza to olewasz, zerujesz bufor i jedziesz do nastepnej spacji

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

najproscie to sprawdzac tekst po jednej lini, po znaku, po spacji (ew od poczatku lini) zapiujesz do jakiegos bufora poszczegolne literki, jak napotkasz spacje to porownujesz zawartosc bufora z zadanym kryterium (scrcmp() np). jak sie zgadza to cos robisz z ta informacja i zerujesz bufor, jak sie nie zgadza to olewasz, zerujesz bufor i jedziesz do nastepnej spacji

1319870[/snapback]

heheheh..wiesz to ja tez tak myslalem..tylko teraz to zrobic w C??? jak juz pisalem nie mam az takich zdolnosci w C..mialem C bardoz malutko (w sumie podstawy) , a tu nagle taki wyjechany program...NA LOGIKE jest on latwy (tak jak powiedziales)..tylko jak go stworzyc??

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

heheheh..wiesz to ja tez tak myslalem..tylko teraz to zrobic w C??? jak juz pisalem nie mam az takich zdolnosci w C..mialem C bardoz malutko (w sumie podstawy) , a tu nagle taki wyjechany program...NA LOGIKE jest on latwy (tak jak powiedziales)..tylko jak go stworzyc??

1319886[/snapback]

zrobmy tak, ty sprobujesz go napisac (postarasz sie) jak utkniesz w jakims trudniejszym momencie to pomozemy - tak nauczysz sie wiecej - umowa?

 

co do strstr - fakt - nie moglem sobie przypomniec wiec podalem jedna rzykladowa mozliwosc ;)

Edytowane przez ayem

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie sadze aby prowadzacemu chodzilo o wyszukiwanie za pomoca strstr.. tez mialem AiSD i byl omawiany na jednym wykladzie jakis tam algorytm przeszukiwania tekstu, ale niestety nie pamietam ani nazwy ani jak on dzialal.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

mozna napisac wlasna procedure sprawdzajaca, ale to bedzie sie roznilo tylko tym ze zamiast feragmentu kodu strstr(bla bla), bedzie kawlek jadacy znak po znaku wzor i bufor - filozofia ta sama, wiec nie wiem czy bylby sens, ale kto wieco prowadzacy myslal

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie sadze aby prowadzacemu chodzilo o wyszukiwanie za pomoca strstr.. tez mialem AiSD i byl omawiany na jednym wykladzie jakis tam algorytm przeszukiwania tekstu, ale niestety nie pamietam ani nazwy ani jak on dzialal.

1320524[/snapback]

jest ich troche, na przyklad Naive String Search, czy tez Turing Machine String Search, zalezy jaka sie chce osiagnac zlozonosc czasowa algorytmu, sama implementacja w C jezeli zna sie algorytm jest prosta, chyba ze wykladowca wymaga jakiegos wyszukanego interfejsu

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

zrobmy tak, ty sprobujesz go napisac (postarasz sie) jak utkniesz w jakims trudniejszym momencie to pomozemy - tak nauczysz sie wiecej - umowa?

 

co do strstr - fakt - nie moglem sobie przypomniec wiec podalem jedna rzykladowa mozliwosc ;)

1320447[/snapback]

no postaram sie :huh: ale to dopiero po weekendzie bo jutro wyjezdzam..wiec odezwe sie po weekendzie

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zrobiłem raz takiego gniota co wyszukuje podany text z textu wpisanego wcześniej przez urzytownika, wklejam jego kod może ci się przyda. Ale zaznaczam - jest to gniot, ale działa.

Kompiluje sie w Borland 3.1/4.x/5.x , lub tam gdzie jest pełna obsługa biblioteki. conio.h

 

#include <iostream>#include <conio.h>int szukanie(char * tekst,  char *zdanie);void zaznaczanie_wyrazu(unsigned int ile , char *tekst, int dlug);//------------------------------------------------------------------------------int main(){  cout << "podaj tekst do przeszukania" << endl;  char tekst[100] = {0};  cin.getline(tekst , 100);                                   cout << "podaj wyraz do wyszukania czy taki wyraz jest w tekscie" << endl;  char wyraz[100] = {0};  cin.getline(wyraz ,100);  int miejsce=szukanie(tekst,wyraz);    if(miejsce)  {     cout << "text istnieje i zaczyna sie od indexu "<< miejsce << endl;     zaznaczanie_wyrazu(miejsce , tekst , strlen(wyraz));  }  else cout << "taki text nie istnieje";  getch();  return 0;}//------------------------------------------------------------------------------int szukanie(char* tekst,char* wyraz){   unsigned int zmienna=0, j=0, miejsce=0;  for (unsigned int i = 0; i < strlen(tekst);i++)  {      if(tekst[i] == wyraz[j])      {         miejsce++;          zmienna++;         j++;                 if (zmienna >= strlen(wyraz))  return miejsce-strlen(wyraz);      }      else      {         miejsce++;          zmienna = 0;         j = 0;      }  }   return 0;}//------------------------------------------------------------------------------void zaznaczanie_wyrazu(unsigned int ile  , char*tekst, int dlug){   for(unsigned int i = 0; i < strlen(tekst);i++)   {       if (i == ile)       {           textcolor(BLACK);           textbackground(WHITE);       }       else if (i > ile+dlug-1)       {           textcolor(LIGHTGRAY);           textbackground(BLACK);       }       cprintf("%c" , tekst[i]);   }}
Edytowane przez razor1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...