infoarena

infoarena - concursuri, probleme, evaluator, articole => Teme => Subiect creat de: Boiangiu Catalin din Iunie 04, 2013, 20:35:10



Titlul: Problema Teza cls a x-a
Scris de: Boiangiu Catalin din Iunie 04, 2013, 20:35:10
Salut! As dori si eu ceva ajutor in legatura cu o problema. Problema cere sa se gaseasca cate cuvinte nu contin cifre.

ex: date.in: Ana are 10 mere.
     date.out: 3 cuvinte fara cifre au fost gasite

Eu am scris algoritmul astfel in c++ :

Cod:
#include <fstream>
#include <iostream>
#include <string.h>
using namespace std;
int main()
{int a,n=0,j,i=0,m,r;
 char v[10];
 a=57;
 ifstream x("date.in");
 ofstream y("date.out");
 // aici trebuia sa verific daca acel caracter este litera sau cifra
 while(x>>v)
{i++;
  for(j=1;j<=strlen(v);j++)
//iar la acest if nu stiu cum sa verific daca este litera sau cifra 
                          if('v[j]'<=a)
     {j=strlen(v)+1;
      n++;}
}
 m=i-n;
 y<<m<<" cuvinte fara cifre gasite";
 x.close();
 y.close();
 return 0;
}

Acum greseala a fost facuta, dar macar am luat 9 :)
Totusi vreau sa stiu cum se facea corect problema.
Multumesc!





Titlul: Răspuns: Problema Teza cls a x-a
Scris de: FMI Trifan Mircea Mihai din Iunie 04, 2013, 22:37:30
ca sa vezi daca v[j] este litera folosesti conditia asta if ( v[j] >= 'a' && v[j] <= 'z') si ca sa vezi daca v[j] e cifra folosesti asa if (v[j] >= '0' && v[j] <= '9'). tu practic prin conditiile astea verifici daca codul ascii al caracterului v[j] se incadreaza in intervalul ['a', 'z'] respectiv ['0', '9']. inca ceva vezi cand parcurgi sirul de caractere cu forul ala trebuie sa pleci cu j de la 0 pana la strlen(v)-1 inclusiv pentru ca sirul de caractere cum il citesti tu se retine de la pozitia 0.  :)


Titlul: Răspuns: Problema Teza cls a x-a
Scris de: Boiangiu Catalin din Iunie 05, 2013, 10:11:25
Multumesc mult! O sa incerc sa refac programul astazi la scoala. Btw. Eu nu stiam pana acum de if(&&) sa verifice doua lucruri. Am invatat si ceva nou acum ;)