Rorschach Opublikowano 9 Stycznia 2006 Zgłoś Opublikowano 9 Stycznia 2006 Mam do napisania programik w ansi c (jakby co moze byc tez c++) otoz ma on wyszukiwac w zadanym tekscie slowo Ala i zamieniac go np na Ola. Nie wiem w jaki sposob mozna przekazac tekst do sprawdzenia i w jaki sposob ma on po kolei przechodzic do kolejnego wyrazu. Na razie wiem, ze beda to 2 petle, pierwsza poruszania po tekscie, a druga wewnetrzna to sprawdzanie czy wyraz=Ala jesli tak to zamienia na Ola. Bardzo prosze o jakas pomoc. Pozdrawiam Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Ragnor Opublikowano 9 Stycznia 2006 Zgłoś Opublikowano 9 Stycznia 2006 Jeśli chodzi o algorytm to wygląda to tak tworzysz sobie bufor 3 znakowy i do niego wrzucasz kolejne znaki i sprawdzasz czy odpowiadaja one temu co masz czyli 'ala', jesli nie to wyrzucasz pierwszy na wyjście przesuwasz reszte i na końcu wrzucasz nowy znak z wejścia, jesli odpowiada temu co szukasz to na wyjsciu wrzucasz to co Cie interesuje i czyscisz bufor. To była naiwna i najprostrza i najsłabsza impelmentacja, jeśli chcesz coś lepsze to wypadało by zbudowąc automat skończony o 4 stanach (q0 - nic nie pasuje, q1 - pierwsza listera pasuje, q2- dwie pierwsze litery pasują, q3- cały trzyliterowy znak się zgadza) nastepnie budujesz odpowiednią funkcję przejścia i implementujesz i po sprawie, wyjście pewnie trzeba będzie buforować też 3 znakowym buforem ale będzie mógł się on znajdowac w 3 znakowej tablicy cyklicznej. Jesli nie wiesz o czym pisze i zrób to naiwnie. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Artur.M Opublikowano 9 Stycznia 2006 Zgłoś Opublikowano 9 Stycznia 2006 Taką prostą metodą a CHYBA trochę szybszą od naiwnej było by jak byś szukaszw tekscie litery A jeżeli znalazła się jakaś to wtedy sprawdzasz dwie kolejne czy równają sie L i A. I ewentualnie zamieniasz. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Nargil Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 (edytowane) powiedz tylko czy mozliwy jest przypadek ze slowo "ala" zostanie zamienione na "konstantynopolitanczykiewiczówna" ( inna ilosc znakow ). Moze jak mi sie bedzie chcialo to napisze ci jutro ( tzn dzisiaj ) :) i pytanie nr2: czy przy regule "ala"->"ola" ma zamienic np "mala" na "mola" ? Edytowane 10 Stycznia 2006 przez Nargil Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Rorschach Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 (edytowane) sadze ze na poczatku program bedzie sie pytal jaki wyraz ma byc podmieniany i na jaki. Inna ilosc znakow jest dozwolona Edytowane 10 Stycznia 2006 przez Rorschach Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Nargil Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 opowiedz na pytanie nr2... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Ragnor Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 opowiedz na pytanie nr2... Problemem jest coś takiego: przypuścmy że zamieniamy "ala"->"ola", i mamy wyraz "alala", i na co to ma zamienić? Na "olala"? Czy na "olola"? To i to będzie poprawne kwestia specyfikacji problemu. Wogóle maskaryczne będzie gdy zamienimy "dom"->"domek", wtedy przy wyborze drugiego sposobu zamiany nastąpi zapętlenie, dom->domek->domekek->domekekek-> ...... Najpierw sprecyzujcie dokładnie problem a dopiero później do pisania można się zabrać. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Nargil Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 (edytowane) kod w c++ #include <iostream>#include <sstream>using namespace std;typedef struct lista_node{ string szukaj; string zastap; lista_node* next;};typedef class lista_header{ public: int count; lista_node* tmp; lista_node* first; void pobierz_liste(); lista_header(); ~lista_header(); string zamien(string str); private: void del_all(lista_node* n); void dodaj(string str1, string str2);};string lista_header::zamien(string str){ tmp=first; while(tmp!=NULL) { if(tmp->szukaj==str) return tmp->zastap; tmp=tmp->next; } return str;} void lista_header::dodaj(string str1, string str2){ if(count>0) { while(tmp->next!=NULL) tmp=tmp->next; tmp->next = new lista_node; tmp=tmp->next; } tmp->next=NULL; tmp->szukaj=str1; tmp->zastap=str2; count++;}lista_header::lista_header(){ count=0; first = new lista_node; tmp=first;}lista_header::~lista_header(){ del_all(first);}void lista_header::del_all(lista_node* n){ if(n->next!=NULL) del_all(n->next); delete n;}void lista_header::pobierz_liste(){ char szuk[255],zam[255]; while(true) { cout << "Szukaj (enter, aby przerwac): "; cin.getline(szuk,255); if(strlen(szuk)<1) break; cout << "Zamien na:"; cin.getline(zam,255); dodaj(szuk,zam); } system("cls");}const char* zamien(string text, lista_header* zamiany){ istringstream ss(text,istringstream::out); string out; char tmp[255]; while(ss.good()) { ss.getline(tmp,255,' '); out= out + zamiany->zamien(tmp) + " "; } return out.c_str();}int main(int argc, char *argv[]){ char* text; text = new char[11111111]; lista_header* zamiany = new lista_header; zamiany->pobierz_liste(); cout << "Podaj tekst do zamiany:" << endl; cin.getline(text, 111111111); text = (char*)zamien(text,zamiany); cout << endl << endl << endl << text << endl; delete zamiany; delete [] text; system("PAUSE"); return 0;}dziala na wyrazach jako calosci, czyli dla reguly "ala"->"ola" nic sie nie dzieje z wyrazem "mala", czy "alalala". Ponadto rozroznia wielkosc liter. czyli dla reguly "elo"->"czesc" nie zadziala ze zdaniem "Elo rap ziom" Edytowane 10 Stycznia 2006 przez Nargil Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Rorschach Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 "ala"->"ola" ma zamienic np "mala" na "mola"nie powinno dochodzic do takich kwiatkow Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Nargil Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 (edytowane) no to kod napisany wyzej dziala dokladnie tak jak powinien. Co najwyzej mozesz sie pobawic aby ignorowal wielkosci liter, jesli jest to wymagane. Moznaby tez zmienic sposob wczytywania tekstu, bo tu zakladamy ze jego dlugosc nie przekroczy 11111111 znakow, a nawet dla mniejszego tekstu zuzywane jest cale 11111111 bajtow pamieci Edytowane 10 Stycznia 2006 przez Nargil Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Rorschach Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 (edytowane) wielkie dzieki Nargil, podziwiam samozaparcie. Ale przerabianie tego na ansi bedzie syzyfowa praca :). Poki co doszedlem do czegos takiego #include <cstddef> #include <string> #include <iostream> using namespace std; int main() { string a; string b("Ala"); string c("Ola"); cout << "Podaj tekst do wczytania" << endl; getline(cin, a); size_t pozycja; pozycja = a.find(b); while(pozycja != string::npos ) { a.replace(pozycja, b.size(), c); pozycja = a.find(b, pozycja+1); } cout << a << endl; return 0; }w sumie dziala, o wiele latwiej bedzie mi przerobic na ansi c. Twoj program jest ok tylko jest za inteligennty. Zauwaylem w tym programie klasy i w ogole takie bajery ktore bedzie nam facet wykladal dopiero w przyszlym semestrze :). Edytowane 10 Stycznia 2006 przez Rorschach Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Nargil Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 pisales ze moze byc c++, wiec byly streamy klasy itp :) mogles mowic ze potrzebujesz ansi c ;) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Rorschach Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 (edytowane) moze byc c++, bo w miare prosty program przerobie na ansi c, ale juz klasy itp to nie na moje mozliwosci. A mam pytanko czy ktos sie zna tu na ansi c?? jaka biblioteke trzeba dolaczyc do pliku, zeby w ansi zadeklarowac string?? Edytowane 10 Stycznia 2006 przez Rorschach Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
vtg Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 #include <string.h> polecam ... dobra stronka o C ... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Rorschach Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 jak ktos zna Ansi i moze pomoc to niech da znac :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Rorschach Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 (edytowane) #include <stdio.h>#include<string.h>main(){char a; char b; char buff[256]; printf("Podaj wyraz szukany \n"); scanf("%s",&a);printf("podaj wyraz, na ktory zostanie zamieniony wyraz szukany \n");scanf("%s", &b); mam teraz pytania chce wczytac plik dane.txt (funkcja fcanf -tego sie domyslam) i wczytac je do tablicy buff. A nastepnie wrzucic do jakiejs petelki. Bardzo prosze o pomoc polecam ... dobra stronka o C ... dzieki za stronke z przyjemnoscia sie z nia zaznajomie, ale teraz nie mam za bardzo czasu bo na jutromusze wrescie napisac ten piekielny program Edytowane 10 Stycznia 2006 przez Rorschach Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Ragnor Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 (edytowane) dzieki za stronke z przyjemnoscia sie z nia zaznajomie, ale teraz nie mam za bardzo czasu bo na jutromusze wrescie napisac ten piekielny programTeż tak kiedyś mówiłem że nie mam czasu czytać man, help, instrukcji ale z czasem doszedłem do wnisoku że jednak mam na to czas :D i uwierz mi najszybszą drogą by coś zrobić nie jest czekanie na to aby ktoś za Ciebie zrobił ale przeczytanie dokumentacji. Co do dalszego pytania, plik otworzysz poleceniem fopen, pobierac znaki możesz pojedyńczo funkacja fgetc, lub kilka naraz funkcja fscanf, szczegóły w podręcznikach lub chociażby na google. Jeśli chciałbyś aby ktoś za Ciebie coś zrobił to licz się z tym że zwykle za to musisz zapłacic, wkońcu w jakimś celu ktoś zdobywa wiedzę którą innym nie chce się zdobywać bo nie mają czasu. Edytowane 10 Stycznia 2006 przez Ragnor Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Rorschach Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 (edytowane) Nie chce zeby ktos go za mnie napisal, ale tez odsylanie do google itp, potrzebuje pewnych informacji na szybko. Kursów do C/C++ jest w cholere,ale co do Ansi C prawie nic lub angielsko-jezyczne manuale. A ja i angielski to niezbyt dobre polaczenie. Przyznam chcialbym, zeby ktos podal mi wszystko na talerzu co sprawiloby, ze oszczedzilbym 3 dni meczenia, ale ja i tak musze umiec go napisac, bo ktos mnie z tego programu przepyta i musze wiedziec jak on dziala. Zreszta nie jestem na zadnych studiach informatycznych, a programowanie w Ansi C jest tylko udreka na naszym roku Edytowane 10 Stycznia 2006 przez Rorschach Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Ragnor Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 Nie chce zeby ktos go za mnie napisal, ale tez odsylanie do google itp, potrzebuje pewnych informacji na szybko. Kursów do C/C++ jest w cholere,ale co do Ansi C prawie nic lub angielsko-jezyczne manuale. A ja i angielski to niezbyt dobre polaczenie. Przyznam chcialbym, zeby ktos podal mi wszystko na talerzu co sprawiloby, ze oszczedzilbym 3 dni meczenia, ale ja i tak musze umiec go napisac, bo ktos mnie z tego programu przepyta i musze wiedziec jak on dziala.Podałem Ci jakiś funckji masz użyć aby osiągnąc to co chcesz. Co do ANSI C to jest na ten temat pewna klasyczna książka "Język ANSI C" Brian Kernigham, wystarczyło ją przekartkować i wszystko byś wiedział. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Artur.M Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 tam komuś odpowiedziałem na podobny temat: http://forum.pcmaniak.pl/ftopic32147.php może to ty ale nie mam pewności Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Rorschach Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 to nie ja, u nas polowa roku dostala takie same zadanie i wszyscy jestesmy tak samo tepi jesli chodzi o pisanie w ansi c, moze to jakis kumpel z roku. No w sumie jutro trzeba oddawac, wiec kazdy desperacko szuka jakies drogi wyjscia Podałem Ci jakiś funckji masz użyć aby osiągnąc to co chcesz. Co do ANSI C to jest na ten temat pewna klasyczna książka "Język ANSI C" Brian Kernigham, wystarczyło ją przekartkować i wszystko byś wiedział.w bibliotece wszystko wypozyczone, a nie bede wydawal iles kasy na roczny romans. To mi nie bedzie potrzebne. Ten przedmiot musze przezyc, a ze trafil nam sie bardzo wymagajacy profeso, to musze jakos kombinowac jak reszta roku. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Artur.M Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 no to dostaliście już dużo rozwiązań. Tylko nie wpadnijcie z identycznymi ;) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Ragnor Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 w bibliotece wszystko wypozyczone, a nie bede wydawal iles kasy na roczny romans. To mi nie bedzie potrzebne. Ten przedmiot musze przezyc, a ze trafil nam sie bardzo wymagajacy profeso, to musze jakos kombinowac jak reszta roku. Znajomość C jeśli chcesz coś umieć więcej niż siedzieć pod Windowsem i klikać, jest ciągle ważna. Jesli to uważasz za wymagające to wspólczuje, u mnie na pierwszym roku (1 semestrze) przyszło niektórym pisać implemetacje drzew binarnych, rózne algorytmy na grafach i inne kwiatki, na drugim roku przyszła kolej na budowe kompilatora wymyslonego języka na wymyslone procesor, a więc lekser, parser, emulator, assembler, deassembler, te rzeczy możesz nazwać wymagającymi, a to co Ty masz to łatwa zabawa z C i nic więcej. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Rorschach Opublikowano 10 Stycznia 2006 Zgłoś Opublikowano 10 Stycznia 2006 dla Ciebie to latwe, a ja mam inne zainteresowanie niz wpisywanie ciagu liter przed kompem. Jednych to jara, a innych nie chyba to rozumiesz?? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
MeHow Opublikowano 13 Stycznia 2006 Zgłoś Opublikowano 13 Stycznia 2006 a jaki kierunek i jaka uczelnia jesli spytac sie moge? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Polar Opublikowano 13 Stycznia 2006 Zgłoś Opublikowano 13 Stycznia 2006 dajcie mu spokój, on chce to przertwać i tyle nie każdy musi sie tym interesować... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...