我有基本的 Python 知识,目前使用 Pascal,我必须完成大学课程(编程入门课程)的任务。 我们不允许使用 Free Pascal 中的某些关键字,例如 string、break 和其他一些关键字,因此我的字符 var 是 char
基本上,我需要从一个单词(或一组字符)中取出每个字母并执行某些操作(在这种情况下,将 ASCCI 值添加到每次添加字母时都会增加的数字)
当我们找到第一个“.”时,我无法停止 while 循环。理想情况下,如果用户输入“house.dog”。我需要花一些时间来完成字母 h 、 o 、 u 、 s 和 e (第一个“.”之前的字母)的工作,并处理“.”之后的其余文本。因为不会被使用
我读到 Read 和 ReadLn 之间存在一些内部差异,但无法弄清楚这是否会影响代码和我得到的错误
谢谢
我尝试了下面的代码,并且在输入单词后没有停止。继续让我添加单词,直到出现运行时错误
program testingw;
var
myText : char;
myResult : Integer;
begin
writeLn ('enter your text');
readLn (myText);
while myText <> '.' do
begin
Read(myText);
if myText <> '.' then
begin
myResult := myResult * 125 + ord(myText);
WriteLn (myText);
end;
end; { while }
end.
首先对变量命名进行评论:名为
myText
的 var 给我提供了至少几个句子的文本图像。似乎不太适合仅仅一个角色。 myChar
对于角色来说是合乎逻辑的选择。
您需要知道
Read()
和ReadLn()
之间的区别。文档中解释了详细信息,本质上 Read
从输入缓冲区读取一个字符,而 ReadLn
从输入缓冲区读取所有字符,直到看到 CR(回车)组合(字符 13 + 字符 10)。
如果您需要在第一个点 (.) 字符处停止处理输入字符,那么您需要正确决定要使用哪个字符。
您选择使用
while
循环是合理的,因为这使您可以在执行计算之前检查终止情况。
您应该对每个字符进行的唯一处理是与点进行比较,如果没有,则进行数学计算并输出字符。
您需要再次检查
Write
和 WriteLn
之间的区别