Другие языки программирования и технологии

Доброго дня. Есть вопрос по PASCAL. Помогите пожалуйста.

Задача: . Ввести последовательность целых чисел, разделенных пробелом. Определить cколько чисел заканчивается на цифру "4". Если таких чисел нет, то вывести соответствующее сообщение.
Моё решение:
program gop;
var a:string;
i,n,kol:integer;
begin
writeln('vvedite strioku');
readln(a);
kol:=0;
for i:=1 to length(a) do
if (a=' ') then
if (a[i-1]='4') then begin
inc(kol);
writeln('koli4estvo=',kol);
end;
end.

1.В чем ошибка?
2.И правильно то что я использую STRING, ведь я смогу вводить не только целые числа но и символы а задача стоит что нужно вводить только целые числа.
3. А как без STRING сделать?
спасибо.
if (a[i-1]='4') then begin - В этой строке лишнее begin

program gop;
var a:string;
i,n,kol:integer;

begin
writeln('vvedite strioku');
readln(a);
kol:=0;

for i:=1 to length(a) do
begin
if (a=' ') then if (a[i-1]='4') then inc(kol);
end;

writeln('koli4estvo=',kol);
end.

Вводить надо в стринг, а затем анализировать строку в цикле и вычленять числа одновременно делая проверку на целочисленность.
А сделать можно в цикле выделяя от пробела к пробелу подстроку при помощи функции
Function Copy(S: String; Index, Count: Integer): String;
Возвращает подстроку строки.
S - выражение типа String. Index и Count - выражения целого типа. Функция возвращает строку, содержащую Count символов, начинающихся с позиции Index.
Если Index больше, чем длина S, функция возвращает пустую строку.

Проверку можно сделать либо при помощи функции
Val(st: string; x: числовая переменная; var code: integer)
Процедура преобразует строковую запись числа, содержащуюся в st, в числовое представление, помещая результат в x. x - может быть как целой, так и действительной переменной. Если в st встречается недопустимый (с точки зрения правил записи чисел) символ, то преобразование не происходит, а в code записывается позиция первого недопустимого символа. Выполнение программы при этом не прерывается, диагностика не выдается. Если после выполнения процедуры code равно 0, то это свидетельствует об успешно произошедшем преобразовании.

А проще в том же цикле каждый символ проверять на принадлежность к диапазону цифр

Да и еще не if (a=' ') then а if (copy(a,i,1)=' ') then
Соответственно и для следующей строки
АА
Адил Асаба Абдрахманов
1 995
Лучший ответ
можно целочисленным масивом сделать
Илья Юркевич
Илья Юркевич
2 975
вот здесь нуна переписать таким образом:
for i:=1 to length(a) do
if (a=' ') then
if (a[i-1]='4') then
inc(kol);
writeln('koli4estvo=',kol);
end;
на
for i:=1 to length(a) do
begin
if (a=' ') then
if (a[i-1]='4') then
inc(kol);
end;
writeln('koli4estvo=',kol);

в принципе садовник правильно написал!! !
да, массивом лучше. А последняя цифра в числе легко находится при помощи mod(10). Число делится на 10, отбрасывается целая часть, а дробная становится целым.
a:= 5674 mod (10);
переменная а будет равна 4