[Pascal] Counting letters in a row without arrays

  • Thread starter trash
  • Start date
  • #1
14
0

Main Question or Discussion Point

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?
 

Answers and Replies

  • #2
AlephZero
Science Advisor
Homework Helper
6,994
291
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.
That's a good idea.

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
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.
 
  • #3
14
0
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.
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
 
  • #4
1,069
29
I have to enter the whole thing before i get the answer, that's what the excercise ask for.
Hint: Can you use or have you been introduced to "recursion" yet?

If not then ignore this.
 

Related Threads on [Pascal] Counting letters in a row without arrays

Replies
5
Views
10K
Replies
12
Views
740
Replies
4
Views
7K
Replies
5
Views
945
Replies
7
Views
7K
  • Last Post
Replies
1
Views
552
  • Last Post
Replies
2
Views
2K
  • Last Post
Replies
10
Views
5K
  • Last Post
Replies
2
Views
1K
Top