Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone

Monede JO 2024

Suprasolicitare sistem electric
 CIV auto import

Mutare in MOZAMBIC - pareri, expe...

Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...
 Cumparat/Locuit in apartament si ...

Pot folosi sistemul PC pe post de...

Sokol cu distorsiuni de cross-over

Filtru apa potabila cu osmoza inv...
 Kanal D va difuza serialul “...

Upgrade xiaomi mi11

securitate - acum se dau drept - ...

Farmacia Dr Max - Pareri / Sugest...
 

C ++ Triunghi- Problema

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

#19
OriginalCopy

OriginalCopy

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

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

View PostPlatonX, on 15 mai 2018 - 14:21, said:

As crea un array bidimenional si as aloca un numar de spatii pentru fiecare element: Daca N = 124, voi crea un array de dimeniunea 124c124 si pentru fiecare element array[i][k] voi aloca un numar de 3 spatii pt ca N are 3 cifre. Apoi, as inlocui numarul de spatii corespunzator: Daca array[i][k] = 2,  elementul "   " se va inlocui cu "2  ", daca este 12 se va inlcui cu "12 ".
Overkill. Tot ce e suficient sa stii e numarul de cifre al primului numar, cel mai mare, adica N.

E o chestiune de prezentare a datelor. Nu vrei sa amesteci algorimica pura, manipularea de date, cu prezentarea acestora.

#20
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,741
  • Înscris: 13.09.2009

View PostOriginalCopy, on 15 mai 2018 - 14:24, said:

Overkill. Tot ce e suficient sa stii e numarul de cifre al primului numar, cel mai mare, adica N.
Da, asa este. Mi s-a mai intamplat sa incep cu o idee si pe masura ce am implementat-o sa imi vina o idee mai buna derivata din prima.
Nu mai este nevoie de un array bidimensional, este nevoie de un check la fiecare afisare: verific numarul de cifre din care este compus numarul pe care trebuie sa il afisez.

#21
andreim77

andreim77

    Senior Member

  • Grup: Senior Members
  • Posts: 4,235
  • Înscris: 11.04.2006
Asta e si ideea la inceput, mai multe solutii pt aceeasi problema. Nu solutia optima din prima. Astea-s pt genii necuprinse care noi nu e.

Edited by andreim77, 15 May 2018 - 15:16.


#22
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,741
  • Înscris: 13.09.2009

View Postandreim77, on 15 mai 2018 - 15:16, said:

Asta e si ideea la inceput, mai multe solutii pt aceeasi problema. Nu solutia optima din prima. Astea-s pt genii necuprinse care noi nu e.
Oare geniile chiar reusesc din prima sau si ei incearca mai multe variante pana le iese varianta geniala ?

#23
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,440
  • Înscris: 10.08.2005
geniile nu resuesc din prima, ci pas cu pas, TDD
dar pentru asta e nevoie de cod curat

Edited by MarianG, 15 May 2018 - 15:29.


#24
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,741
  • Înscris: 13.09.2009

View PostMarianG, on 15 mai 2018 - 15:29, said:

geniile nu resuesc din prima, ci pas cu pas, TDD
dar pentru asta e nevoie de cod curat
Pai ei scriu din prima cod curat ?

Edited by PlatonX, 15 May 2018 - 16:54.


#25
andreim77

andreim77

    Senior Member

  • Grup: Senior Members
  • Posts: 4,235
  • Înscris: 11.04.2006
eram ironic la posturile repetate care oferii solutii-panaceu (universal! :P) poleite cu termeni care-mi aduc aminte de limbajul hipsteresc.

#26
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,741
  • Înscris: 13.09.2009

View Postandreim77, on 15 mai 2018 - 17:16, said:

eram ironic la posturile repetate care oferii solutii-panaceu (universal! Posted Image) poleite cu termeni care-mi aduc aminte de limbajul hipsteresc.
Am avut o conceptie despre perfectiune, dar incep sa inteleg ca de fapt nu exista perfectiune pentru ca evolutia este infinita in complexitate si diversitate (altfel nu ar fi evolutie). Nu exista solutie perfecta la o problema pentru ca perfectiunea implica lipsa evolutiei - ceva perfect nu mai evolueaza.

#27
andreim77

andreim77

    Senior Member

  • Grup: Senior Members
  • Posts: 4,235
  • Înscris: 11.04.2006
Dea!

#28
OriginalCopy

OriginalCopy

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

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Domnu', eu nu m-am legat de asta

View Postandreim77, on 14 mai 2018 - 15:56, said:

afiseaza si tu cate o linie doua si vezi ce iese din aproape in aproape, uneori prinzi ideea din zbor...adica pe parcurs.
pentru ca e un sfat decent.

Nu stiu unde vezi genii in sfaturile mele, sunt lucruri practice. Visezi prea mult hipsteri. Mai calmeaza-te, ca mai e si alta lume normala care incearca sa ii inspire pe incepatori. Nu imi doresc sa discut cu tine in stil mosotist pentru ca nu cred ca meriti asta.

#29
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004

View PostOriginalCopy, on 16 mai 2018 - 19:23, said:

Nu imi doresc sa discut cu tine in stil mosotist pentru ca nu cred ca meriti asta.
No, domnu programator adevarat, da ce-ti veni? N-ai memuizat destul prima linie? Stii vorba aia din batrini: un memuizat la vremea ei face cit zece fomei Posted Image

Anyway, pentru cei mai putin obisnuiti cu cuvinte complicate, cum ar fi "memuizare", ce a vrut programatoru adevarat sa zica este ca in loc sa faci loop in loop si sa tiparesti cit un numar poate se poate o tira altfel. De exemplu, daca am memuiza prima linie intr-un string, am putea apoi sa facem un loop separat si doar sa afisam portiuni din string, care deja contine toate informatiile necesare.

#include <iomanip>
#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int getFieldWidth(int n)
{
  int length = 1;

  while (n /= 10)
  {
	length++;
  }

  return length + 2;
}

string getMemuization(int n, int fieldWidth)
{
  ostringstream os;

  for (int i = n; i >= 1; --i)
  {
	os << setw(fieldWidth) << left << i;
  }

  return os.str();
}

void printMemuization(const string& memuization, int n, int fieldWidth)
{
  for (int i = 0; i < n; ++i)
  {
	cout << memuization.substr(i * fieldWidth) << endl;
  }
}

int main()
{
  cout << "Memuization v1.0" << endl;

  int n = 20;

  int fieldWidth = getFieldWidth(n);

  string memuization = getMemuization(n, fieldWidth);

  printMemuization(memuization, n, fieldWidth);
}


Edited by Mosotti, 16 May 2018 - 22:51.


#30
cata2472

cata2472

    Junior Member

  • Grup: Junior Members
  • Posts: 155
  • Înscris: 18.08.2020

View PostAlexandruRaboj, on 14 mai 2018 - 19:38, said:

#include <iostream>
using namespace std;
int main () {
int N; // Introduci variabila
   //( ca sa fie mai usor de inteles ii dam valoare de 5)
int M; // Intoducem variabila M ( variabila ajutatoare)
cin >> N ; //Citim  variabila N de la tastatura
while ( N > 0 ) { // In timp ce 5 > 0
M = N ;   // Si M = 5 rezulta ca 5=5
while ( M > 0){   // In timp ce  5 > 0
cout << M << " " ; // Afiseaza 5 "Spatiu" ( se trece la urmatorul rand)
--M ; // Scade 1 din M( din 5 ) si revin-o la linia 12
} // Si atunci 5 devine 4 urmand sa afiseze la linia 13 = 5 4 s.a.m.d
  // Pana M > 0 nu mai este adevarat si se trece la
  // urmatoarele instructiuni
std::cout << endl; // Trece pe randul urmator
--N ; // scade 1 din N  si revin-o la linia 10
} // pana N > 0 nu mai este adevarat
return 0; // Revin-o
}

O sa las asta aici poate se intelege mai bine pentru cei care cauta Posted Image . Multumesc tuturor pentru explicatii !
Salutare, pe aceasi metoda ai idee cum pot face ca la fiecare sfarsit de linie afisat sa mi se afiseze indicele liniei? adica pe prima lini daca n=5 atunci prima linie este 5 4 3 2 1 (1). Nu inteleg cum as scrie in cod o formula ca sa imi afiseze indicele liniei, acel (1) din paranteza care indica numarul liniei.

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