Basic - ispis određenog elementa niza

poruka: 4
|
čitano: 2.241
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
pomoc oko programa

Zadatak glasi:

Dat je niz A od N prirodnih brojeva (N<=500) . Napisati program kojim se ispisuje indeks onog elementa u nizu
A za koji je zbir elemenata niza koji stoje pre tog elementa najmanje razlikuje od zbira elemenata niza koji stoje posle njega.

Primjer :
Ulaz : N=5 A: 7, 1, 3, 8, 10 Izlaz : 4

 

Evo mog pokusaja
input "N=",ndim a(n)print "Unesi brojeve!"for x=1 to n    input a(x)next xfor x=2 to n    sum=0    sum.2=0    for j=x to n        sum=sum+a(j)    next j    for i=x to 1 step -1        sum.2=sum.2+a(i)    next i    l=abs(sum-sum.2)    if l<p then l=p and rez=a(x)next xfor x=1 to n    if a(x)=rez then print "Index:",xnext xinput send

Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Treba mi pomoc oko programa

Ja bi imao nesto drugaciji pristup.

 

Dakle imao bi niz sum[], u koji bi spremao sve parcijalne sume niza. Dakle sum[x] bi oznacavao sumu svih elemenata niza do indexa x. sum[0] + sum[1] + ... + sum[x-1] + sum[x].

Tada mozemo dobiti sumu svih intervala. suma [i, j] == sum[j] - sum[i-1]

Sada mozes ici po arrayu i uspoređivati sume dva intervala.

 

Array sum stvaramo ovako :

 

read(A)

niz[i] = A;

sum[i] = sum[i-1] + A;

 

Nesto tipa ovo :

for ( int x = 1; x < N-1; ++x )

  abs( sum[x-1] - (sum[N-1] - sum[x]) ) // N je broj elemenata niza.

Treba napomenuti da linija iznad ne ukljucuje vrojednost elementa na poziciji x.

Poruka je uređivana zadnji put ned 10.4.2011 19:01 (Budimir).
 
1 0 hvala 1
14 godina
neaktivan
offline
Treba mi pomoc oko programa

Krivo sam rekao za sumu, sum[x] = A[0] + A[1] + ... + A[x-1] + A[x], gdje je A, array. Ali mislim da si shvatio.

 
1 0 hvala 0
14 godina
neaktivan
offline
Treba mi pomoc oko programa

INPUT "N=", nDIM a(n)DIM sum(n)DIM sum.2(n + 1)PRINT "Unesi brojeve!"FOR x = 1 TO nINPUT a(x)sum(x) = sum(x - 1) + a(x)NEXT xFOR p = n TO 1 STEP -1sum.2(p) = sum.2(p + 1) + a(p)NEXT pFOR x = 1 TO nIF ABS(sum(x) - sum.2(x)) < ABS(sum(x - 1) - sum.2(x - 1)) THEN rez = xNEXT xPRINT rezEND
Hvala na pomoci!!!

Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice