Chirurgia spinală minim invazivă
Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical. Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale. www.neurohope.ro |
[TEMA] Lungimea medie a cuvintelor
Last Updated: Jun 21 2021 13:36, Started by
Ciupacabra14
, Jun 21 2021 10:12
·
0
#1
Posted 21 June 2021 - 10:12
Salutare, am si eu o problema de facut in care trebuie sa calculez lungimea medie a cuvintelor din propozitia introdusa de la tastatura.
Codul pe care l- am scris pana acum : #include <iostream> #include <cstring> #include <iomanip> using namespace std; int este_litera(char c) { if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z')) return 1; return 0; } bool este_spatiu(char c){ if(c==' ') return true; return false; } double numar_cuvinte(char sir[101]) { double n = strlen(sir); double am_cuvant = 0; double numar_cuvinte = 0; for (int i = 0; i < n; ++i) { if (este_litera(sir[i])) { am_cuvant = 1; } else if (am_cuvant == 1) { ++numar_cuvinte; am_cuvant = 0; } } if (am_cuvant == 1) { ++numar_cuvinte; } return numar_cuvinte; } double numar_litere(char sir[101]) { int m = strlen(sir); double numar_litere=0; for (int j = 0; j < m; ++j) { if(este_spatiu(sir[j])==false){ numar_litere +=1; } } return numar_litere; } void removeSpaces(char *sir){ int count = 0; for (int i = 0; sir[i]; ++i) if (sir[i] != ' ') sir[count++] = sir[i]; sir[count] = '\0'; } int main() { char sir[101]; char zero='0'; cin.getline(sir, 101); double average_lenght_words = numar_litere(sir)/ numar_cuvinte(sir); if(average_lenght_words > 0){ cout << fixed << setprecision(2) << average_lenght_words; } else { for(int i=0; i<1;++i) cout << zero; } } |
#2
Posted 21 June 2021 - 10:34
Șirul va conține litere mari și mici precum și semne de punctuație
In cazul tau semnele de punctuatie trebuie tratate ca spatiu https://www.cplusplu...ference/cctype/ Edited by MarianG, 21 June 2021 - 10:58. |
#3
Posted 21 June 2021 - 10:51
Si banuiesc ca trebuie sa le consider cuvinte ca sa fie luate in considerare in momentul in care se vor calcula lungimile, nu?
|
#4
Posted 21 June 2021 - 10:59
Semnele de punctuatie nu sunt cuvinte
Un cuvânt este definit ca una sau mai multe litere aflate pe poziții consecutive |
#5
Posted 21 June 2021 - 11:50
Ciupacabra14, on 21 iunie 2021 - 10:51, said:
Si banuiesc ca trebuie sa le consider cuvinte ca sa fie luate in considerare in momentul in care se vor calcula lungimile, nu? Hai sa gandim ca un programator in paradigma OOP. Propozitia = colectie de obiecte sintactice. Un obiect sintactic = poate fi un cuvant sau un token, iar un token este orice in fara de cuvant. propozitie.PNG 1.92K 14 downloads Observam ca de fapt colectia aceasta de obiecte sintactice este de fapt formata din doua subcolectii: a)colectia de obiecte sintactice clasificate a fi cuvinte b)colectia de obiecte sintactice clasificate a fi tokenuri iar elementele acestor subcolectii sunt disitribuite intr-un patern unic: sunt distribuite alternant. Asta inseamna ca daca punem colectiei de mai sus un contor (i), ei bine vom avea: a) cand restul impartirii lui i la 2 este zero, vei avea un obiect sintactic de tip cuvant b)cand restul impartirii lui i la 2 nu este zero, vei avea un obiect sintactic de tip token. Intrebari la care trebuie sa raspundem: Care este diferenta dintr-un cuvant si un token ? Difera prin lungimea lor ? Intotdeauna un cuvant va fi mai mare decat un token sau nu? Avem cazuri particulare sau nu ? Daca da ,cateva exemple. Din gruparea de token-uri, care este tokenul cu lungimea cea mai mica ? Are vreo implicatie cea mai mica lungimea a unui token ? Exemple de analizat in continuare. 1)Ana are mere. 2)Ana are mere... 3)Are Ana mere ? 4)De ce Ana are mere ?! 5)Ano, vine-o odata, ca s-au terminat merele. 6) In limba romana, "mere" si "pere" difera de mere si pere in functie de context. Daca in cazurile 1, 3 regula ar fi ca un token = semn de punctuatie(adica lungimea sa este egala cu 1), in cazul 2 avem cele trei puncte de suspensie care fac un token(lungimea maxima token egala cu 3), in cazul 4 deja avem semnul interbari urmat de cel al exclamarii (deci lungime maxima token =2) Insa intersant este cazul 6, unde ai guparea virgula, spatiu-ghilimele care formeaza cel mai mare token(de lungime 3) Sau cazul 5 , unde ai cratima ca token exact in "mijlocul" cuvantului. Edited by YalFa, 21 June 2021 - 11:54. |
#6
Posted 21 June 2021 - 12:07
Pai bun, si ce ar trebui sa fac cu semnele de punctuatie?
|
#8
Posted 21 June 2021 - 12:25
Urmareste cu un depanator ce se intampla in functia numar_cuvinte(), ca am impresia ca e total aiurea. Fara a fi executat codul, cred ca tot a doua litera a aceluiasi cuvant e numarata drept cuvant separat si cuvinte de o singura litera sunt omise, exceptie daca e la sfarsit de tot. In numar_litere() excluzi spatiul din multimea literelor, dar orice alt semn de punctuatie sau cifra le numeri ca litere.
Edited by sags, 21 June 2021 - 12:25. |
#9
Posted 21 June 2021 - 13:32
sags, on 21 iunie 2021 - 12:25, said:
Urmareste cu un depanator ce se intampla in functia numar_cuvinte(), ca am impresia ca e total aiurea. Fara a fi executat codul, cred ca tot a doua litera a aceluiasi cuvant e numarata drept cuvant separat si cuvinte de o singura litera sunt omise, exceptie daca e la sfarsit de tot. In numar_litere() excluzi spatiul din multimea literelor, dar orice alt semn de punctuatie sau cifra le numeri ca litere. Nu vad sa fie o problema acolo. |
#10
Posted 21 June 2021 - 13:36
YalFa, on 21 iunie 2021 - 11:50, said:
Intrebari la care trebuie sa raspundem: Care este diferenta dintr-un cuvant si un token ? Difera prin lungimea lor ? Intotdeauna un cuvant va fi mai mare decat un token sau nu? Avem cazuri particulare sau nu ? Daca da ,cateva exemple. Din gruparea de token-uri, care este tokenul cu lungimea cea mai mica ? Are vreo implicatie cea mai mica lungimea a unui token ? Solutia propusa de tine este eleganta si as avea doar o mica precizare/raspuns la toate intrebarile tale: se considera cuvant cel care incepe si se termina cu o litera (poate fi si aceeiasi). De aici incolo, sunt doar linii de cod, strategia o ai deja de la YalFa. |
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users