Erinevus lehekülje "ITI0011:harjutus 18" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
 
(ei näidata 2 kasutaja 3 vahepealset redaktsiooni)
11. rida: 11. rida:
 
EX18 tarvis tuleb realiseerida 2 funktsiooni:
 
EX18 tarvis tuleb realiseerida 2 funktsiooni:
  
* <code>'''maxAbsoluteValueInArray(int[], arrLength)'''</code>
+
* <code>'''maxAbsoluteValueInArray(int[] array, int arrayLength)'''</code>
 
: Näiteks [4,-5,1,-2] tagastab 5. Lahendus peaks kasutama rekursiivset loogikat, st funktsioon peab tagastama isennast. <code>for</code> ja <code>while</code> tsüklid pole lubatud.
 
: Näiteks [4,-5,1,-2] tagastab 5. Lahendus peaks kasutama rekursiivset loogikat, st funktsioon peab tagastama isennast. <code>for</code> ja <code>while</code> tsüklid pole lubatud.
 
: Näpunäiteid:
 
: Näpunäiteid:
36. rida: 36. rida:
 
: Absoluutväärtustega toimub analoogliselt.
 
: Absoluutväärtustega toimub analoogliselt.
  
* <code>'''maxElementInArray(int[])'''</code>, tagastab massiivi maksimaalse elemendi.  
+
* <code>'''maxElementInArray(int[] array)'''</code>, tagastab massiivi maksimaalse elemendi.  
  
 
Tehke kindlasti esimesena maxABsoluteValueInArray, selle lahendamiseks mõelge loovalt ja kasutage array enda ruumi ajutiste väärtuste hoidmiseks
 
Tehke kindlasti esimesena maxABsoluteValueInArray, selle lahendamiseks mõelge loovalt ja kasutage array enda ruumi ajutiste väärtuste hoidmiseks
54. rida: 54. rida:
 
// Test here
 
// Test here
 
 
System.out.println(maxElementInArray(new int[] { 12,4,2,1,9,11}));
+
System.out.println(maxElementInArray(new int[] {12, 4, 2, 1, 9, 11}));
System.out.println(maxAbsoluteValueInArray(new int[] { 12,4,2,1,9,11, -14}, 7));
+
System.out.println(maxAbsoluteValueInArray(new int[] {12, 4, 2, 1, 9, 11, -14}, 7));
 
 
 
}
 
}
64. rida: 64. rida:
 
* Returns absolute maximum (Distance from 0) value of an array RECURSIVELY.
 
* Returns absolute maximum (Distance from 0) value of an array RECURSIVELY.
 
* Example
 
* Example
* [4,2,1-5,-1] => 5
+
* [4,2,1,-5,-1] => 5
 
* @param arr
 
* @param arr
 
* @param arrLength - array length when initialized
 
* @param arrLength - array length when initialized
70. rida: 70. rida:
 
* @return valueOfMaximumAbsoluteElement
 
* @return valueOfMaximumAbsoluteElement
 
*/
 
*/
public static int maxAbsoluteValueInArray(int[] arr, int arrLength) throws IllegalArgumentException {
+
public static int maxAbsoluteValueInArray(int[] array, int arrayLength) throws IllegalArgumentException {
 
// TODO: Implement
 
// TODO: Implement
 
return 0;
 
return 0;
83. rida: 83. rida:
 
* @return valueOfMaximumElement
 
* @return valueOfMaximumElement
 
*/
 
*/
public static int maxElementInArray(int[] arr) throws IllegalArgumentException {
+
public static int maxElementInArray(int[] array) throws IllegalArgumentException {
 
// TODO: Implement
 
// TODO: Implement
 
return 0;
 
return 0;

Viimane redaktsioon: 29. aprill 2015, kell 12:20

Kirjeldus

Rekursiooniga tutvumiseks on soovitatav uurida:

EX18 tarvis tuleb realiseerida 2 funktsiooni:

  • maxAbsoluteValueInArray(int[] array, int arrayLength)
Näiteks [4,-5,1,-2] tagastab 5. Lahendus peaks kasutama rekursiivset loogikat, st funktsioon peab tagastama isennast. for ja while tsüklid pole lubatud.
Näpunäiteid:
Oletame, et rivis on 4 inimest. Igaüks mõtleb ühe arvu, me tahame teada, kes mõtles kõige suurema arvu (ilma sohki tegemata).
Info edastamiseks sosistatakse üksteisele kõrva.
Saame kasutada järgnevat loogikat:
Esimene inimene rivis sosistab teisele, maksimaalne arv on max(1_inimese_arv, ülejäänud_rivi_max)
Teine inimene, saab seda loogikat täiendada oma numbriga järgnevalt max(1_inimese_arv, max(2_inimese_arv,ülejäänud_rivi_max))
Kolmas inimene omakorda max(1_inimese_arv,max(2_inimese_arv,max(3_inimese_arv, ülejäänud_rivi_max)))
Viimane teab, et ta on viimane ja tema ülesandeks on arvutada max(1_inimese_arv,max(2_inimese_arv,max(3_inimese_arv, 4_inimese_arv)))
Kui viimane saab arvutatud, siis ta saab sosistada eelviimasele vastuse, eelviimane üle-eelviimasele ja nii alguseni välja.
Arvudega
max(4, ülejäänud_rivi_max)
max(4, max(-5, ülejäänud_rivi_max))
max(4, max(-5, max(1, ülejäänud_rivi_max)))
max(4, max(-5, max(1, -2))) = 4


Absoluutväärtustega toimub analoogliselt.
  • maxElementInArray(int[] array), tagastab massiivi maksimaalse elemendi.

Tehke kindlasti esimesena maxABsoluteValueInArray, selle lahendamiseks mõelge loovalt ja kasutage array enda ruumi ajutiste väärtuste hoidmiseks

Mall

<source lang="java">


/**

* EX 18 Solution.
* @author <Your Name>
*/

public class EX18 {

public static void main(String[] args) { // Test here

System.out.println(maxElementInArray(new int[] {12, 4, 2, 1, 9, 11})); System.out.println(maxAbsoluteValueInArray(new int[] {12, 4, 2, 1, 9, 11, -14}, 7));

}


/** * * Returns absolute maximum (Distance from 0) value of an array RECURSIVELY. * Example * [4,2,1,-5,-1] => 5 * @param arr * @param arrLength - array length when initialized * @throws IllegalArgumentException if arr is null or arrLength is negative * @return valueOfMaximumAbsoluteElement */ public static int maxAbsoluteValueInArray(int[] array, int arrayLength) throws IllegalArgumentException { // TODO: Implement return 0; }

/** * Returns maximum element of an array RECURSIVELY. * Example * [4,2,1-5-1] -> 4 * @param arr * @throws IllegalArgumentException if arr is null * @return valueOfMaximumElement */ public static int maxElementInArray(int[] array) throws IllegalArgumentException { // TODO: Implement return 0; }

}

</source>