Neurochirurgie minim invazivă
"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv. Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice. www.neurohope.ro |
Problema la informatica
Ultima postare: oct 31 2017 20:03, Inițiat de
Luk1152
, oct 28 2016 20:22
·
0
#1
Publicat: 28 octombrie 2016 - 20:22
M-am uitat putin prin cartea de informatica (sunt in a 9-a) si am dat de problema asta de info prin carte:
La un concurs, comisia de notare este formata din n membri. Sa se scrie algoritmul de calcul al mediei, stiind ca nota cea mai mica si nota cea mai mare nu sunt luate in considerare la calcularea mediei. Am incercat sa o rezolv dar nu am reusit . Problema e facuta in Python 2.7.12, dar nu cred ca are relevanta. n = int(raw_input("n= ")) x = int(raw_input("> ")) minim = x maxim = x S = 0 nrNumbers = 1 for i in range (1,n): x = int(raw_input("> ")) if x > maxim: maxim = x elif x < minim: minim = x else: S += x nrNumbers += 1 print "Media este {}." .format(S/nrNumbers) Problema ar fi ca atunci cand valoarea lui n = 5, sa zicem, si introduc 0, 1, 2, 3 si 4 se modifica maximul. Si eu as vrea sa il aflu abia la final. Adica pentru numerele astea da eroarea ZeroDivisionerror: integer division or modulo by zero pentru mereu maximul se modifica, si ar trebui sa dea 6/3 adica 2... As vrea doar ideea (fara sa ma folosesc de nu stiu ce functii gen max() ), nu trebuie neaparat in Python. Va multumesc . Editat de Luk1152, 28 octombrie 2016 - 20:35. |
#3
Publicat: 28 octombrie 2016 - 21:04
public int medie(int[] note) { int medie = 0; int notaMinima = note[0]; int notaMaxima = note[0]; for(int i=0;i<note.length;i++){ if(notaMinima < note[i]) { notaMinima = note[i]; } if(notaMaxima > note[i]) { notaMaxima = note[i]; } medie += note[i]; } medie = (medie-notaMaxima-notaMinima) / (note.length - 2); return medie; } ca si exercitiu: - adapteaza programu sa suporte numere cu virgula - pune conditii pentru cazurile in care numarul de note e: 2, 0 - desi iti creste complexitatea, re-implementeaza folosind o sortare inainte, asa cum a sugerat dani Editat de puya4ever, 28 octombrie 2016 - 21:09. |
#5
Publicat: 28 octombrie 2016 - 22:29
Nope,
nu e nevoie de sortare, Citești toate numerele și faci suma tuturor numerelor introduse, În bucla în care faci citirea determini și maximul și minimul, La final din suma calculată anterior scazi maximul și minimul și împarți la (n-2). Tu în algoritmul anterior nu efectuezi corect suma, nu aduni nici numerele care sunt la un moment dat maxime sau minime. |
#7
Publicat: 29 octombrie 2016 - 00:21
Koal, on 28 octombrie 2016 - 22:29, said:
Citești toate numerele și faci suma tuturor numerelor introduse, În bucla în care faci citirea determini și maximul și minimul, minimul il initializezi cu 11 sa zicem si maximul cu -1 , daca sunt note dela 1 la 10 Editat de VladBtz, 29 octombrie 2016 - 00:21. |
#9
Publicat: 29 octombrie 2016 - 18:59
Anunturi
▶ Utilizatori activi: 1
0 membri, 1 vizitatori, 0 utilizatori anonimi