Chirurgia cranio-cerebrală minim invazivă
Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne. Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale. www.neurohope.ro |
Sortarea valorilor negative si pozitive in doua siruri separate.
Last Updated: Jan 22 2015 12:21, Started by
MihalacheM
, Dec 25 2014 16:33
·
0
#1
Posted 25 December 2014 - 16:33
Salutare la toata lumea si Sarbatori Fericite!
Sunt incepator in programare si m-am inscris la un curs on-line pt. programare JAVA. Se da problema: Avem dat următorul șir: int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87}. Trebuie să se facă două șiruri, unul pentru stocarea elementelor pozitive și celălalt pentru elementele negative ale șirului array, și logica necesară care va efectua extragerea elementelor corespunzătoare și plasarea lor în șirul adecvat. Cu alte cuvinte, din șirul array care este dat trebuie să se extragă toate elementele pozitive și să fie puse într-un șir separat. De asemenea, trebuie să se extragă toate elementele negative și să fie puse într-un șir separat. De asemenea, trebuie să se determine și numărul duplicatelor în șirul array. Desigur, este necesar ca funcționalitatea scrisă să fie aplicabilă pe orice șir cu valori întregi. Va rog sa ma ajutati sa realizez acest program. package assignment1; import java.util.Arrays; public class MyClass { public static void main(String[] args) { int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87}; Arrays.sort(array); System.out.println("This is the sorted array: "); System.out.println(java.util.Arrays.toString(array)); for (int x : array) { if (x < 0) { System.out.println(x); } else { System.out.println(x); } } } } Se vede ca programul printeaza pe rand valorile negative si pe cele pozitive, dar cum fac sa fie afisate in siruri separate? |
#2
Posted 25 December 2014 - 16:38
for (int x : array) if (x < 0) { // il adaugi pe x intr-un sir } else { // il adaugi pe x in alt sir } |
#3
Posted 25 December 2014 - 16:44
Da, dar fiecare valoare obtinuta in urma executarii buclei este afisata separat. Cum fac ca ele sa fie introduse toate, in cate un sir separat?
Edited by MihalacheM, 25 December 2014 - 16:46. |
#4
Posted 25 December 2014 - 16:51
Pai cum ti-am scris mai sus. Intai le bagi in sir si dupa afisezi cele doua siruri.
Iar daca nu stii cum sa bagi in sir, uite aici ceva care poate te ajuta: http://stackoverflow...t-array-in-java |
#5
Posted 25 December 2014 - 18:27
Am citit ce scrie acolo, dar tot nu inteleg. Am incercat astfel:
int[] pozitive; pozitive = ArrayUtils.add(pozitive, x);Dar nu functioneaza. Te rog sa-mi dai un exemplu de cod functional, daca poti. Din ce stiu eu, un sir are o lungime definita, iar dupa ce este definita, nu se mai poate mari sau micsora. De aia nu inteleg cum se poate lua fiecare valoare a lui x pt care corespunde conditia si sa o adaug intr-un sir care sa-si mareasca dimensiunea, dupa ce, in prealabil, nu are niciun element. Edited by MihalacheM, 25 December 2014 - 18:28. |
#6
Posted 25 December 2014 - 18:30
Pentru dimensiune variabila exista clase speciale, cum e ArrayList.
Tie insa ti-e de ajuns si un sir de dimensiune fixa, cat a sirului initial, sau cu dimensiune ce-o aflii dupa ce numeri cate valori pozitive/negative ai in sirul initial. |
#7
Posted 27 December 2014 - 15:27
Am ajuns la urmatorul pas:
package assignment1; import java.util.Arrays; public class MyClass { public static void main(String[] args) { int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87}; Arrays.sort(array); System.out.println("This is the sorted array: "); System.out.println(java.util.Arrays.toString(array)); int y = 0; for (int x : array) { if (x < 0) { System.out.println(x); } else { y++; int[] pozitive = new int[y]; pozitive[y - 1] = x; System.out.println(y); System.out.println(java.util.Arrays.toString(pozitive)); } } } }Dar acum nu stiu cum sa-l fac sa pastreze la fiecare iteratie si valorile anterioare astfel incat la sfarsit sa ramana sirul cu toate valorile pozitive, nu numai cu ultima pe care o preia din ultima iteratie a buclei. |
#8
Posted 27 December 2014 - 15:40
Creezi sirul de numere positive odata, nu il tot recreezi dupa fiecare element.
|
#9
Posted 27 December 2014 - 15:50
Dar de ce nu vrei sa folosesti List sau Vector? Iti va fi mult mai usor.
|
#10
Posted 27 December 2014 - 15:56
Inca n-a inteles nici array-urile cum trebuie, toate la timpul lor.
|
|
#11
Posted 29 December 2014 - 12:27
Va multumesc mult pentru sfaturi. Dupa ce m-am mai chinuit putin, am reusit intr-un sfarsit, sa fac toata aplicatia. Am trimis-o profesorului spre evaluare. Astept sa vad ce zice.
|
#12
Posted 22 January 2015 - 01:11
Aceiasi problema o am si eu ... nu imi pune numerele in aceiasi linie ...si doar in lini separate ...dar fara cele negative ...Am exact aceiasi problema ca a ta... Daca ai putea sa imi spui si mie cum ai facut .Multumesc
|
#13
Posted 22 January 2015 - 01:43
int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
Arrays.sort(array); System.out.println("Acestea sunt sortate: "); System.out.println(java.util.Arrays.toString(array)); int x = 0; for (int y : array) { if (y > 0) ; { System.out.println(y); } } problema e ca la mine nu le pune pe o linie separata cele negative si cele pozitive .... Le pune una sub alta ... Cum fac ?... Eu fac cursuri dupa net mai citesc una alta ... si mi s-a parut dragut acest exercitiu ... Puteti sa ma ajutati ?Chiar imi da batai de cap .Multumesc frumos |
#14
Posted 22 January 2015 - 07:54
System.out.println("text"); - scrie "text" pe randuri separate
System.out.print("text"); - scrie "text" pe acelasi rand for(int i=0;i<5;i++){ System.out.println(i); } OUTPUT: 0 1 2 3 4 for(int i=0;i<5;i++){ System.out.print(i); } OUTPUT: 01234 Edited by sorin147, 22 January 2015 - 07:57. |
#15
Posted 22 January 2015 - 12:21
Dupa cateva ore de lucru si stor creierii am reusit ,....
package myjavaprogram; import java.util.Arrays; class MyJavaProgram { public static void main(String[] args) { int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87}; Arrays.sort(array); System.out.println("Acestea sunt sortate: "); System.out.println(java.util.Arrays.toString(array)); Arrays.sort(array); int dubluri = 0; if (array.length > 1) { for (int i = 0; i < array.length - 1; i++) { if (array[i] == array[i + 1]) { dubluri++; } } } int i = 0; // numara cate elem sunt negative while (i < array.length && array[i] < 0) { i++; } int[] neg = new int[i]; int[] poz = new int[array.length - i]; for (int j = 0; j < neg.length; j++) { neg[j] = array[j]; } for (int j = 0; j < poz.length; j++) { poz[j] = array[j + i]; } System.out.println(Arrays.toString(neg)); System.out.println(Arrays.toString(poz)); System.out.printf("Dubluri: %d", dubluri); } } |
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users