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 |
Exercitiu programare din clasa a 9-a
Last Updated: Oct 19 2018 18:25, Started by
NHT
, Oct 18 2018 10:27
·
0
#1
Posted 18 October 2018 - 10:27
Salut, am nevoie de putin ajutor pt cls a 9-a. (chiar daca momentan ei fac doar pseudocod). Ultima data cand am facut programe in pascal a fost acum vreo 30 de ani Rog pe cine are timp, sa ma lumineze si daca se poate cu explicatii. Multumesc anticipat.
in alta ordine de idei, va rog sa-mi spuneti daca gasesc un site in romana care sa aiba forum de incepatori sau probleme rezolvate. Se da un nr de 3 cifre si trb sa se genereze cel mai mare numar care contine aceleasi cifre. #include <iostream> using namespace std; int main() { int a; //numarul de introdus int i; // variabila pr spargerea in matrice cout << "Introduceti un numar din trei cifre: " << endl; cin >> a; int matrice [3]; for (int i = 2; i >= 0; i--) { matrice[i] = a % 10; a /= 10; } /* if ((matrice[0] > matrice[1]) && (matrice[0] > matrice[2]) && (matrice[1] > matrice[2])) { cout << "Cel mai mare numar cu aceleasi cifre este: " << matrice[0] << matrice[1] << matrice[2] << endl; } if ((matrice[0] > matrice[1]) && (matrice[0] > matrice[2]) && (matrice[2] > matrice[1])) { cout << "Cel mai mare numar cu aceleasi cifre este: " << matrice[0] << matrice[2] << matrice[1] << endl; } if ((matrice[1] > matrice[0]) && (matrice[1] > matrice[2]) && (matrice[0] > matrice[2])) { cout << "Cel mai mare numar cu aceleasi cifre este: " << matrice[1] << matrice[0] << matrice[2] << endl; } if ((matrice[1] > matrice[0]) && (matrice[1] > matrice[2]) && (matrice[2] > matrice[0])) { cout << "Cel mai mare numar cu aceleasi cifre este: " << matrice[1] << matrice[2] << matrice[0] << endl; } if ((matrice[2] > matrice[0]) && (matrice[2] > matrice[1]) && (matrice[1] > matrice[0])) { cout << "Cel mai mare numar cu aceleasi cifre este: " << matrice[2] << matrice[1] << matrice[0] << endl; } if ((matrice[2] > matrice[0]) && (matrice[2] > matrice[1]) && (matrice[0] > matrice[1])) { cout << "Cel mai mare numar cu aceleasi cifre este: " << matrice[2] << matrice[0] << matrice[1] << endl; } */ //////algoritm de sortare/////// int temp; // variabila pentru permutarea termenilor in matrice for (i = 0; i < 2; i++) { do { temp = matrice[i]; // lui temp i se atribuie val de la i matrice[i+1] = matrice[i]; //se muta val de la i+1 la i matrice[i+1] = temp; // la i+1 se scrie valoarea lui temp } while (matrice[i+1] > matrice[i]); } for (i = 0; i < 2; i++) { cout << matrice[i]; } return 0; } |
#2
Posted 18 October 2018 - 11:25
Dar eu nu inteleg ce vrei.Doresti validarea programului de mai sus ? sau conversia lui in pascal ?
Quote
Se da un nr de 3 cifre si trb sa se genereze cel mai mare numar care contine aceleasi cifre. se da : 123 sa rezulte 999999999(n)..........123 ? => cu o lungime de : sizeof(BIGINT) - 3 ? Edited by puiu_pe_diezel, 18 October 2018 - 11:29. |
#3
Posted 18 October 2018 - 12:53
scuze, graba... vreau sa-l fac sa mearga in c++, asta o sa faca la scoala.
Edited by NHT, 18 October 2018 - 12:54. |
#4
Posted 18 October 2018 - 13:09
sunt mai multe greseli...in alg de sortare, "do" e in afara ciclului for, "matrice[i+1] = matrice[i]; //se muta val de la i+1 la i" ai inversat i cu "i+1"
|
#5
Posted 18 October 2018 - 14:03
1. Șterge partea comentată, cea cu if-uri. Nu folosește la nimic și îngreunează la citirea codului.
2. Ai un șir cu 3 elemente. Iterează prin el până la ultimul element, nu doar prin primele două, cînd îl afișezi. for (i = 0; i < 3; i++) 3. Algoritmul de schimbare de elemente în șir e greșit, atribui valoarea lui matrice[i] de 2 ori - și la temp și la matrice[i+1]. 4. Algoritmul de sortare e greșit, bucla do... while nu face altceva decât să interschimbe fix 2 elemente din șir, dacă al doilea e mai mare ca primul ( e de fapt un if deghizat în do..while) O soluție ar fi să înlocuiești bucla cu un alt for, care iterează prin șir pornind de la i+1: for (j = i + 1; j < 3; j++) { // intershimbi matrice[i] cu matrice[j] dacă matrice[j] > matrice[i] } Ideea cu care ai pornit e bună, obții cifrele din număr și le pui în șir, apoi încerci să sortezi șirul descrescător. Edited by pexCom, 18 October 2018 - 14:07. |
#6
Posted 18 October 2018 - 14:06
NHT, on 18 octombrie 2018 - 10:27, said:
Salut, am nevoie de putin ajutor pt cls a 9-a. (chiar daca momentan ei fac doar pseudocod). Ultima data cand am facut programe in pascal a fost acum vreo 30 de ani Rog pe cine are timp, sa ma lumineze si daca se poate cu explicatii. Multumesc anticipat. in alta ordine de idei, va rog sa-mi spuneti daca gasesc un site in romana care sa aiba forum de incepatori sau probleme rezolvate. dar pentru probleme rezolvate trebuie munca. |
#7
Posted 18 October 2018 - 16:17
#9
Posted 19 October 2018 - 18:25
Fiind vorba de doar 3 cifre, codul poate fi foarte simplu:
#include <algorithm> #include <iostream> int main() { unsigned int numar; std::cin >> numar; unsigned int cifre[3] = { numar / 100, (numar % 100) / 10, numar % 10 }; //exemplu 123 if (cifre[2] > cifre[1]) std::swap(cifre[2], cifre[1]); //132 if (cifre[1] > cifre[0]) std::swap(cifre[1], cifre[0]); //312 if (cifre[2] > cifre[1]) std::swap(cifre[2], cifre[1]); //321 std::cout << "Cel mai mare numar gasit: " << (cifre[0] * 100 + cifre[1] * 10 + cifre[2]); } |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users