Pagini: 1 ... 4 5 [6]   În jos
  Imprimă  
Ajutor Subiect: 046 Text  (Citit de 43622 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #125 : Iunie 11, 2011, 21:34:31 »

Daca te-ai uita, la surse trimise Alexandru Meterez a pus bine numele fiserelor Tongue.
Memorat
DaNutZ2UuU
Strain


Karma: -7
Deconectat Deconectat

Mesaje: 12



Vezi Profilul
« Răspunde #126 : Februarie 11, 2012, 14:16:36 »

Am facut problema; si merge struna la mn... si cand o pun- eroare de compilare-->
Eroare de compilare: user.cpp: In function ‘int main()’: user.cpp:11: error: ‘strlen’ was not declared in this scope
care-i faza?
 Mad Thumb down Think
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #127 : Februarie 11, 2012, 14:31:41 »

Strlen este o functie prestabilita care este localizata in headerul cstring. Adica daca ai adauga # include <cstring> ar trebui sa mearga Wink.
Memorat
originalalex
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #128 : Martie 01, 2012, 20:17:27 »

Cod:
imi poate spune cineva de ce pe o solutie ca asta iau TLE ? 

[cide]
program text1;
var c:string[1];
f,g:text;
nr,cuv,k:integer;
begin
assign(f,'text.in'); reset(f);
assign(g,'text.out'); rewrite(g);
nr:=0 ; cuv:=0 ; k:=1;
while not(eof(f)) do
begin
read(f,c);
if ((c>='A') and (c<='Z')) or ((c>='a') and (c<='z')) then
begin
k:=0;
nr:=nr+1;
end
else
if k=0 then
begin
cuv:=cuv+1;
k:=1;
end;
end;
write(g,nr div cuv); close(f); close(g);
end.

Editat de admin: Foloseste tagul "code" cand postezi surse.
« Ultima modificare: Martie 02, 2012, 10:04:13 de către Andrei Grigorean » Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #129 : Martie 01, 2012, 20:34:59 »

Fiindca e ineficienta Smile
Incearca sa citesti textul pe bucati.
Memorat
alex_unix
Strain
*

Karma: 22
Deconectat Deconectat

Mesaje: 46



Vezi Profilul
« Răspunde #130 : Aprilie 12, 2012, 09:46:23 »

Am facut in C++ citirea fara buffer, apoi am parcurs ce am citit. E mai eficient asa cand ai foarte mult de citit  peacefingers
Memorat
vatavu_oana
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #131 : Aprilie 26, 2012, 22:27:03 »

Pentru problema "Text":
Solutia mea:

Cod:
#include<fstream>
#include<iostream>
#include<string.h>
 using namespace std;
 ifstream f("o.in");
 ofstream g("o.out");
 int k=0,nr=0,i;
 char *p,a[256]="",b[11]=" -:.;',?! ";
 int main()
{
 f.getline(a,100);
 while(a[0]=='-'||a[0]=='"'||a[0]==' ')
strcpy(a,a+1);
 p=strtok(a,b);
 while(p)
{cout<<p<<endl;
 nr+=strlen(p);
 k++;
 p=strtok(NULL,b);
}
 if(k)
g<<(int)nr/k<<' '<<nr<<' '<<k;
 f.close();
 g.close();
 return 0;
}
De ce nu imi ia nici un test?

Editat de moderator: Foloseste tagul [ code ] cand postezi cod.
« Ultima modificare: Aprilie 27, 2012, 00:05:17 de către Gabriel Bitis » Memorat
darkseeker
De-al casei
***

Karma: 29
Deconectat Deconectat

Mesaje: 106



Vezi Profilul
« Răspunde #132 : Aprilie 26, 2012, 23:17:10 »

O prima greseala este ca citesti doar 100 de caractere iar inputul poate avea undeva la 1.000.000 de caractere . Declara vectorul mai mare si mareste numarul de caractere citite .
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #133 : Aprilie 26, 2012, 23:24:09 »

Si fisierele sunt gresite.
Memorat
Anduu
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #134 : Martie 23, 2013, 17:25:55 »

Intrebare... Textul poate avea si alineate? Adica trebuie sa iau in considerare si new line? Eu unul opresc executia cand dau de caracterul new line.
Memorat
repp4radu
Nu mai tace
*****

Karma: 118
Deconectat Deconectat

Mesaje: 204



Vezi Profilul
« Răspunde #135 : Martie 23, 2013, 18:42:42 »

"Pe prima linie a fisierului de intrare text.in se gaseste textul dat."

Totul este pe o linie in fisierul de intrare.
Memorat
arminvandexter
Strain


Karma: -3
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #136 : Octombrie 26, 2013, 20:11:29 »

Salut tocmai am facut problema dar imi spune ca nu este buna.Vedeti careva vreo greseala ?
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{ifstream f("text.in");
ofstream g("text.out");
char s[256];
unsigned i,n=0,m=0,k;
f.get(s,256);
for(i=0;i<strlen(s);i++)
   {if(s<='z' && 'a'<=s || 'A'<=s && s<='Z')
      n=n+1;
      if(s==' ')
         m=m+1;
          if(s=='-')
      if((s[i-1]<='z'&& 'a'<=s[i-1] || 'A'<=s[i-1] && 'Z'<=s[i-1])&&(s[i+1]<='z'&& 'a'<=s[i+1] || 'A'<=s[i+1] && 'Z'<=s[i+1]))
         m=m+1;}
k=(int)n/m;
g<<k;}
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #137 : Octombrie 27, 2013, 09:55:28 »

Ai eroare de compilare. Ai nevoie de <string.h>.
Memorat
Sagunistu
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #138 : Noiembrie 01, 2013, 22:36:24 »

De ce nu merge sa citesc tot sirul inainte si apoi sa-l parcurg?
Acesta este codul:
Cod:
#include <iostream>
#include <fstream>
#include <cstring>
#include <cctype>

using namespace std;
char a[1100010];
int main()
{
    ifstream fin("text.in");
    ofstream fout("text.out");
    int i;
    fin.getline(a,1100000);
    int n=strlen(a);
    int s=0,k=0,ok=1;
    for(i=0;i<n;i++)
    {
        if(isalpha(a[i]))
        {
            s++;
            if(ok)
                k++,ok=0;
        }
        else
            ok=1;
    }
        fout<<s/k;
    return 0;
}
Daca il fac identic, doar ca il citesc caracter cu caracter functioneaza.
Multumesc anticipat.
Memorat
Paaaulica
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #139 : Noiembrie 06, 2013, 13:16:48 »

De ce nu merge sa citesc tot sirul inainte si apoi sa-l parcurg?
Acesta este codul:
Cod:
#include <iostream>
#include <fstream>
#include <cstring>
#include <cctype>

using namespace std;
char a[1100010];
int main()
{
    ifstream fin("text.in");
    ofstream fout("text.out");
    int i;
    fin.getline(a,1100000);
    int n=strlen(a);
    int s=0,k=0,ok=1;
    for(i=0;i<n;i++)
    {
        if(isalpha(a[i]))
        {
            s++;
            if(ok)
                k++,ok=0;
        }
        else
            ok=1;
    }
        fout<<s/k;
    return 0;
}
Daca il fac identic, doar ca il citesc caracter cu caracter functioneaza.
Multumesc anticipat.

Pentru ca pui in vectorul a linia 1100000.
http://www.dreamincode.net/forums/topic/127452-converting-ifstream-to-char-array/

Dar nu fa asa, e foarte aiurea, si ineficient :p

Rezolvarea mea (100 p)

Cod:
#include <iostream>
#include <fstream>
using namespace std;

int e_litera(char a)
{
    if((a>=65 && a<=90) || (a>=97 && a<=122) )
        return 1;

        return 0;
}
int main()
{
    int nrcuvinte=0;
    int nrlitere=0;
    ifstream cit("text.in");
    char c;
    char lastChar=0;
    while(cit>> noskipws >>c)
    {

        if(e_litera(c))  nrlitere++;

        if(lastChar!=0)
        {
            if(!e_litera(c) && e_litera(lastChar))
                nrcuvinte++;
        }
        lastChar=c;


    }
    ofstream cut("text.out");
    cut<<nrlitere/nrcuvinte;
    cut.close(); cit.close();

    return 0;
}
Memorat
G_David
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #140 : Decembrie 22, 2013, 16:33:18 »

Va rog... nu inteleg de ce nu functioneaza sursa asta... Uita-ti fragmentul din sursa:
n - nr de cuvinte
l - nr de litere

Cod:
getline(infile, str);
len = str.length() - 1;
    for (i = 0; i <= len; i += 1) {
        if (isalpha(str[i])) {
            l++;
            if (!(isalpha(str[i + 1]))) {
                n++;
            }
        }
    }

M-am gandit ca daca caracterul e litera, atunci adauga 1 la litere. Si daca urmatorul caracter nu mai e litera, atunci inseamna ca s-a termiant cuvantul, deci adauga 1 la cuvinte. Un exemplu de propozitie care nu o face corect v-as ruga sa imi dati...
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #141 : Decembrie 22, 2013, 22:12:06 »

Ar fi bine sa declari stringul global. (cred ca asa scapi de KBS)
Memorat
Pateu69
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #142 : Mai 07, 2014, 22:18:53 »

Buna! Ma puteti ajuta, va rog? Smile Omit ceva, sau am gresit ceva, pentru ca nu pot lua punctaj maxim. Mi-ati putea da, va rog, un indiciu ? Very Happy

int main()
{
   while(fin.get(s,2))
   {
       if((s>='a'&&s<='z')||(s>='A'&&s<='Z')) //verifica daca e litera
            {litere++; sw=1;}
        else if(sw==1) {cuvinte++; sw=0;} //verifica daca e cuvant
   }

   if(sw==1) cuvinte++;
   fout<<litere/cuvinte;
    return 0;
}
Memorat
vladandrei
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #143 : Mai 01, 2015, 22:11:22 »

Salut!
Ma puteti ajuta va rog? Nu stiu de ce primesc WA la 3 teste (printre care si primul)
Ideea mea este relativ simpla, citesc caracter cu caracter, daca gasesc o litera si inainte era simbol am gasit un cuvant nou, daca nu, creste doar nr de litere.

Codul este urmatorul
Cod:
#include <fstream>
#include <string.h>
using namespace std;
ifstream f ("text.in");
ofstream g ("text.out");
int main(){
    char x; int ok = 0, lungime = 0, cuvinte = 0;
    while (f >> noskipws >> x){
        if (!isalpha(x)){
            ok = 1;
        }
        else if (isalpha(x)){
            lungime++;
            if (ok){
                cuvinte++;
                ok = 0;

            }
        }
    }
    if (cuvinte > 0)
        g << lungime/cuvinte;
    else g << "0";
    f.close();
    g.close();

}
Multumesc Smile .

LE: Acum ca ma gandesc, cred ca problema e  ca textul poate fi  pe mai multe linii si programul meu se opreste la primul rand. In acest sens problema poate fi rezolvata cu stream si citit caracter cu caracter, sau trebuie cu get sa memorez toate caracterele intr-un char[] ?
« Ultima modificare: Mai 01, 2015, 22:23:46 de către fabbbyyy » Memorat
gavrisraul
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 11



Vezi Profilul
« Răspunde #144 : Octombrie 25, 2015, 10:16:37 »

salut Very Happy de ce imi arata "in asteptare" la evaluator?deja de ieri
Memorat
ancawtblife
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #145 : Noiembrie 20, 2015, 14:38:07 »

Pot vedea undeva testele? Am incercat sa numar cuvintele fara sa ma folosesc de functii precum isspace etc, si ar trebui dpdv logic sa mearga, dar imi da wrong answers si killed by signals. Multumesc.
Memorat
vladrochian
Strain
*

Karma: 25
Deconectat Deconectat

Mesaje: 29



Vezi Profilul
« Răspunde #146 : August 09, 2016, 10:33:45 »

http://www.infoarena.ro/job_detail/1739323
Cel puțin un test are format greșit.
« Ultima modificare: August 09, 2016, 10:39:03 de către Vlad Rochian » Memorat
Bodo171
Client obisnuit
**

Karma: 11
Deconectat Deconectat

Mesaje: 52



Vezi Profilul
« Răspunde #147 : Noiembrie 24, 2016, 21:46:49 »

Mi se pare ca e ceva ciudat.
Am trecut de la 40 la 100 inlocuind
Cod:
 getline(f,s) 
cu
Cod:
 while(getline (f,s)) 
si nu am vazut sa ia cineva 100 cu functia de citire a unei singure linii(scuzati-ma daca gresesc).Din cate am verificat functia  getline() nu ar trebui sa fie restrictionata de vreo dimensiune mai mica decat cea a  testelor.Cred ca testele nu respecta(in totalitate) restrictia ca textul se afla pe prima linie.
« Ultima modificare: Noiembrie 24, 2016, 21:54:43 de către Bogdan Pop » Memorat
Pagini: 1 ... 4 5 [6]   În sus
  Imprimă  
 
Schimbă forumul:  

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