🔒 Closed Hello mga master sa linux (bash programming)

Status
Not open for further replies.

Ryu_

Grasshopper
Need help po sa pag figure ng algorithm na to using bash, bago lang ako sa language na to

Supposed:

array=[82, 170, 43, 140, 24, 16, 190]
start=50

Gusto ko sana kunin yung result nito:


Sa start(50) magsisimula ang operation, kukuhanin yung difference from one element at yung kasunod nya. Then sum ng lahat

(start-82)+(82-170)+(170-43)+(43-140)+(140-24)+(24-16)+(16-190)

Pero sa bawat pagkuha ng difference dapat laging una yung larger number para hindi negative yung makuha, so ganito po yung arrangement:

(82-start)+(170-82)+(170-43)+(140-43)+(140-24)+(24-16)+(160-16)

I hope matulungan ninyo ko mga boss :)
 
eto bos:

Bash:
#!/usr/bin/env bash

MYARRAY=(82 170 43 140 24 16 190)
ARRAYSIZE="${#MYARRAY[@]}"
START=50
OUTPUT=0

for ((i=0; i<${ARRAYSIZE}; i++)) {
    [[ i -eq 0 && ${MYARRAY[i]} -gt $START ]] && (( OUTPUT=${MYARRAY[i]} - $START )) || (( OUTPUT=$START - ${MYARRAY[i]} ))
    x=$((i+1))
    if [[ x -lt ${ARRAYSIZE} ]]; then
        [[ ${MYARRAY[i]} -gt ${MYARRAY[x]} ]] && (( OUTPUT+=${MYARRAY[i]} - ${MYARRAY[x]} )) || (( OUTPUT+=${MYARRAY[x]} - ${MYARRAY[i]} ))
    fi
}

echo "OUTPUT: ${OUTPUT}"
 
eto bos:

Bash:
#!/usr/bin/env bash

MYARRAY=(82 170 43 140 24 16 190)
ARRAYSIZE="${#MYARRAY[@]}"
START=50
OUTPUT=0

for ((i=0; i<${ARRAYSIZE}; i++)) {
    [[ i -eq 0 && ${MYARRAY[i]} -gt $START ]] && (( OUTPUT=${MYARRAY[i]} - $START )) || (( OUTPUT=$START - ${MYARRAY[i]} ))
    x=$((i+1))
    if [[ x -lt ${ARRAYSIZE} ]]; then
        [[ ${MYARRAY[i]} -gt ${MYARRAY[x]} ]] && (( OUTPUT+=${MYARRAY[i]} - ${MYARRAY[x]} )) || (( OUTPUT+=${MYARRAY[x]} - ${MYARRAY[i]} ))
    fi
}

echo "OUTPUT: ${OUTPUT}"
na figure ko na pero haba ng code ko hahaha pero salamat pa rin, may bago ako natutunan sayo boss
 
Status
Not open for further replies.

About this Thread

  • 3
    Replies
  • 438
    Views
  • 3
    Participants
Last reply from:
Ryu_

Online now

Members online
947
Guests online
689
Total visitors
1,636

Forum statistics

Threads
2,276,945
Posts
28,973,258
Members
1,229,658
Latest member
hihiwae
Back
Top