• 1

Array pseudocode


Question

"Design a program that lets the user enter 20 numbers. It should store the numbers in an array and then display the following data: lowest number, highest number, total of numbers, and the average of numbers."

 

I just want to know if this looks correct! It's the first array problem I have done.

 

  Quote

 

Constant Integer SIZE = 20

Declare Real numbers

Declare Integer index

Declare Real num, highest, lowest, total, avg

 

For index = 0 to SIZE ? 1

   Display ?Enter a number?

   Input num

   Set numbers[index] = num

End For

 

Set highest = getHigest(numbers, SIZE)

Display "Higest:", highest

Set lowest = getLowest(numbers, SIZE)

Display "Lowest:", lowest

Set total = getTotal(numbers, SIZE)

Display "Total:", total

Set avg = total / SIZE

Display "Average:", avg

 

Function Real getHighest(Real array[], Integer size)

   Declare Integer index

   Declare Real highest = array[0]

   For index = 1 to size ? 1

      If array[index] > highest Then

         Set highest = array[index]

   End For

   Return highest

End Function

 

Function Real getLowest(Real array[], Integer size)

   Declare Integer index

   Declare Real lowest = array[0]

   For index = 1 to size ? 1

      If array[index] < lowest Then

         Set lowest = array[index]

      End If

   End For

   Return lowest

End Function

 

Function Real getTotal(Real array[], Integer size)

   Declare Real total = 0

   Declare Integer index

   For index = 0 to size ? 1

      Set total = total + array[index]

   End For

   Return total

End Function

 

 

 

Link to comment
https://www.neowin.net/forum/topic/1183365-array-pseudocode/
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Looks good to me.

You have Highest, Lowest, Average, Total.

You have the cap of 20, and it uses an array.   You seem to loop through correctly.   One thing you could do is the fact you constant SIZE and the Array[] is declared as a member variable.. you don't need to pass them into the functions.  If the point is to make it dynamic so ANY could be passed in.. then keep it how it is, otherwise you could do it without extra functions. 

Also, most Arrays have a size anyways instead of needing to pass one in you could just call that (Array.size() or simmilar).

  • 0

Looks good for the mostpart, can't fault your logic. Couple of pointers:

  • It's never a good idea to have two variables named the same. See that in your list of global variables (around line 4) you have variables called "index", "highest", "lowest", "total", but then you also have local variables in each function with the same name. In an implementation of your program, it's possible that your logic would fail due to the fact that you'd try to declare the same variable twice.
    • I'd give your globals different names (e.g. highest_result, lowest_result, etc). This would avoid any possible name clashes.
  • A foreach syntax might work better for the loops in your functions, rather than using your SIZE constant everywhere.
    • for each number in array
          if number < lowest
              set lowest = number
          end
      end
Other than that I think it looks pretty spot on :)
  • 0
  On 21/10/2013 at 12:23, Majesticmerc said:

Looks good for the mostpart, can't fault your logic. Couple of pointers:

  • It's never a good idea to have two variables named the same. See that in your list of global variables (around line 4) you have variables called "index", "highest", "lowest", "total", but then you also have local variables in each function with the same name. In an implementation of your program, it's possible that your logic would fail due to the fact that you'd try to declare the same variable twice.
    • I'd give your globals different names (e.g. highest_result, lowest_result, etc). This would avoid any possible name clashes.
  • A foreach syntax might work better for the loops in your functions, rather than using your SIZE constant everywhere.
    • for each number in array
          if number < lowest
              set lowest = number
          end
      end
Other than that I think it looks pretty spot on :)

 

Thank you for the pointers!  :)

  • 0
  On 21/10/2013 at 12:16, firey said:

Looks good to me.

You have Highest, Lowest, Average, Total.

You have the cap of 20, and it uses an array.   You seem to loop through correctly.   One thing you could do is the fact you constant SIZE and the Array[] is declared as a member variable.. you don't need to pass them into the functions.  If the point is to make it dynamic so ANY could be passed in.. then keep it how it is, otherwise you could do it without extra functions. 

Also, most Arrays have a size anyways instead of needing to pass one in you could just call that (Array.size() or simmilar).

Thank you for the help!

This topic is now closed to further replies.
  • Posts

    • #1 DP and #8 HDMI, you can connect both monitors to your motherboard. It's not just one or the other, you can use both at the same time.
    • So, I will see exactly ZERO ads, because I f**ked off the stupid Facebook/Meta ages ago. I don't miss any of it at all.
    • Thunderbird 139.0.1 by Razvan Serea Thunderbird is a free, open-source, cross-platform application for managing email and news feeds. It is a local (rather than a web-based) email application that is powerful yet easy-to-use. Thunderbird is clean and elegant by default, but easily customizable to match your workflow and visual preferences. It is loaded with unique and powerful features. Thunderbird is developed, tested, translated and supported by the folks at Mozilla Corporation and by a group of dedicated volunteers. Thunderbird gives you control and ownership over your email. There are lots of add-ons available for Thunderbird that enable you to extend and customize your email experience. Thunderbird gives you IMAP/POP support, a built-in RSS reader, support for HTML mail, powerful quick search, saved search folders, advanced message filtering, message grouping, labels, return receipts, smart address book LDAP address completion, import tools, and the ability to manage multiple e-mail and newsgroup accounts. Thunderbird 139.0.1 fixes: Thunderbird could crash when copying a local folder to IMAP Upgrade to 139.0 incorrectly switched Table View to Cards View Download: Thunderbird 139.0.1 for Windows (EN/US) | 32-bit | ~70.0 MB (Open Source) Download: Thunderbird 139.0.1 for Linux (EN/US) | 74.7 MB Download: Thunderbird 139.0.1 for Mac OS (EN/US) | 127.0 MB Download: Thunderbird 139.0.1 in other languages View: Thunderbird Website | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • It's both. Bazzite forked the game mode so it's not just simply running big picture mode like on full desktop.
  • Recent Achievements

    • First Post
      ClarkB earned a badge
      First Post
    • Week One Done
      Epaminombas earned a badge
      Week One Done
    • Week One Done
      Prestige Podiatry Care earned a badge
      Week One Done
    • Week One Done
      rollconults earned a badge
      Week One Done
    • Week One Done
      lilred1938 earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      142
    2. 2
      Xenon
      130
    3. 3
      ATLien_0
      124
    4. 4
      +Edouard
      102
    5. 5
      snowy owl
      97
  • Tell a friend

    Love Neowin? Tell a friend!