Pagini: 1 2 [3] 4 5 6   În jos
  Imprimă  
Ajutor Subiect: 046 Text  (Citit de 43633 ori)
0 Utilizatori şi 2 Vizitatori pe acest subiect.
razyelx
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« Răspunde #50 : Aprilie 02, 2007, 21:28:55 »

citeste mai atent postul lui Bluedrop_demon si o sa iti dai seama unde bat
Memorat
cosser
Strain
*

Karma: 4
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #51 : Decembrie 15, 2007, 14:10:20 »

poate nu voi primi nici un raspuns si poate ca nu e bine daca pun sursa pe forum...
totusi de curiozitate ce gresesc cand scriu asta

Cod:
#include<fstream>
#include<ctype.h>
#include<stdio.h>
using namespace std;
ifstream f("text.in");
ofstream o("text.out");

char s[1000][1000];
int i=1,n,m=0,j,n1;

int main()
{
f>>s[i];
 while(!f.eof())
 {n=i; i++;  f>>s[i]; }

 for(i=1;i<=n;i++)
 {for(j=0;j<=' ';j++)
 if(isalpha(s[i][j])) m++; //verific sa fie intre A..Z sau a..z
  }

o<<m/n;

 return 0;
}
Memorat
skyel
Nu mai tace
*****

Karma: 29
Deconectat Deconectat

Mesaje: 263



Vezi Profilul
« Răspunde #52 : Decembrie 15, 2007, 14:34:23 »

alphanumeric contine si numeric nu doar alpha Tongue (adica are si 0...9)
Memorat
cosser
Strain
*

Karma: 4
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #53 : Decembrie 15, 2007, 14:36:11 »

isalnum() este pentru litere su cifre
isalpha() este pentru litere numai
Memorat
skyel
Nu mai tace
*****

Karma: 29
Deconectat Deconectat

Mesaje: 263



Vezi Profilul
« Răspunde #54 : Decembrie 15, 2007, 14:42:35 »

Citat
j<=' '
ce vrea sa insemne asta... j este de tip int
Oricum mi se pare ca te complici prea mult p-acolo tu treb sa aflii cate cuvinte sunt ("da-te" in cazul problemei sunt 2, la tine este considerat 1(f>>s iti citeste pana la spatiu))
Memorat
cosser
Strain
*

Karma: 4
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #55 : Decembrie 15, 2007, 15:06:02 »

ups!
da asa e cu j<=' '
oricum mergea pana la 255 dar am corectat asta inainte.
in fine, am inteles gresit problema si am un caracter "-" ca un cuvant de asta la exemplul din enunt am numarat tot 11 cuvinte. de fapt "-" nu inseamna nimic ci separa un duvant in doua. "da-te" sunt 2 cuvinte ai sups.
a fost o interpretare gresita.
Memorat
ciprianf
De-al casei
***

Karma: 11
Deconectat Deconectat

Mesaje: 104



Vezi Profilul
« Răspunde #56 : Ianuarie 11, 2008, 22:56:38 »

Am si eu o problema ......cand incerc sa rulez imi da eroare si zice ceva de genu    cannot conver char to char * ....uitati fragmentul de sursa

Cod:
while(!feof(f));
{
ok=0;
fscanf(f,"%c",&x);
if ((x==" " || x=="-")&& car>1) cuv++;
else for (i="a";i<="z";i++)
if (i==x) {ok=1; break;}
if (ok==0) for (i="A";i<="Z";++i)
if(i==x) {ok=1; break;}
if (ok==1) car++;
}
fprintf(g,"%d",car/cuv);
« Ultima modificare: Ianuarie 11, 2008, 23:46:48 de către Andrei Grigorean » Memorat
stef2n
Nu mai tace
*****

Karma: 218
Deconectat Deconectat

Mesaje: 641



Vezi Profilul
« Răspunde #57 : Ianuarie 11, 2008, 23:10:38 »

Ai grija sa pui ghilimele simple cand e vorba de caractere si ghilimele duble cand e vorba de siruri. In codul tau, inlocuieste "A" cu 'A' (si in mod similar pentru celelalte) si o sa mearga.
Memorat

Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
ciprianf
De-al casei
***

Karma: 11
Deconectat Deconectat

Mesaje: 104



Vezi Profilul
« Răspunde #58 : Ianuarie 11, 2008, 23:18:35 »

Merci mult a mers............dar acum cand ii dau rulare imi intra in ciclu infinit si nu se mai opreste...ai vreo idee de ce?
Memorat
stef2n
Nu mai tace
*****

Karma: 218
Deconectat Deconectat

Mesaje: 641



Vezi Profilul
« Răspunde #59 : Ianuarie 11, 2008, 23:28:10 »

Vezi ca dupa while(!feof(f)) ai punct si virgula, deci nici nu se intra in blocul scris intre acolade. Smile Scapa de el (de punct si virgula).
Memorat

Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
drywater
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #60 : Ianuarie 28, 2008, 17:29:20 »

Ce ii gresit la programu asta?( iau 60 puncte); Daca citesc caracter cu caracter iau 100
Cod:
#include <stdio.h>   
 #include <string.h>   
 FILE *in,*o;   
 char s[10000],sep[]="_ 1234567890,.?/!;\'-@#$%^&*(){}[]|:<>+~`",*a;   
 int n,nr,nrc,l,i,se,j;   
 float r;   
 main()   
 {   
 in=fopen("text.in","r");   
 o=fopen("text.out","w");   
 while (!feof(in))   
 {   
 fgets(s,10000,in);   
 n=strlen(s);   
 for (i=0;i<n;i++)   
  {   
  if (s[i]<='z' && s[i]>='a' || s[i]<='Z' && s[i]>='A')   
   nr++;   
  }   
 a=strtok(s,sep);   
 if (a!=NULL)   
  nrc++;   
 while (a!=NULL)   
  {nrc++;   
  a=strtok(NULL,sep);   
  }   
 nrc--;   
 }   
 r=nr/nrc;   
 fprintf(o,"%d",int(r));   
 fclose(in);   
 fclose(o);   
 return 0;   
 }   
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #61 : Ianuarie 28, 2008, 19:03:29 »

Ce ii gresit la programu asta?( iau 60 puncte); Daca citesc caracter cu caracter iau 100
Cod:
#include <stdio.h>   
 #include <string.h>   
 FILE *in,*o;   
 char s[10000],sep[]="_ 1234567890,.?/!;\'-@#$%^&*(){}[]|:<>+~`",*a;   
 int n,nr,nrc,l,i,se,j;   
 float r;   
 main()   
 {   
 in=fopen("text.in","r");   
 o=fopen("text.out","w");   
 while (!feof(in))   
 {   
 fgets(s,10000,in);   
 n=strlen(s);   
 for (i=0;i<n;i++)   
  {   
  if (s[i]<='z' && s[i]>='a' || s[i]<='Z' && s[i]>='A')   
   nr++;   
  }   
 a=strtok(s,sep);   
 if (a!=NULL)   
  nrc++;   
 while (a!=NULL)   
  {nrc++;   
  a=strtok(NULL,sep);   
  }   
 nrc--;   
 }   
 r=nr/nrc;   
 fprintf(o,"%d",int(r));   
 fclose(in);   
 fclose(o);   
 return 0;   
 }   


Pai nu spune nicaieri ca textul se afla pe o singura linie. Probabil de astea iei doar 60.  Smile
Memorat
drywater
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #62 : Ianuarie 28, 2008, 19:39:56 »

am luat pt. mai multe linii, am citit pe rand fiecare linie
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #63 : Ianuarie 28, 2008, 20:18:47 »

Aa.. scuze. Nu am vazut ca ce ai tu e intr`un while. Vezi ca s-ar putea sa fie de la faptul ca pe o linie sunt mai multe de 10.000 de caractere. Altceva nu prea vad...  Ok
Memorat
soriyn
Vorbaret
****

Karma: 24
Deconectat Deconectat

Mesaje: 150



Vezi Profilul
« Răspunde #64 : Februarie 05, 2008, 19:04:55 »

am o intrebare
ati tinut cont de cratima?
eu am luat doar 40 puncte Brick wall

am facut programul bazandu-ma ca un cuvant este o succesiune de litere,iar cand intalneste cratima
sa imi considere doua cuvinte.
Acum imi ia in calcul si linia de dialog si imi iese cu un cuvant mai mult Fighting

ce sa fac?


LE: hmm 70 pct  Think
stiti cum pot calcula partea intreaga a unui nr?
« Ultima modificare: Februarie 05, 2008, 19:19:37 de către sorin sorin » Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #65 : Februarie 05, 2008, 19:16:44 »

In exemplul din enuntul problemei sunt 11 cuvinte, inseamna ca "Lasa-ma" este luat ca doua cuvinte.
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #66 : Februarie 05, 2008, 19:22:56 »

LE: hmm 70 pct  Think
stiti cum pot calcula partea intreaga a unui nr?

Pai ca sa calculezi partea intreaga a catului impartirii lui a la b faci doar  x = a/b.  Think Iar daca, cumva x e de tip real, faci y=(int)x, unde y e de tip int.
Memorat
soriyn
Vorbaret
****

Karma: 24
Deconectat Deconectat

Mesaje: 150



Vezi Profilul
« Răspunde #67 : Februarie 05, 2008, 19:30:05 »

 Cry
asa am facut si eu, dar am observat ca daca nu am nimic scris programul crapa, si probabil de acolo am WA.  Whistle

ma intreb daca pot sa vad de la inceput daca-i gol fisierul din care citesc este gol si sa afisez 0 Think
 
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #68 : Februarie 05, 2008, 19:32:50 »

Cry
asa am facut si eu, dar am observat ca daca nu am nimic scris programul crapa, si probabil de acolo am WA.  Whistle

ma intreb daca pot sa vad de la inceput daca-i gol fisierul din care citesc este gol si sa afisez 0 Think
 

Pai..probabil ca imparti la 0, pt ca numarul de cuvine e 0, in caz ca fisierul e gol. Pune si tu o conditie sa ai nr de cuvine >=1. Daca nr de cuvinte = 0 atunci afisezi 0. Ma indoiesc insa ca e din cauza asta...
Memorat
soriyn
Vorbaret
****

Karma: 24
Deconectat Deconectat

Mesaje: 150



Vezi Profilul
« Răspunde #69 : Februarie 05, 2008, 19:42:47 »

Cry
asa am facut si eu, dar am observat ca daca nu am nimic scris programul crapa, si probabil de acolo am WA.  Whistle

ma intreb daca pot sa vad de la inceput daca-i gol fisierul din care citesc este gol si sa afisez 0 Think
 

Pai..probabil ca imparti la 0, pt ca numarul de cuvine e 0, in caz ca fisierul e gol. Pune si tu o conditie sa ai nr de cuvine >=1. Daca nr de cuvinte = 0 atunci afisezi 0. Ma indoiesc insa ca e din cauza asta...

da imparteam ca "desteptu" la 0
dar tot am WA pe testele 2,5,8
nu stiu unde gresesc
Memorat
hulparuadrian
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 15



Vezi Profilul
« Răspunde #70 : Februarie 26, 2008, 11:31:03 »

Secventele numerice sunt considerate cuvinte??? Pentru ca iau WA pe testul 9 si nu stiu unde gresesc...
Memorat
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« Răspunde #71 : Februarie 26, 2008, 12:00:53 »

Nu. Nu sunt considerate cuvinte.
Citat
un cuvant fiind definit ca o secventa continua maximala de caractere ale alfabetului englez ('a' .. 'z' , 'A' .. 'Z').
Memorat
ghitza_2000
Strain


Karma: -7
Deconectat Deconectat

Mesaje: 16



Vezi Profilul
« Răspunde #72 : Martie 08, 2008, 16:58:18 »

Vreau sa stiu si eu ceva..... la problema text ce am gresit de iau numai 70 pct?Huh
Cod:
var ct,S,d:longint;
    i,c1:char;
    f,g:text;
    m:set of char;
begin
assign(f,'text.in'); reset(f);
m:=[];
for i:='a' to 'z' do
m:=m+[i];
d:=0;
ct:=0; s:=0;
for i:='A' to 'Z' do
m:=m+[i];
while (not eof(f)) do
begin
read(f,c1);
if eoln(f) then readln(f);
if [c1]*m<>[] then begin
d:=d+1;
inc(S);
end;
if (([c1]*m=[]) and (d<>0)) then begin inc(ct);
                                       d:=0;
                                 end;
end;
close(f);
assign(g,'text.out'); rewrite(g);
if ct=0 then writeln(g,'0')
else
writeln(g,S div ct);
close(g);
end.
« Ultima modificare: Martie 08, 2008, 17:12:29 de către Stefan Istrate » Memorat
ghitza_2000
Strain


Karma: -7
Deconectat Deconectat

Mesaje: 16



Vezi Profilul
« Răspunde #73 : Martie 12, 2008, 22:28:17 »

Cine imi spune si mie unde gresesc deoarece imi ia WA pe testul 6 si 9
Am incercat toate posibilitatile, dar nimik sad
Memorat
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #74 : Martie 23, 2008, 17:15:45 »

problema e la
Cod:
do{ok=0;
   while(c>='a'&&c<='z' || c>='A'&&c<='Z'){nrl++;fin.get(c);ok=1;}
   fin.get(c);
   if(ok==1){i++;okk=1;}

   }while((int)c!=-1);

programul tau cicleaza pentru ca nu verifici (bine) cand ajungi la sfarsitul fisierului.

ca sa citesti dintr-un fisier pana la ultimul caracter foloseste acest cod.
Cod:
while (fin.get(c))
{
        if (c>='a'&&c<='z' ||c>='A'&&c<='Z') {nrl++; ok = 1;}
        else
            if (ok==1) {i++; okk=1;}
}

Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
Pagini: 1 2 [3] 4 5 6   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines