Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Incalzire casa fara gaz/lemne

Incalzire in pardoseala etapizata

Suprataxa card energie?!

Cum era nivelul de trai cam din a...
 probleme cu ochelarii

Impozite pe proprietati de anul v...

teava rezistenta panou apa calda

Acces in Curte din Drum National
 Sub mobila de bucatarie si sub fr...

Rezultat RMN

Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...
 Lucruri inaintea vremurilor lor

Discuții despre TVR Sport HD.

Cost abonament clinica privata

Tremura toata, dar nu de la ro...
 

[TEMA] afisare in console in forma de triunghi

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

#1
nicello

nicello

    Junior Member

  • Grup: Members
  • Posts: 91
  • Înscris: 15.11.2014
Deci, in primul rand vreau sa va urez o seara buna si sa va prezint "problemuta" mea, la care ma chinui de vreo 4 ore sa-i dau de cap, vreo 2 la scoala si 2 de cand am ajuns acasa, pe la 7 juma.
Bun deci Sa se afiseze sub forma de triunghi toate secventele mediane ale cuvantului pornind de la intregul cuvant, continuand cu cuvantul obtinut prin taierea primei si ultimei litere, apoi cu cuvantul rezultat prin eliminarea primelor si ultimelor doua litere s.a.m.d, pana la secventa alcatuita din caracterul sau cele doua caractere de mijloc.
Deci: Sa afisez de exemplu INFORMATICA apoi NFORMATIC apoi FORMATI si tot asa pana la M ( litera din mijloc ). Dar sa le afisez una sub alta sub forma de triunghi... Am reusit sa fac asta doar sub forma de triunghi dreptunghic, dar imi trebuie un triunghi normal adica M sa fie in acelasi loc, nu stiu cum sa va explic :( daca vrea sa ma ajute cineva, as fi foarte recunoscator.
O seara buna inca odata ! si multumesc.

#2
OriginalCopy

OriginalCopy

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

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Pune spatii inainte de substring.

Provocarea consta in gasirea relatiei matematice dintre 1. "cate spatii trebuie afisate",  2. lungimea initiala a cuvantului, 3. lungimea substringului curent.

#3
nicello

nicello

    Junior Member

  • Grup: Members
  • Posts: 91
  • Înscris: 15.11.2014
Nu exista si o alta metoda mai simpla? eu ma gandeam sa inlocuiesc primul si ultimul character cu SPATIU adica ceva gen s[i]=" "; dar nu imi iese... nu reusesc s-o implementez. Sau sa inlocuiesc primul character cu spatiu si pe ultimul sa-l elimin.
Poti te rog sa fi mai explicit cu varianta ta? ce inseamna substring? randul urmator?
Daca nu te superi, si daca nu sunt prea insistent, te rog Posted Image ma ajuta foarte mult daca reusesc s-o rezolv si inteleg.
Poti sa-mi arati o secventa de cod despre chestia asta? te rog, chiar si in pseudocod, il trec eu in c++, doar secventa asta, nu tot programul.
Nu-mi dau seama cum as putea adauga spatii.... trebuie sa adaug asta intr-o bluca for sau while ca trebuie prima data 1 spatiu apoi 2 3 si tot asa...
P.S: Sunt foarte mega ultra incepator, clasa a 10-a.Posted Image
P.S2: Imi cer scuze c-am incalcat vreo regula.Nu citisem regulamentul, si eram foarte grabit, pentru ca ma nenoroceste problema asta ( chiar daca o fi ea usoara ).

Edited by nicello, 21 May 2015 - 20:59.


#4
OriginalCopy

OriginalCopy

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

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

View Postnicello, on 21 mai 2015 - 20:52, said:

Poti te rog sa fi mai explicit cu varianta ta? ce inseamna substring? randul urmator?
Un string e un termen pentru "sir de caractere".

Analogii:

Multime -> submultime.
String -> substring.

Acum ghici ce inseamna "substring".

Nu exista alta varianta, asta e cea mai simpla.

View Postnicello, on 21 mai 2015 - 20:52, said:

Nu-mi dau seama cum as putea adauga spatii.... trebuie sa adaug asta intr-o bluca for sau while ca trebuie prima data 1 spatiu apoi 2 3 si tot asa...
Exact, asa trebuie sa faci.

Limita superioara a buclei o determini cu formula matematica despre care ti-am spus.

#5
nicello

nicello

    Junior Member

  • Grup: Members
  • Posts: 91
  • Înscris: 15.11.2014
Ok deci... uite varianta mea, ma rog ce-am reusit sa fac pana acum. Asta a fost usor.
while(strlen(a)>0)
  { cout<<a;
cout<<endl;
strcpy(a,a+1);
strcpy(a+strlen(a)-1,a+strlen(a));
}
Si am reusit sa afisez un triunghi dreptunghic.
Deci trebuie ca in fata acelui endl de la cout sa adaug cate un spatiu, dar nu-mi dau seama cum...
Am adaugat un spatiu dupa acel endl si mi-a afisat asta, dar nu e bine..... trebuie dat fiecare rand de sub NFORMATIC mai la dreapta... dar nu stiu cum, ma gandeam sa adaug un for dupa cout<<endl si sa afisez un spatiu dar nu sunt de la cat sa inceapa for-ul si la cat sa se termine...
http://postimg.org/image/yaevjcm9z/
Imi cer scuze daca sunt plictisitor Posted Image.
Si da stiu sunt si putin batut in cap Posted Image).
Am inteles ce inseamna substring

Edited by nicello, 21 May 2015 - 21:15.


#6
OriginalCopy

OriginalCopy

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

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

View Postnicello, on 21 mai 2015 - 21:06, said:

Deci trebuie ca in fata acelui endl de la cout sa adaug cate un spatiu, dar nu-mi dau seama cum...
Faci exact ce ai scris tu ca ai de facut: adaugi o noua bucla in acea bucla in care afisezi un numar de spatii x. Acel x il incrementezi la terminarea fiecarei iteratii a buclei mari, pe care o ai deja.

#7
nicello

nicello

    Junior Member

  • Grup: Members
  • Posts: 91
  • Înscris: 15.11.2014
Am reusit, multumesc Posted Image.
Asta imi dadea batai de cap
for (int i=1;i<=x;i++)
cout<<" ";
x++;
Dar pana la urma mi-a iesit. Ciudat e faptul ca daca ii pun accolade cicleaza, si din cate stiam eu, are nevoie de accolade, deoarece sunt 2 instructiuni in for... Eu o puneam cu accolade... si noroc ca mi-a venit sa le sterg Posted Image).
Multumesc inca odata:D
P.S: Banuiesc ca, din cauza acoladelor cicleaza pentru ca x-ul merge pana la o valoare foarte mare, ca alta explicatie nu-mi gasesc...

Edited by nicello, 21 May 2015 - 21:32.


#8
OriginalCopy

OriginalCopy

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

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

View Postnicello, on 21 mai 2015 - 21:29, said:

Am reusit, multumesc Posted Image.
Asta imi dadea batai de cap
for (int i=1;i<=x;i++)
cout<<" ";
x++;
Dar pana la urma mi-a iesit. Ciudat e faptul ca daca ii pun accolade cicleaza, si din cate stiam eu, are nevoie de accolade, deoarece sunt 2 instructiuni in for... Eu o puneam cu accolade... si noroc ca mi-a venit sa le sterg Posted Image).
Multumesc inca odata:D
P.S: Banuiesc ca, din cauza acoladelor cicleaza pentru ca x-ul merge pana la o valoare foarte mare, ca alta explicatie nu-mi gasesc...

Dupa cum ti-am spus: trebuie sa incrementezi x la sfarsitul iteratiei buclei mari. Daca tu puneai acele doua instructiuni intre bucle, fortai incrementarea sa fie in interiorul buclei mici, si astfel, bucla mica nu se mai termina niciodata - deoarece conditia era indeplinita mereu.

In termeni mai alesi, tu modificai loop invariant in interiorul buclei. Ori loop invariant trebuie sa ramana invariant (adica neschimbat), ca altfel nu mai e invariant.

Edited by OriginalCopy, 22 May 2015 - 07:39.


Anunturi

Bun venit pe Forumul Softpedia!

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