2016-05-18 6 views
0

У меня есть программа, которая читает массив букв (это может быть любой текст). Затем мне нужно сравнить 1-й и 4-й элементы каждой строки кода, но программа не позволяет мне это делать. Как я могу получить доступ к этим элементам, чтобы их сравнить?Как получить доступ к элементу в строке, находящейся в массиве в Pascal?

Program acmp387; 

uses crt; 

var 
    n, i, answer : integer; 
    letters : array[1..1000] of string; 

Begin 
    read(n); 

    for i:=1 to n do 
    begin 
     read(letters[i]); 
     if ord(letters[i][1]) = ord(letters[i][4]) 
     then answer := answer + 1; 
    end; 

    writeln(answer); 
    readkey; 
End.  

Я заинтересован в этой строке:

if ord(letters[i][1]) = ord(letters[i][4]) 
+0

Удалить лишние функции 'Ord' - просто сравните', если буквы [i] [1] = буквы [i] [4] '. – MBo

+0

Имейте в виду, что readln (n) возвращает исключение, когда вход не является целым числом. –

ответ

1

Ваш доступ в порядке (если все строки, по крайней мере, четыре символа, для строк с 0 до 3 символов может быть ошибка/сообщение об). Может быть, у вас есть проблема для запуска вашей программы, и она не ведет себя так, как ожидалось.

Ваша программа будет работа, как ожидается, если вы заменить read заявления readln. A read заявления имеют смысл только в ограниченных ситуациях, в интерактивных программах вы почти всегда будете использовать readln. С учетом этих изменений и вход

5 
abcdef 
abcabc 
0101010101010101 
10011001 
123456 

вы получите дисплей результата 2 (строки/строки abcabc и 10011001 отвечают критериям и инкремент ответа).