•svalentin
|
 |
« Răspunde #25 : Martie 16, 2006, 21:24:41 » |
|
oricum, este recomandat sa nu folositi streamuri pentru citire/scriere, nu sunt foarte rapide..
|
|
|
Memorat
|
|
|
|
•tomescu_alin
Strain
Karma: 0
Deconectat
Mesaje: 3
|
 |
« Răspunde #26 : Martie 17, 2006, 14:38:36 » |
|
in cazul acesta ce se recomanda pentru citirea rapida caracter cu caracter sau linie cu linie... stdio.h cumva? cu functia fget()? mie mi se pare mult mai comod de folosit streamuri... pacat ca sunt mai lente... 
|
|
|
Memorat
|
Life has to end, love doesn't !
|
|
|
•Marius
|
 |
« Răspunde #27 : Martie 17, 2006, 15:26:26 » |
|
in cazul acesta ce se recomanda pentru citirea rapida caracter cu caracter sau linie cu linie... stdio.h cumva? cu functia fget()? mie mi se pare mult mai comod de folosit streamuri... pacat ca sunt mai lente...  Ar trebui sa citesti mai mult pe forum inainte sa intrebi! Vezi ce a scris cristi8 (,) 8 posturi mai sus!
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•bvali
Strain
Karma: 2
Deconectat
Mesaje: 8
|
 |
« Răspunde #28 : Aprilie 05, 2006, 13:16:31 » |
|
Am facut citirea intr-un pointer char... ex. declarat char *sir si apoi citit cu sir = fgets(sir, 1024, fin); ... apoi facut cu strtok si alea alea, pe Borland C++ 3.1 imi merge perfect, pe gcc imi da Runtime Error - Invalid Memory Reference si nu imi dau seama unde am bushit-o. Help someone...
|
|
|
Memorat
|
Ce poti face azi, lasa pe maine, ca poate poimaine nu mai trebuie facut.
|
|
|
•svalentin
|
 |
« Răspunde #29 : Aprilie 05, 2006, 13:24:05 » |
|
nu stiu daca am intels exact.. dar ia incearca declararea: char sir[1024];
|
|
|
Memorat
|
|
|
|
•bvali
Strain
Karma: 2
Deconectat
Mesaje: 8
|
 |
« Răspunde #30 : Aprilie 05, 2006, 15:26:05 » |
|
nu pot sa fac asta pentru ca eu din cate stiu pe stiva pot aloca doar 1MB si in plus eu personal nu mai stiu cum sa ies din while-urile pe care le am acolo care se opresc din executie in momentul in care strtok si fgets isi pierd obiectul muncii si imi returneaza NULL.
|
|
|
Memorat
|
Ce poti face azi, lasa pe maine, ca poate poimaine nu mai trebuie facut.
|
|
|
•points_hunter
Strain
Karma: -7
Deconectat
Mesaje: 26
|
 |
« Răspunde #31 : Aprilie 05, 2006, 22:40:42 » |
|
Invalid m. ref. iti da cand ai vectorii prea mici si citesti intr-o zona de memorie care nu exista.Asta cu siguranta Despre NULL nu stiu ce sa spun, dar nu stiu cum ai reusit sa umpli stiva: Incearca sa faci asta in main: daca ai un pointer *p : p=new char[100..0] si vezi daca merge... In rest algoritmul e simplu. Da' nu-stiu de ce va complicati sa cititi in tipuri structurate de date ca vectori,pointeri, etc si folosirea unor fct. ca strtok sau etc. Pt a cauta sau a accesa un element un element intr-un vector consuma foarte mult timp, mai ales daca e mare( In enunt nu-ti da lungimea unui rand). Pur si simplu citesti caracter cu caracter fara nici un vector sau altceva, cu complexitate liniara. Succes!!! 
|
|
|
Memorat
|
Intr-o lume plina de prostie si noobism Ceva mai increzator, putin mai oportunist Nihil sine DEO(Iubeste si vei fi iubit , Nu uita niciodata ca esti om)
|
|
|
•bvali
Strain
Karma: 2
Deconectat
Mesaje: 8
|
 |
« Răspunde #32 : Aprilie 06, 2006, 10:08:09 » |
|
 ) okay, io am facut asa pt. ca imi facea cu ochiul strtok si pt. ca n-am mai folosit-o pana acum si pt. ca era mai elegant  Dar trecem la char-by-char  Later edit: am facut char by char si mi-a iesit 90 puncte. La testul 9 am WA. Aveti vreo sugestie? si asa de curiozitate am debugged si aia cu strtok si mi-au iesit 70 de puncte.
|
|
« Ultima modificare: Aprilie 11, 2006, 13:55:17 de către bvali »
|
Memorat
|
Ce poti face azi, lasa pe maine, ca poate poimaine nu mai trebuie facut.
|
|
|
•Tabara
|
 |
« Răspunde #33 : Decembrie 29, 2006, 05:47:30 » |
|
Eu iau 60 pe problema asta si nu prea inteleg ce gresesc.  In plus, cu evaluatorul asta nou, nici nu mai vad ce teste nu iau. Eu am facut asa: .... string s;
while ( !fin.eof() ) { if ( fin.peek() == ' ' ) { " fin.get(); s += ' '; } else { fin >> ch; s += ch; } } for ( i = 0; i < s.size(); ++i ) { if ( isalpha( s[i] ) || s[i] == ' ' || s[i] == '-' ) rez += s[i]; }
iar apoi am mai luat inca un string in care am despartit cum trebuie cuvintele.( pt cazurile cu cratima.de exemplu cuvantul "lasa-ma" ) Iar apoi am facut asa: istringstream st; st.str( prov ); string ss; while ( st >> ss ) { sol.push_back( ss ); } for ( j = 0 ;j < sol.size(); ++j ) { lungime += sol[j].size();//fout << sol[j] << " "; nrc++; } ok = (int)(lungime/nrc); fout << ok << "\n";
Am citit ce s-a postat pana acuma pe forum, insa nu prea am prins alte idei pentru ceea ce am facut eu.Daca are cineva o idee, va rog sa ma ajutati [Later edit] Am luat 100 cu algorimutl ala naiv.Totusi, as vrea sa stiu ce greseam aici.....daca stie cineva va rog sa imi spuneti 
|
|
« Ultima modificare: Decembrie 29, 2006, 06:35:15 de către Tabara Mihai »
|
Memorat
|
|
|
|
•wefgef
|
 |
« Răspunde #34 : Decembrie 29, 2006, 18:11:47 » |
|
poti sa vezi ce teste nu iei dand click pe punctaj dupa ce se termina evaluarea 
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•Tabara
|
 |
« Răspunde #35 : Decembrie 29, 2006, 19:21:30 » |
|
poti sa vezi ce teste nu iei dand click pe punctaj dupa ce se termina evaluarea  NU e vorba de asta.  Nu mergea evaluatorul...imi dadea ceva eroare ca nu gaseste link-ul catre monitorul care trebuia sa imi afiseze rezultatul.... Acuma am vazut.Iau WA pe 4 teste 
|
|
|
Memorat
|
|
|
|
•Adrian001
Strain
Karma: 0
Deconectat
Mesaje: 2
|
 |
« Răspunde #36 : Ianuarie 10, 2007, 20:58:55 » |
|
Fiti atenti la parcurgerea fisierului de intrare. Sa parcurgeti pana la sfarsitul fisierului nu pana la sfarsitul liniei. Eu am parcurs pana la sfarsitul liniei si am luat 40 de pct iar dupa aceea pana la sfarsitul fisierului si am luat 100 asa ca succes!!.
|
|
|
Memorat
|
|
|
|
•edu2004eu
Strain
Karma: -6
Deconectat
Mesaje: 8
|
 |
« Răspunde #37 : Martie 02, 2007, 23:36:23 » |
|
Imi spune si mie cineva cum pot citi caracter cu caracter, dar sa-mi citeasca si spatiile? Am incercat ceva de genul: [...] FILE *in=fopen...; // restul e clar char *words[10000]; while (fscanf(in,"%s",&words)!=EOF){ [...] }
Dar asa nu-mi citeste spatiile. Am incercat si cu fgets, dar asa nu mai e caracter cu caracter... Ma poate ajuta cineva? Multumesc!
|
|
|
Memorat
|
|
|
|
•wefgef
|
 |
« Răspunde #38 : Martie 02, 2007, 23:55:33 » |
|
Poti sa citesti cu scanf("%c", &character) cat timp nu ai ajuns la sfarsitul fisierului.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•svalentin
|
 |
« Răspunde #39 : Martie 02, 2007, 23:56:10 » |
|
fgetc citeste un caracter din stream.. indiferent daca e spatiu sau '\n' (new_line) fgets citeste o linie din stream (citeste n-1 caractere sau pana da de '\n'; ce conditie se indeplineste prima)
Deci daca vrei caracter cu caracter, incearca fgetc sau fscanf(in, "%c", &caracter); cu %s citesti cuvinte
|
|
|
Memorat
|
|
|
|
•c_e_manu
|
 |
« Răspunde #40 : Martie 18, 2007, 22:44:11 » |
|
Imi puteti spune dupa si inainte de care caractere sunt puse spatiu pentru ca nu pot da cu presupusul ca asa iau doar 30 puncte  , iar algoritmul meu se bazeaza pe lucrul asta. Multumesc de ajutor!
|
|
|
Memorat
|
|
|
|
•Tabara
|
 |
« Răspunde #41 : Martie 18, 2007, 23:00:27 » |
|
Imi puteti spune dupa si inainte de care caractere sunt puse spatiu pentru ca nu pot da cu presupusul ca asa iau doar 30 puncte  , iar algoritmul meu se bazeaza pe lucrul asta. Multumesc de ajutor! Poi daca ai facut cu separatori, pune toate caracterele care crezi ca ar putea aparea. "`~1234567890!{@#$%^&**()-}|":+?=><,./;'[]\" Oricum, in caz ca nu iti iese, merita sa faci cu algoritmul acela naiv din solutie ca nu scrii mai mult de 10 linii de cod in total. 
|
|
« Ultima modificare: Martie 18, 2007, 23:02:00 de către Tabara Mihai »
|
Memorat
|
|
|
|
•c_e_manu
|
 |
« Răspunde #42 : Martie 19, 2007, 19:10:17 » |
|
Mersi Mihai. Sper sa reusesc cu varianta asta. Daca nu, m-am mai gandit la una, dar nu vreau sa renunt la prima inca.
|
|
|
Memorat
|
|
|
|
•Florian
|
 |
« Răspunde #43 : Martie 26, 2007, 20:13:21 » |
|
Problema in sine este foarte usoara. Este nevoie sa citesti cu fscanf(f,"%c",&character) si sa verifici daca este o litera (atentie: poate fi si mica si mare)....in rest de tinut contoarele e simplu.....e algoritm de cateva linii..am luat 100 
|
|
|
Memorat
|
|
|
|
•razyelx
Client obisnuit

Karma: 0
Deconectat
Mesaje: 82
|
 |
« Răspunde #44 : Aprilie 01, 2007, 23:05:53 » |
|
iau doar 90 de pct pe pb ... am WA la testul 9 care mapoate ajuta pls..  nu mai stiu ce sa fac
|
|
|
Memorat
|
|
|
|
•Bluedrop_demon
Client obisnuit

Karma: -3
Deconectat
Mesaje: 66
|
 |
« Răspunde #45 : Aprilie 01, 2007, 23:26:09 » |
|
Incearca sa dai un test programului tau de forma: " == lasa- a" fara ghilimele si fara nici un caracter (deci si fara ENTER) dupa ultimul "a". Cel mai probabil crapa sau da un rezultat gresit. De ex. daca citesti caractere din randul literelor fara sa si verifici sa nu fi ajuns la sf fisierului crapa. Sper ca am fost de folos. Multa bafta! 
|
|
|
Memorat
|
|
|
|
•razyelx
Client obisnuit

Karma: 0
Deconectat
Mesaje: 82
|
 |
« Răspunde #46 : Aprilie 02, 2007, 16:30:07 » |
|
ms mult ai avut dreptate la aia nu m-amgandit. Sincer nu vrea sa fiu nepoliticos cu adminii dar mi se poate explica si mie cum de o propozitie nu se termina cu un semn de punctuatie si cu o litera... verificati testul 9 e cam ilogic. Inca o data sper sa nu fiu prea naspa...
|
|
|
Memorat
|
|
|
|
•DITzoneC
|
 |
« Răspunde #47 : Aprilie 02, 2007, 17:05:34 » |
|
Nu zicea nicaieri in enuntul problemei ca ar fi vorba de propozitii. Textul respectiv poate fi de exemplu mijlocul unei propozitii.
|
|
|
Memorat
|
|
|
|
•razyelx
Client obisnuit

Karma: 0
Deconectat
Mesaje: 82
|
 |
« Răspunde #48 : Aprilie 02, 2007, 17:31:16 » |
|
corect ce ziceai tu ca nu o zis ca is propoziti... dar a zis ca e text... ma rog fie...
|
|
|
Memorat
|
|
|
|
•devilkind
|
 |
« Răspunde #49 : Aprilie 02, 2007, 17:34:57 » |
|
nu vad cu ce este afecteactat algoritmul tau dak textul este format sau nu din propozitii. Probabil sunt teste random, deci cuvintele sunt ceva de genu "aofu sodfh uisabbvdlfvb lav basdf" so 
|
|
|
Memorat
|
|
|
|
|