语法错误,“;”预期,但标识符OBRADA“发现,功能错误,但不明白为什么

时间:2018-01-31 02:01:30

标签: pascal freepascal

语法错误,“;”预期,但标识符OBRADA“发现,功能错误但不明白为什么..为什么只发生在第二个功能但不在第一个? 如果我在此代码中正确使用了Delete,有人可以告诉我吗?

我必须创建一个计算字符串中整数的程序,如果2个整数相同,则删除该整数的所有重复项。写下新的字符串,以及出现次数最多的重复次数......我可以做得更容易吗? 提前谢谢!

Program Zad_Septembar1_2013;

Const
  max = 100;

Type
  niz = array[1..100] Of integer;

Var A: niz;

Function citaj(Var A:niz;Var n:integer): boolean;
Var
  i: integer;
Begin
  citaj := true;
  writeln('Unesite duzinu niza');
  readln(n);

  If (n>0) And (n<=max) Then
    Begin
      For i:=1 To n Do
        Begin
          writeln('Unesite', i ,'. cifru');
          readln(A[i]);
        End     ;
    End;

  Function obrada(Var A:niz; Var n,q,s:integer): integer;
  {Here I get an error but i don't understand why}
  Var
    p,m,i: integer;
  Begin
    m := 0;
    q := 0;
    p := 0;
    s := 0;
    For i:=1 To n Do
      Begin
        p = A[i];

        For i:=1 To n Do
          Begin
            If (A[i]=p) Then
              Begin
                m := m+1;
                Delete(A[i]); {Did i use delete correctly ?}

              End;
          End;

        If (m>s) Then
          Begin
            s := m;
            q := p;
          End;
      End;
  End;

  Procedure ispis(Var A:niz; q,s:integer);
  Var
    g: integer;
  Begin
    g := length( A );

    For i:=1 To go Do
      write(A[i]);

    writeln('Broj pojavljivanja u nizu je: ',s);
    writeln('Broj koji se pojavljuje je:', q);

1 个答案:

答案 0 :(得分:1)

除了'citaj'末尾缺少'end'之外,你在这句话中似乎也有一个未声明的标识符For i:= 1要去做...使用更多描述性的变量名称会有很大的帮助。 / p>