帕斯卡长度+圆?

时间:2014-10-29 20:51:20

标签: pascal rounding

您好我有一项任务我不知道它是如何运作的。

我必须在pascal中创建一个用来编写单词的程序,然后程序找到单词中的中间字母并将其显示在屏幕上。 例如:你有“狗”这个词,程序会在屏幕上显示字母o,如果有4个字母如“树”那么程序会转到mid和+ 1,所以它带来了我们的字母“e” 。 据我所知,我需要使用round(x)和Length(x)函数,但我不知道如何正确使用它们以及如何定义VAR?

uses crt;
var 
  x,x1: string;
  z,y: real;
  y1: integer;
BEGIN
  readln(x);
  z:=length(x);
  y:= z / 2;
  y1:= round(y) +1;
  writeln;
  x1:=copy(x, y1,1);
  writeln(x1);
  readkey;
END.

1 个答案:

答案 0 :(得分:1)

使用整数来索引字符串,而不是real s。

var
  Len, Mid: Integer;
  TestString: string;
  CenterChar: Char;
begin
  TestString := 'tree';
  Len := Length(TestString);
  Mid := Len div 2;

  // Your choice here
  if not Odd(Len) then
    Inc(Mid);

  // or you can use this instead
  {
  if (Len mod 2 = 0) then
    Inc(Mid);
  }

  CenterChar := TestString[Mid];   // Access string by index. No copy needed
  WriteLn(CenterChar);
end;