Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

[Pascal] Counting letters in a row without arrays

  1. Sep 15, 2013 #1
    I'm working with this excercise: make a program that gives the number of consecutive letters of a word and the most repeated letter in a row -example: if i enter aaafdseergftth and i press return the program should return a = 3, e=2, t=2 and a=3-.

    I've come up with a couple of "solutions", like define a string and then use an array to get the characters and compare then with a while loop, but here's the issue: i can't use arrays, string, sunbfunctions to solve this excersise, and explicitely says i have to look for another solution.

    Now here is my second idea without using strings or arrays: Define an unknown amounts of char variables and enter each one until Intro is entered with a while loop like While not (Eoln) do (...). And that's the only thing i can come up right now to solve it, but when i was looking for a way to define an unknown amount of variables i found nothing but a solution with an array that i should resize to enter new variables.

    The next attempt: i defined tree variables char and one int. Then i defined a While Not (Eoln) that checks every letter entered and compare it with the one before, that would almost solve the excercise. The issue is that every time i enter a letter the while loop will be triggered, then after the loop -after i enter return- i could only print the character of the last of consecutive row of letters -the while is needed because i want the result after i entered all the letters-. If i try with the example above i get: t = 2.

    Any ideas?
     
  2. jcsd
  3. Sep 15, 2013 #2

    AlephZero

    User Avatar
    Science Advisor
    Homework Helper

    That's a good idea.

    When you have processed the first 4 characters "aaaf", you know enough to print out "a = 3". You don't have to process the whole string before you print out something.
     
  4. Sep 15, 2013 #3
    Thanks for answring AlephZero.
    I have to enter the whole thing before i get the answer, that's what the excercise ask for.

    If i don't process the whole thing wouldn't it go like this?
    [Enter a]
    Nothing happens
    [Enter a]
    Nothing happens
    [Enter a]
    Nothing happens
    [Enter f]
    prints a=3

    I would like something like:
    [Enter a]
    [Enter a]
    [Enter a]
    [Enter b]
    [Enter b]
    [Enter f]
    [Enter Return]
    prints a=3, b=2
     
  5. Sep 15, 2013 #4
    Hint: Can you use or have you been introduced to "recursion" yet?

    If not then ignore this.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: [Pascal] Counting letters in a row without arrays
  1. Common LISP vs Pascal (Replies: 1)

  2. Pascal Converter (Replies: 2)

  3. Fortran vs. Pascal (Replies: 11)

Loading...