Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

simple pascal algorithm

Posted on 2004-03-25
11
290 Views
Last Modified: 2012-06-27
i want to add up all the decimal values of each individual character in a string. I get a compiler error (Error 39: Ordinal Expression Expected), i dont know how to solve it. Im trying this atm:
for count := 1 to max_length do
     begin
         sum := sum + ord(copy(stringvariable,count,1));
     end;

any help mucho appreciated :)
0
Comment
Question by:RevelationUK
11 Comments
 
LVL 4

Accepted Solution

by:
ATAHAC earned 50 total points
ID: 10690919
try this
for count := 1 to max_length do
     begin
         sum := sum + ord(stringvariable[count]);
     end;
0
 
LVL 1

Expert Comment

by:xtremecris
ID: 10702086
The problem was that you were trying to call the ORD function giving a string parameter. If you would have looked in the Help(just press CTRL+F1 with the cursor over the "ORD" name) you would see that the function accepts only chars as a parameter returning the ASCII order of that character.

Best regards,
Cris.
0
 
LVL 1

Expert Comment

by:progex
ID: 10703248
Try this:

sum := sum + char(copy(stringvariable,count,1));
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 11

Expert Comment

by:ZhaawZ
ID: 10763822
is max_length the same as length(stringvariable)?
0
 
LVL 1

Expert Comment

by:xtremecris
ID: 10763838
for count := 1 to length(stringvariable) do
     begin
         sum := sum + ord(stringvariable[count]);
     end;
0
 
LVL 3

Expert Comment

by:Aliev
ID: 10790688
Write full program. May be your types is wrong for this operation.
0
 

Author Comment

by:RevelationUK
ID: 10790862
its ok I worked it out, thanks anyway guys :)

sum := 0;
     max_length := length(password);
     for count := 1 to max_length do
     begin
          tempstring := copy(password,count,1);
          tempchar := tempstring[1];
          sum := sum + ord(tempstring[1]);
     end;
0
 
LVL 1

Expert Comment

by:xtremecris
ID: 10791209
That piece of code couldn't be more redundent even if you tried. Sorry for this remark but I couldn't help my self...

Why not use:  sum := sum + ord(password[count]); ?
Why is there a tempchar if you don't use it?

Best regards,
Cris.
0
 
LVL 11

Expert Comment

by:ZhaawZ
ID: 10793089
Can be done also without using ord():

var
  str : string;
  arr : array of byte absolute str;
  n, sum : integer;
...
sum := 0;
for n := low(arr) to high(arr) do sum := sum + arr[n];
0
 
LVL 100

Expert Comment

by:mlmcc
ID: 10969945
No comment has been added to this question in more than 21 days, so it is now classified as abandoned.

I will leave the following recommendation for this question in the Cleanup topic area:
   Accept - ATAHAC

Any objections should be posted here in the next 4 days. After that time, the question will be closed.

mlmcc
Pascal PE
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Starting your own business is always a daunting process, and for most people it is brand new experience. Avoid the common pitfalls by following these tips to start on the road to success.
There's a lot of hype surrounding blockchain technology. Here's how it works and some of the novel ways it' s now being used - including for data protection.
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

840 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question