Pereiti prie turinio

Rekomenduojami pranešimai

Jeigu masyvo ilgis yra 1, grąžini tą vienintelį elementą, jei masyvo ilgis > 1, grąžini einamąjį elementą, pridėtą prie funkcijos rezultato su vienu elementu mažesniu masyvu.

 

Kadangi paskalio masyvai yra ######ing ######, tai nesugalvoju kito implementacijos būdo tik kaip naudoti papildomą kintamąjį, nurodantį einamąjį indeksą

 

function AddArrayElements(arr: array of whatever, arraySize: Integer, currentIndex: Integer) // Greičiausiai, vietoj int vertėtų panaudoti long, nes paskalio int'as yra labai mažas
 if arraySize = currentIndex then AddArrayElements := arr[currentIndex] // Prielaida, kad masyvas indeksuojamas nuo 1
 else AddArrayElements := arr[currentElement] + AddArrayElements(arr, arraySize, currentIndex + 1)
end
// Usage:
myArray:= [3, 2, 1] // Čia pseudokodas, kuris sukuria 3 elementų masyvą
sum := AddArrayElements(myArray, 3, 1) // sum = 6

 

Na, o čia žmoniškesnė C versija, gal kas nors, geriau mokantis paskalį, sugebės nuportint ją:

int arraySum(int *head, int size) // čia elementai bus numeruojami nuo 0
{
 if(size == 1) return *head; // arba return head[0] 
 else return *head + arraySum(head + 1, size - 1);
}
// Usage:
int myArray[] = {3, 2, 1};
int sum = arraySum(myArray, 3)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jeigu masyvo ilgis yra 1, grąžini tą vienintelį elementą, jei masyvo ilgis > 1, grąžini einamąjį elementą, pridėtą prie funkcijos rezultato su vienu elementu mažesniu masyvu.

 

Kadangi paskalio masyvai yra ######ing ######, tai nesugalvoju kito implementacijos būdo tik kaip naudoti papildomą kintamąjį, nurodantį einamąjį indeksą

 

function AddArrayElements(arr: array of whatever, arraySize: Integer, currentIndex: Integer) // Greičiausiai, vietoj int vertėtų panaudoti long, nes paskalio int'as yra labai mažas
 if arraySize = currentIndex then AddArrayElements := arr[currentIndex] // Prielaida, kad masyvas indeksuojamas nuo 1
 else AddArrayElements := arr[currentElement] + AddArrayElements(arr, arraySize, currentIndex + 1)
end
// Usage:
myArray:= [3, 2, 1] // Čia pseudokodas, kuris sukuria 3 elementų masyvą
sum := AddArrayElements(myArray, 3, 1) // sum = 6

 

Na, o čia žmoniškesnė C versija, gal kas nors, geriau mokantis paskalį, sugebės nuportint ją:

int arraySum(int *head, int size) // čia elementai bus numeruojami nuo 0
{
 if(size == 1) return *head; // arba return head[0] 
 else return *head + arraySum(head + 1, size - 1);
}
// Usage:
int myArray[] = {3, 2, 1};
int sum = arraySum(myArray, 3)

dėkui :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...