Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Plasa de umbrire peste gard de pl...

O smecherie pe care nu o inteleg

Balcon parter fara acte

unde gasesc un speed bag in bucur...
 Programe TV cu altfel de sporturi

Laptop "bun la toate" max...

navigatie noua vw tiguan

ctfmon.exe - System Error (in Saf...
 Ați prins vremurile cand 120 Volț...

Whatsapp nu afișeaza numele ...

Medii admitere Politehnica Bucure...

Se extinde Baza de la Kogalniceanu
 Politist mutilat de caine in curt...

Trotineta- cat rezista?

Windows 11 si inregistrare de pe ...

Cont Facebook spart
 

[Tema] Creare propozitii cu cuvintele dintr-un sir

- - - - -
  • Please log in to reply
9 replies to this topic

#1
1marius1

1marius1

    Member

  • Grup: Members
  • Posts: 587
  • Înscris: 29.03.2012
Salut!
Am urmatoarea problema de rezolvat:
[ https://i.imgur.com/YpjNq5B.jpg - Pentru incarcare in pagina (embed) Click aici ]

Am incercat sa o rezolv, dar nu reusesc sa separ cuvintele si sa le pun intr-o matrice de cuvinte...
Ceva sugestii?

#2
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,183
  • Înscris: 24.02.2007
Incepe cu o subproblema, o functie de forma
std::vector<std::string> splitWords(std::string sentence)



#3
sftpdt

sftpdt

    Senior Member

  • Grup: Senior Members
  • Posts: 3,640
  • Înscris: 29.08.2013

View Postdani.user, on 22 iulie 2016 - 20:01, said:

Incepe cu o subproblema, o functie de forma
std::vector<std::string> splitWords(std::string sentence)

Merge cu asta acolo la admitere ia 2 instant Posted Image
Cuvintele le poţi separa cu strtok.
Iar ca să prelucrezi un cuvânt anume, poţi folosi:

int lungime = strlen(cuvant);
char tip_cuvant = cuvant[lungime - 1]; // 'S', 'P', 'C'
cuvant[lungime - 2] = '\0'; // elimini ultimele 2 caractere care nu te intereseaza
						 // (#S / #P / #C)


Edited by sftpdt, 22 July 2016 - 20:26.


#4
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,294
  • Înscris: 21.04.2004
In primul rind trebuie stabilit limbajul, pentru ca C/C++ nu e un limbaj, desi se pare ca profii de info incacred asta. Si cred ca nici o fractzie. Poate o frectie.

Adevarul este ca daca se stabileste ca e C++, atunci nu probabil ca nu vrea sa foloseasca stringuri C si strtok... Eventual printf...

#5
1marius1

1marius1

    Member

  • Grup: Members
  • Posts: 587
  • Înscris: 29.03.2012
Am facut asa ceva:
#include <iostream>
#include <string.h>
using namespace std;
main()
{
char sir[100],*pointer,tip_cuvant,cuv[100][100],s[100][100],p[100][100],c[100][100];
int i,j,k,n=0,lungime,ns=0,np=0,nc=0;

cin.get(sir,100);

pointer=sir;
strtok(pointer," ");
while(pointer)
{
  strcpy(cuv[n++],pointer);
  pointer=strtok(NULL," ");
}

for(i=0;i<n;i++)
{
  lungime=strlen(cuv[i]);
  tip_cuvant=cuv[i][lungime-1];
  if(tip_cuvant=='S')
  {
   cuv[i][lungime-2]='\0';
   strcpy(s[ns++],cuv[i]);
  }
  else
  if(tip_cuvant=='P')
  {
   cuv[i][lungime-2]='\0';
   strcpy(p[np++],cuv[i]);
  }
  else
  if(tip_cuvant=='C')
  {
   cuv[i][lungime-2]='\0';
   strcpy(c[nc++],cuv[i]);
  } 
}

for(i=0;i<ns;i++)
for(j=np-1;j>=0;j--)
{
  for(k=0;k<nc;k++)
  cout<<s[i]<<" "<<p[j]<<" "<<c[k];
  cout<<endl;
}


}


E corect? Afiseaza ce trebuie! Se mai poate optimiza?

Edited by 1marius1, 22 July 2016 - 22:19.


#6
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,183
  • Înscris: 24.02.2007
Desigur. Din 2 randuri poti face toata imparteala cuvintelor in diversele categorii.
C++ nu inseamna doar cin/cout si operatii cu vectori de caractere. Alea se fac la inceput cand inveti ce sunt, nu se repeta la infinit pentru orice solutie. Chiar si biblioteca sa standard e mult mai vasta decat cea a C-ului.

Attached File  Untitled.png   18.5K   22 downloads

Desigur, multi vor zice ca nu ai ce cauta la admitere cu o astfel de solutie. Dar viata profesionala nu se rezuma doar la o admitere.

Edited by dani.user, 22 July 2016 - 22:33.


#7
1marius1

1marius1

    Member

  • Grup: Members
  • Posts: 587
  • Înscris: 29.03.2012

View Postdani.user, on 22 iulie 2016 - 22:31, said:

Desigur. Din 2 randuri poti face toata imparteala cuvintelor in diversele categorii.
C++ nu inseamna doar cin/cout si operatii cu vectori de caractere. Alea se fac la inceput cand inveti ce sunt, nu se repeta la infinit pentru orice solutie. Chiar si biblioteca sa standard e mult mai vasta decat cea a C-ului.

Attachment Untitled.png

Desigur, multi vor zice ca nu ai ce cauta la admitere cu o astfel de solutie. Dar viata profesionala nu se rezuma doar la o admitere.

Nu prea inteleg din ce ai facut tu acolo... Nu am folosit niciodata bibliotecile alea: boost, map... Nu am invat despre asa ceva, deci nu prea am de unde sa stiu, avand in vedere ca am fost la profil mate-info neintensiv.

#8
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,183
  • Înscris: 24.02.2007
Stai linistit ca nu le preda nimeni in scoala nici la intensiv.

Ti-am aratat codul pentru a-ti stani curiozitatea.

#9
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Post1marius1, on 23 iulie 2016 - 06:36, said:


Nu prea inteleg din ce ai facut tu acolo... Nu am folosit niciodata bibliotecile alea: boost, map... Nu am invat despre asa ceva, deci nu prea am de unde sa stiu, avand in vedere ca am fost la profil mate-info neintensiv.
Stii cum face strutul?

Auzi acum. Si mort de curiozitate cum esti, te documentezi.

Nu ca "nu am auzit, nu stiu, deci nu folosesc".

#10
sftpdt

sftpdt

    Senior Member

  • Grup: Senior Members
  • Posts: 3,640
  • Înscris: 29.08.2013
if(tip_cuvant=='S')
{
	cuv[i][lungime-2]='\0';
	strcpy(s[ns++],cuv[i]);
}
else if(tip_cuvant=='P')
{
	cuv[i][lungime-2]='\0';
	strcpy(p[np++],cuv[i]);
}
else if(tip_cuvant=='C')
{
	cuv[i][lungime-2]='\0';
	strcpy(c[nc++],cuv[i]);
}


cuv[i][lungime-2]='\0';
if(tip_cuvant=='S')
	strcpy(s[ns++],cuv[i]);
else
	if(tip_cuvant=='P')
		strcpy(p[np++],cuv[i]);
	else
		strcpy(c[nc++],cuv[i]);



Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate