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 |
Cum folosesc o structura intr-un header?
Last Updated: Dec 15 2017 23:21, Started by
g0dafk
, Dec 15 2017 11:23
·
0
#1
Posted 15 December 2017 - 11:23
Am declarat o structura:
struct elev{ char nume[10]; char prenume[10]; int minute = 0, secunde = 0; }; Si vreau s-o folosesc intr-un header, sa fac o functie care citeste elevii de la tastatura, dar nu-mi recunoaste tipul meu de date elev. void CitireElevi(elev v[], int n) Il subliniaza cu o linie rosie... Am mai adaugat si niste variabile care la fel, nu imi sunt vazute in afara fisierului source.cpp. De exemplu vreau sa folosesc o variabila declarata in source.cpp in header.cpp unde am o functie. source.cpp: #include <iostream> using namespace std; int barem_minute = 4; struct elev { char nume[10]; char prenume[10]; int minute = 0, secunde = 0; }; int main() { elev v[20]; int n = 5; void CitireElevi(elev v[], int n); void AfisareElevi(elev v[], int n); } header.h: #pragma once #include <iostream> using namespace std; void CitireElevi(elev v[], int n); void AfisareElevi(elev v[], int n); header.cpp: #include "Header.h" void CitireElevi(elev v[], int n) { for (int i = 0; i < n; i++) { cout << "Nume elev: "; cin >> v[i].nume; cout << "Prenume elev: "; cin >> v[i].prenume; cout << "Minute: "; cin >> v[i].minute; cout << "Secunde: "; cin >> v[i].secunde; } } void AfisareElevi(elev v[], int n) { for (int i = 0; i < n; i++) { if (v[i].minute > barem_minute && v[i].secunde > barem_secunde) { } } } Edited by g0dafk, 15 December 2017 - 11:52. |
#2
Posted 15 December 2017 - 12:25
de unde vrei sa stie compilatorul ce-i aia "elev" atunci cand proceseaza fisierul header.h ?
pune structura intr-un .h si include-l atat in header.h cat si in header.cpp, astfel incat compilatorul sa stie ce vrei sa faci |
#3
Posted 15 December 2017 - 12:42
Mersi, am facut asta si acum programul ruleaza doar ca... imi afiseaza Press any key to continue...
|
#4
Posted 15 December 2017 - 12:49
Pentru ca tu in main declari niste functii, nu le apelezi pe cele existente.
|
#5
Posted 15 December 2017 - 12:53
Pai trebuie si sa creezi o functie main care va fi executata prima data:
int main(void) { printf("hi hjk"); return 0; } in functia main introduci codul de citire a elevilor. Am creat un program in Pelles C: Class1.h: typedef struct _elev *elev; void CitireElev(elev v); Class1.c #include <stdio.h> #include <windows.h> #include <commctrl.h> #include <Class1.h> struct _elev { char nume[10]; char prenume[10]; int minute, secunde; }; void CitireElev(elev v) { } int main(void) { printf("hi hjk"); return 0; } Nu reusesc inca sa creez un array de elevi, nu stiu de ce! Citeste: http://wiki.pellesc....php/adt_example |
#6
Posted 15 December 2017 - 13:03
Asa e, m-am tampit, dadusem prea mult copy paste si nu observasem ca in main am tot declarari de functii.
As mai avea o intrebare, daca vreau sa afisez elevii in ordine alfabetica dupa nume si prenume, cea mai simpla metoda ar fi sa sortez vectorul alfabetic, nu? Stiu sa-l sortez dupa nume, dar dupa nume si prenume.. cum ar trebui sa fac? Sa fac 2 sortari, una dupa nume si una dupa prenume? |
#7
Posted 15 December 2017 - 13:13
Scrii un comparator custom care compară doi elevi după nume și prenume și folosești sort. Vezi link.
http://en.cppreferen.../algorithm/sort Două sortări nu funcționează decât în cazuri foarte speciale. |
#8
Posted 15 December 2017 - 16:10
Codul asta e corect? Si prin corect ma refer la ceea ce face, ca de rulat, ruleaza.
void SortareElevi(elev v[], int n) { int ok = 0; for (int i = 0; i < n; i++) { do { ok = 0; for (int i = 0; i < n - 1; i++) { if (v[i].nume > v[i + 1].nume && v[i].nume != v[i + 1].nume) { swap(v[i].nume, v[i + 1].nume); swap(v[i].prenume, v[i + 1].prenume); swap(v[i].minute, v[i + 1].minute); swap(v[i].secunde, v[i + 1].secunde); ok = 1; } if (v[i].nume == v[i + 1].nume) { if (v[i].prenume > v[i + 1].prenume) { swap(v[i].nume, v[i + 1].nume); swap(v[i].prenume, v[i + 1].prenume); swap(v[i].minute, v[i + 1].minute); swap(v[i].secunde, v[i + 1].secunde); ok = 1; } } } } while (ok); } } @tavitu, m-am uitat pe site-ul tau, dar mai rau m-a bagat in ceata. Am incercat ceva mai sus, plecand de la o sortare simpla de cuvinte. M-am gandit sa sortez dupa nume, si unde gasesc 2 nume egale, sa sortez dupa prenume... kinda.. Edited by g0dafk, 15 December 2017 - 16:11. |
#9
Posted 15 December 2017 - 16:52
1. folosesti entitati de tip clase (printre altele) ca sa poti trata informatiile ca pe un intreg. deci n-are rost sa schimbi toate datele obiectelor de pe pozitiile i si i+1, cand poti schimba obiectele in sine
2. daca A>B, atunci cu siguranta A!=B (apropo de comparatia din primul for) |
#10
Posted 15 December 2017 - 17:06
@Smiley
1.Mersi, nu ma gandeam la asta. 2.Sunt zapacit rau, nu imi dadeam seama daca nu-mi ziceai. =)) Edited by g0dafk, 15 December 2017 - 17:07. |
|
#11
Posted 15 December 2017 - 17:12
g0dafk, on 15 decembrie 2017 - 16:10, said:
@tavitu, m-am uitat pe site-ul tau, dar mai rau m-a bagat in ceata. Mai precis, tavitu ti-a sugerat sa folosesti functia de sortare deja implementata in biblioteca algorithm. |
#13
Posted 15 December 2017 - 18:39
jegmihai, on 15 decembrie 2017 - 17:12, said:
Mai precis, tavitu ti-a sugerat sa folosesti functia de sortare deja implementata in biblioteca algorithm. la nivelul la care e 0dafk, e o sugestie destul de nepotrivita. el are acum nevoie sa invete limbajul si (mai ales) algoritmica, nu metode deja existente pe care doar sa le apeleze. |
#14
Posted 15 December 2017 - 23:21
Vrei sa sortezi dupa multiple criterii? Compari pe rand, ex:
int diferenta = a.camp1 - b.camp1; if (diferenta != 0) return diferenta; diferenta = a.camp2 - b.camp2; if (diferenta != 0) return diferenta; ... return diferenta; |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users