• 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

    • Microsoft takes unreliability to reliable levels, ffs...
    • It's a feature, not a bug: Windows Hello face unlock no longer works in the dark by Usama Jawad Windows Hello is a security mechanism offered by Microsoft in compatible Windows PCs that allows customers to use biometric authentication mechanisms such as facial or iris recognition, fingerprint, or a PIN to access their accounts. Although it's a great feature when it works correctly, that is not always the case. Now, Microsoft has changed the way this feature works, and people aren't exactly pleased. As spotted by Windows Central, Windows Hello hasn't been working as people would expect since at least April's Patch Tuesday update. Since then, the mechanism requires both an infrared (IR) sensor and a color webcam to function correctly. Previously, Windows Hello relied on IR sensors to create a 3D facial map, just like the iPhone. IR sensors work quite well in low-light environments, but Microsoft does not allow customers to rely on them anymore due to a patch for a security vulnerability. It is important to note that most webcams don't illuminate the environment on their own and rely on external light. This essentially means that Windows Hello simply doesn't work in low-light environments for many users. In our own testing, Windows Hello seems to be working in low warm light, shown below: However, it now fails to work in an even dimmer environment, such as that with red light: That said, it seems that Microsoft has not implemented the change perfectly. Users have reported that if they disable their webcam through Device Manager, Windows Hello falls back to using IR sensors only and continues to function the way it used to. While that may act as a workaround for users right now, it'll be interesting to see if Microsoft patches this loophole down the line, too; it certainly wouldn't be surprising now that it's more widely known. Source: Windows Central
    • I know Windows DHCP and DNS servers get teased a lot, but those services were at least created at a time when MS cared more than they do now, and they work mostly as expected. I actually use both in a multisite professional setting, not really because I love them, but because we use Active Directory and those services go hand-in-hand with it. A few times when I have needed to configure some more advanced features, I was worried Windows might not support them, but so far it has not let me down. I can only image the horror a Windows 11 era DHCP server would be, probably fewer options than the basic service on a Netgear router.
    • Since the article doesn't cover it: >Pinned Tabs allow you to always keep your favorite tabs open and just a click away. Pinned Tabs are small, can't be closed accidentally, and open automatically when you start Firefox. from https://support.mozilla.org/en...keep-favorite-websites-open
    • CapCut 6.4.0 (offline installer) by Razvan Serea CapCut is a versatile video editing app that offers a range of features such as multi-layer editing, keyframe animations, special effects, and more, to create professional-quality videos. With CapCut, users can edit and enhance their videos with a variety of tools such as filters, transitions, effects, and text overlays. CapCut's extensive library of pre-designed templates and visual effects also allows users to create unique and eye-catching videos in just a few clicks. Users can also adjust video speed, crop, and merge multiple clips, among other features. CapCut is available for both mobile devices and Windows, making it accessible for everyone. CapCut key features: User-friendly interface for easy video editing A wide range of editing tools, including trim, split, cut, and merge Music library with a wide range of tracks to choose from Customizable text and fonts to add captions and titles Multi-layer timeline for seamless editing and layering Filters and effects to enhance video quality and style A variety of transitions to choose from Multiple aspect ratio options for different platforms Green screen/chroma key for adding custom backgrounds Overlays and stickers to add to your videos Easy exporting to different video formats and resolutions Large library of pre-designed templates and visual effects Customizable video thumbnails for branding Keyframe animation to add movement to your video Speed adjustment for slow motion or time-lapse effects Customizable transitions between clips Reverse video playback for creative effects Voiceover recording and editing for narrating your video Color grading tools and much more... Download: CapCut 6.4.0 | 709.0 MB (Freeware) Links: CapCut Website | CapCut Screenshot | CapCut Online Editor Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • Week One Done
      patrickft456 earned a badge
      Week One Done
    • One Month Later
      patrickft456 earned a badge
      One Month Later
    • One Month Later
      Jdoe25 earned a badge
      One Month Later
    • Explorer
      Legend20 went up a rank
      Explorer
    • One Month Later
      jezzzy earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      642
    2. 2
      ATLien_0
      279
    3. 3
      +FloatingFatMan
      171
    4. 4
      Michael Scrip
      156
    5. 5
      Steven P.
      131
  • Tell a friend

    Love Neowin? Tell a friend!