用Pascal转换字符串

用Pascal转换字符串,pascal,freepascal,Pascal,Freepascal,我对帕斯卡很陌生,而且仍然学到很多东西。我必须编写一个代码: 接受字符串的输入 将字符串拆分为两个字符(每个字符段) 使用代码段从数组中获取索引 将代码段转换为某个值 如果索引+转置大于数组的长度,则不返回任何内容 如果不是,则将转置后的代码段附加到结果字符串 返回转置后的字符串 我只能写1到3,其余的对我来说还是一片模糊。谢谢你的帮助 (我还想改进它,不需要太多的for循环。有什么想法吗?) 作为你工作的起点,而不仅仅是填鸭式回答: 索引中有代码段(注释)的索引。假设注释按顺序排列,则需要从其

我对帕斯卡很陌生,而且仍然学到很多东西。我必须编写一个代码:

  • 接受字符串的输入
  • 将字符串拆分为两个字符(每个字符段)
  • 使用代码段从数组中获取索引
  • 将代码段转换为某个值
  • 如果索引+转置大于数组的长度,则不返回任何内容
  • 如果不是,则将转置后的代码段附加到结果字符串
  • 返回转置后的字符串
  • 我只能写1到3,其余的对我来说还是一片模糊。谢谢你的帮助

    (我还想改进它,不需要太多的
    for
    循环。有什么想法吗?)


    作为你工作的起点,而不仅仅是填鸭式回答:

    索引中有代码段(注释)的索引。假设注释按顺序排列,则需要从其上方的数组位置返回注释,因此

    result := result + melody[iter_index + transposevalue];
    
    在尝试读取数组之前,需要检查数组的长度,否则它将崩溃(步骤5)。这只是一个
    if
    语句

    我不会为循环担心太多-2深嵌套并没有那么糟糕。如果您想将其拆分,那么
    GetTransposedNote(const note:string):string可以拆分为一个新函数

    您可能需要考虑的是:

    • 如果在数组中找不到便笺怎么办
    • 你想区分大小写吗
    • 如果输入字符串的字符数为奇数怎么办

    不过,你已经完成了大部分工作。

    作为你工作的起点,而不仅仅是填鸭式回答:

    索引中有代码段(注释)的索引。假设注释按顺序排列,则需要从其上方的数组位置返回注释,因此

    result := result + melody[iter_index + transposevalue];
    
    在尝试读取数组之前,需要检查数组的长度,否则它将崩溃(步骤5)。这只是一个
    if
    语句

    我不会为循环担心太多-2深嵌套并没有那么糟糕。如果您想将其拆分,那么
    GetTransposedNote(const note:string):string可以拆分为一个新函数

    您可能需要考虑的是:

    • 如果在数组中找不到便笺怎么办
    • 你想区分大小写吗
    • 如果输入字符串的字符数为奇数怎么办

    不过,你已经做到了这一点。

    在这种情况下,转置是一个音乐术语,将音符更改为不同的键或寄存器。可能只是简单地添加TransposeSValue并检查是否为wrapparound。对我来说,您描述中模糊的部分是#5:
    如果Index+Transpose大于数组的长度,则不返回任何内容
    。您的意思是在对特定代码段进行转置后不返回任何内容并继续下一个代码段,还是完全中断该过程并返回一个空字符串作为转置函数的结果?除此之外,@Marco所说的对我来说非常有意义。使用隐式声明的结果变量(在转置中)来构造结果字符串。@AndriyM return nothing表示完全中断该过程,因此它只返回一个空字符串作为结果。在此上下文中,转置是一个音乐术语,用于将音符更改为不同的键或寄存器。可能只是简单地添加TransposeSValue并检查是否为wrapparound。对我来说,您描述中模糊的部分是#5:
    如果Index+Transpose大于数组的长度,则不返回任何内容
    。您的意思是在对特定代码段进行转置后不返回任何内容并继续下一个代码段,还是完全中断该过程并返回一个空字符串作为转置函数的结果?除此之外,@Marco所说的对我来说非常有意义。使用隐式声明的结果变量(在转置中)来构造结果字符串。@AndriyM return nothing表示完全中断该过程,因此它只返回一个空字符串作为结果。在此上下文中,转置是一个音乐术语,用于将音符更改为不同的键或寄存器。可能只是简单地添加TransposeSValue并检查是否为wrapparound。对我来说,您描述中模糊的部分是#5:
    如果Index+Transpose大于数组的长度,则不返回任何内容
    。您的意思是在对特定代码段进行转置后不返回任何内容并继续下一个代码段,还是完全中断该过程并返回一个空字符串作为转置函数的结果?除此之外,@Marco所说的对我来说非常有意义。使用隐式声明的结果变量(在转置中)构造结果字符串。@AndriyM return nothing表示完全中断进程,因此它只返回一个空字符串作为结果。