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 |
[wellcode] Analiza unui inceput prost
Last Updated: Feb 22 2021 15:59, Started by
MarianG
, Feb 18 2021 00:16
·
0
#1
Posted 18 February 2021 - 00:16
Scriu acest articol din considerente didactice, dar si datorita tendintei crescute privind numarul de topice ce apar cu probleme de pe acest site.
Petru (mentor si fondator wellcode) mi-a aparut intr-o reclama de pe YouTube amintidu-mi ca am cont, dar totodata sugerand (in linii mari) ca o sa ne invete sa scriem cod asa cum vorbim limba romana. Challenge Accepted. intru in cont, verific problemele propuse si imi dau seama ca matematica este echivalenta cu limba romana. Eu nu sunt academician, si nici nu lucrez in domeniu, ca atare pot fi candidatul ideal. Ce am gasit si ce ma deanjeaza o sa prezint in posturile urmatoare; mai exact problemele prezentate, rezolvarile asteptate. Denumirea variabilelor: https://learn.wellco...e/variabile-int Prezentarea este concisa si exemplele pertinente pentru a oferi suport prezentarii. Desi se incepe bine, apoi se incurajeaza repetat, mecanic, folosirea unor denumiri abstracte gen a, b, i, x, z. Pai ce e gresit cu asta? - o sa va intrebati. Am promis ca vorbim limba romana. Plus ca vorbind "matematica" in loc de limba romana ne pierdem in litere. Efectiv, pe masura ce avansam in "tutorial" ramanem la stadiul de litere. Ana are mere: https://learn.wellco...riabile-afisare Ce este corect este corect. Dar de ce nu se poate mai des ? Quote #include <iostream> using namespace std; int main() { int mere = 3; cout << "Ana are " << mere << " mere!"; return 0; }Ana are 3 mere Introducerea in matematica: https://learn.wellco.../page/operatori Din nou, exemplele sunt pe aproape bune. Ce e gresit? Pare ok, NU? Pai de ce sa scriem ingramadit si sa amestecam varibile initializate cu variabile neinitilizate pe aceiasi linie ? Mai mult, de ce sa initializam doua varibile pe aceiasi linie? Acest stil de a lucra neordonat este motivul pentru care deseori apar probleme. Apreciez totusi folosirea unui variabile terte, rezultat (pentru ca "limba romana"). |
#2
Posted 18 February 2021 - 00:51
#1 Adunare
https://learn.wellcode.ro/page/adunare Prima linie se afla doua numere, dar cine decide ca sunt a si b? Ne uitam la umbra (masca) solutiei oficiale si facem presupuneri. #include <iostream> using namespace std; int main(){ █████████9 caractere; int a, b; ██████████████14 caractere; cin >> a >> b; ██████████████14 caractere; cout << b + a; return 0; } De ce nu se in curajeaza folosirea variabilelor "rezultat" sau "calcul" in rezolvarea problemelor, dar se incurajeaza "a" si "b"? Sunt doua numere intregeri, primul_numar si al_doilea_numar O sa spuneti ca este doar o adunare si ca ce rost are. Pai in clasa intai am inceput cu bastonase, si alea erau doar o linie. Linie cu linie se umple un caiet, respectiv linie cu linie se scrie un program. De ce am alege sa nu comunicam ce reprezinta aceste variabile. int main(){ int primul_numar; int al_doilea_numar; cin >> primul_numar; cin >> al_doilea_numar; int main(){ int primul_numar; int al_doilea_numar; cin >> al_doilea_numar; cin >> primul_numar;Intre aceste doua coduri este evident care din ele respecta modul de gandire. #2 Calcul https://learn.wellcode.ro/page/calcul #include <iostream> using namespace std; int main(){ Quote █████████ int a, b;Si iarasi, nu avem o variabila terta care sa memoreze rezultatul. Oare ce se intampla cand cineva are o dificultate si posteaza pe forum o asemenea problema ? Quote Cum se implemnteaza (a - b) ? Quote ████████████████████████████████ toata matematica pe aceiasi linie cu cout Pai e frumos asa ? int primul_numar; int al_doilea_numar; int cubul_diferentei; int diferenta; cin >> primul_numar; cin >> al_doilea_numar; diferenta = primul_numar - al_doilea_numar; cubul_diferentei = diferenta * diferenta * diferenta; |
#3
Posted 18 February 2021 - 01:14
#3 Like
https://learn.wellcode.ro/page/like Nu dragii mei, de la tastatura se vor citi numar_likeuri si numar_postari. int main() { int numar_postari, numar_likeuri, total_likeuri; cin >> numar_postari; cin >> numar_likeuri; total_likeuri = numar_postari * numar_likeuri; cout << total_likeuri << endl; return 0; } int main() { int a, b; cin >> a >> b; cout >> a * b; return 0; } Un program sec care nu spune nimic despre problema ceruta. Ceea ce ar fi fost super ok daca cerinta era pur matematica "afisati produsul a doua numere citite de la tastatura". |
#4
Posted 18 February 2021 - 01:32
#4 Cutii
https://learn.wellcode.ro/page/cutii Repetitia este mama invataturii, iar wellcode va incurajeaza sa scrieti in mod repetat "a si b", desi in "teorie" ni s-a spus ca variabilele pot avea orice* nume. De ce ne-am obosit sa ne imagimam cutiile si cadourile ca la final sa avem probleme de matematica ? int total_cadouri; int cadouri_per_cutie; int cadouri_ramase; cin >> total_cadouri; cin >> cadouri_per_cutie; cadouri_ramase = total_cadouri % cadouri_per_cutie; if (cadouri_ramase){ cout << "imposibil" ; } else { cout << "posibil"; } variabila "cadouri_ramase" sugereaza ca operatia de dupa egal trebuie sa ofere un rest, Se intampla ca avem un operator numit modulo care ne ofera restul impartirii a doi termeni |
#5
Posted 18 February 2021 - 01:57
#5 Pitagora
https://learn.wellco...o/page/pitagora Nici la matematica (geometrie) nu ne mai pricepem. Desi va amintiti, "vorbim limba romana". Quote Din Teorema lui Pitagora reiese că în orice triunghi dreptunghic, suma pătratelor lungimilor laturilor alăturate unghiului drept (catetelor) e egală cu pătratul lungimii laturii opuse (ipotenuzei). (cateta12 + cateta22 = ipotenuza2) Si atunci de ce nu "citim" #include <iostream> using namespace std; int main() { int cateta1, patratul_catetei1; int cateta2, patratul_catetei2; int suma_patratelor_catetelor; int ipotenuza, patratul_ipotenuzei; bool conditie; cin >> cateta1; cin >> cateta2; cin >> ipotenuza; patratul_catetei1 = cateta1 * cateta1; patratul_catetei2 = cateta2 * cateta2; suma_patratelor_catetelor = patratul_catetei1 + patratul_catetei2; patratul_ipotenuzei = ipotenuza * ipotenuza; conditie = (suma_patratelor_catetelor == patratul_ipotenuzei); // if (conditie) { } else { } return 0; } Este overkill ? Probabil ! Este alternativa un lucru pe care un incepator l-ar intelege foarte usor ? if ((a*a)+(b*b) == (c*c)) { Se pot folosi operatiile pe care le-au prezentat in tutorial? de genul a*=a Desigur, dar care este graba ? |
#6
Posted 18 February 2021 - 02:22
#6 FizzBuzz
https://learn.wellco...o/page/fizzbuzz Si iarasi suntem incurajati sa folosim variabile sterile de lungime 1 caracter. |
#7
Posted 18 February 2021 - 02:55
#8 Crescator2
https://learn.wellco...page/crescator2 Desi solutia este eficienta nu prezinta nimic nou, pastrand tendinta de a folosi variabile "de o litera" |
#8
Posted 18 February 2021 - 03:48
#9 Crescător 3
https://learn.wellco...page/crescator3 Aici se asteapta la o multime de combinatii folosind if-uri, fara a urmari o schema logica. De exemplu, daca am rezolvat problemele precedente folosind subprograme, pana acum am fi avut: - un program care primeste doua numere si ne ofera maximul (#7) - un program care primeste doua numere si ne ofera minimul (#8) Ce ne ramane de facut ? Sa determinam numarul mijlociu si sa afisam numerele dupa formatul mentionat. mic = min( min(primul_numar, al_doilea_numar), al_treilea_numar); mare = max( max(primul_numar, al_doilea_numar), al_treilea_numar); mijlociu = min( max(primul_numar, al_doilea_numar), al_treilea_numar); cout << mic << " " << mijlociu << " " << mare << endl; Si testam noi cateava seturi de numere si "admitem" ca l-am rezolvat si pe asta. Dar ne-am fi inselat; Asa ca mutam logica si afisarea intr-un alt subprogram care primeste 3 numere void sorteaza(int x, int y, int z)Vai, dar ce-am facut ? Pai este destul de clar, avem o functie care sorteaza 3 numere intregi, si sunt argumente nu variabile. void sorteaza(int x, int y, int z){ int mic, mare, mijlociu; mic = min( min(x,y), z ); mare = max ( max(x,y), z); mijlociu = min ( max(x,y), z); cout << mic << " " << mijlociu << " " << mare << endl; } int main(){ // declara // citeste sorteaza(primul_numar, al_doilea_numar, al_treilea_numar); sorteaza(primul_numar, al_treilea_numar, al_doilea_numar); return 0; }Executam si verificam daca rezultatul este cel asteptat, in mare parte va fi, pana cand ca "din oarece motive", desi numerele sunt distincte, maximul este egal cu mijlociul. Moment in care ne gandim cum modificam "formula" pentru determinarea numarului mijlociu. sorteaza(primul_numar, al_doilea_numar, al_treilea_numar); sorteaza(primul_numar, al_treilea_numar, al_doilea_numar); sorteaza(al_doilea_numar, primul_numar, al_treilea_numar); sorteaza(al_doilea_numar, al_treilea_numar, primul_numar); sorteaza(al_treilea_numar, primul_numar, al_doilea_numar); sorteaza(al_treilea_numar, al_doilea_numar, primul_numar); |
#9
Posted 18 February 2021 - 07:38
Marian, chiar daca se spune ca oricine poate invata programare, realitatea arata ca nu e chiar asa. Trebuie un anumit tip de gandire logica care o ai sau nu o ai. Desigur, se pot invata instructiunile unui limbaj, se pot lua exemple si se pot rula dar, pentru a crea (programarea este munca creativa), pentru a putea face legaturile intre diverse lucruri invatate de-a lungul timpului pentru o soutie particulara, pentru a intelege cum transpui o problema in cod mai ai nevoie de acel ceva... Nu e chiar asa simplu. Am vazut asta de multe ori inclusiv la persoane care au terminat facultati tehnice (presupui ca au o gandire mai analitica) dar nu reuseau sa inteleaga chestii simple. Si am vazut asta la persoane care au terminat arhitectura si se prindeau imediat cum trebuie sa transpuna o problema in cod. Pur si simplu intelegeau.
Sa iti dau un simplu exemplu de intelegere (nu am timp sa disec toate posturile): int variabila_mea, alta_variabila, litereMariSiMici; in multe limbaje se foloseste notatia Camel Case. Adica, atunci cand numele unei variabile este compus din mai multe cuvinte, primul cuvant incepe cu litera mica apoi toate celelalte incep cu litera mare. e.g. counter -> un singur cuvant, toate litere mici indexOnProductsTable -> mai multe cuvinte, primul incepe cu litera mica restul cu litera mare. Edited by jm2010, 18 February 2021 - 07:39. |
#11
Posted 18 February 2021 - 09:08
MarianG, on 18 februarie 2021 - 00:16, said: Quote
De exemplu dacă ți se spune că programul tău va citi un număr, iar în rubrica de restricții se spune că numărul nu va fi niciodată mai mare decât 100, atunci înseamnă că programului tău îi va fi dat tot timpul un număr mai mic sau egal cu 100 atunci când este testat de către noi. Restrictia este o masura care limiteaza un aspect, si este datoria celui care scrie cod sa o implementeze. |
#12
Posted 18 February 2021 - 09:13
Si de ce nu le-a numit garantii ?
Poate pentru ca zilele astea al nostru coleg avea dreptate referitor la limba in care trebuie sa inveti programare. Scrii programul, si daca il folosesti in alta parte il ai fara restrictii. In viata reala e si mai delicat, nimeni nu-ti garanteaza input curat. Iar acest mediu academic te invata sa ignori restrictiile si sa te bazezi pe vorbe. Mie legea nu-mi garanteza ca masinile se opresc la semafor. Edited by MarianG, 18 February 2021 - 09:24. |
#13
Posted 18 February 2021 - 10:39
MarianG, on 18 februarie 2021 - 09:13, said:
Mie legea nu-mi garanteza ca masinile se opresc la semafor. Daca ai 3 ani, mama si tata iti spun ca e rosu pentru noi si stam sa se faca verde. Cand se face verde pentru noi e rosu pentru masini si ele stau. Pe la 10 ani inveti ca e bine sa te uiti de 10 ori si sa nu presupui ca aia se opresc, chiar daca e rosu. Ei te-nvata cu exemplele lor ca pentru 3 ani. Daca e bine sau e rau ca te-nvata asa, asta poate fi dezbatut. De-asta sunt sute de carti/cursuri cu invatati programare. Fiecare are nivelul ei/lui si i se potriveste mai bine o metoda sau alta. Daca nu ai mai avut nici o experienta cu programarea si esti la inceputul inceputului sunt foarte bune exemplele. Fi-mea (10 ani) face fix probleme de genul asta. Inputul este clar, marginit, cu teste automate, te-nvata sa te uiti la boundary conditions, e ok! Daca vrei sa devii productiv repede sau ai mai avut experiente cu programarea prin scoala sau te duce capul, poti sa treci un pic mai repede. Mi se pare important ca fiecare sa mearga in ritmul lui de intelegere. |
#14
Posted 18 February 2021 - 11:10
#15
Posted 18 February 2021 - 11:19
MarianG, on 18 februarie 2021 - 09:13, said:
Si de ce nu le-a numit garantii ? Poate pentru ca zilele astea al nostru coleg avea dreptate referitor la limba in care trebuie sa inveti programare. Scrii programul, si daca il folosesti in alta parte il ai fara restrictii. In viata reala e si mai delicat, nimeni nu-ti garanteaza input curat. Iar acest mediu academic te invata sa ignori restrictiile si sa te bazezi pe vorbe. Mie legea nu-mi garanteza ca masinile se opresc la semafor. De obicei cand iti spune ca e maxim 100 sau maxim un anumit numar, de fapt iti da un hint ca poti folosi structuri asignate de la inceput de fixed size. Spre exemplu faci un bitset de 100 ca sa economisesti spatiu. Evident ca acea solutie nu s-ar preta la un exemplu in realitate unde poti primi un numar de 6 cifre sau 234 de cifre. E doar mediul academic si restrictiile/garantiile astea te forteaza sa te gandesti si sa optimizezi solutia. Mediul academic != lumea reala |
|
#16
Posted 18 February 2021 - 11:27
Si unde sunt aceste solutii optimizate pe site-ul wellcode ?
Eu n-am dedus solutie oficiala care sa fie optimizata. |
#17
Posted 18 February 2021 - 11:45
de ce este atat anevoios sa invatam lumea cu
if (out_of_bounds(value)) { return EXIT_FAILURE ;} |
#18
Posted 18 February 2021 - 11:58
Nenea Zap, on 18 februarie 2021 - 11:19, said: E doar mediul academic si restrictiile/garantiile astea te forteaza sa te gandesti si sa optimizezi solutia. Lucru care-si are sensul... la inceput, cand abia reusesti sa scrii un programel de trei linii. Nenea Zap, on 18 februarie 2021 - 11:19, said: Mediul academic != lumea reala Ma intreb insa daca nu cumva alte medii academice or fi o idee mai OK. Edited by TS030, 18 February 2021 - 11:59. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users