Чтобы понять почему при require (или указании диапазона возможных версий) устанавливается не так версия, что вы ожидаете, просто попробуйте установить конкретную версию пакета (ту что вы хотите, в сообщении будет расшифровано почему выбрана другая версия).
Решите предыдущую задачу с использованием процедуры, которая разбирала бы очередную строку, изменяя по ссылке значения двух перемененных (одна для имени и одна для балла), уже после вызова этой процедуры для очередной строки записывайте очередные значения переменных в массивы (каждую в свой).
Задача про банкомат:
Пользователь вводит целое число - сумму в некоторой валюте, требуется выдать эту сумму купюрами наибольшего достоинства.
Напишите программу, которая в качестве результата скажет как именно надо разменять указанную сумму купюрами наибольшего достоинства (укажет количество для купюры каждого типа)
-- т.е. слева имя и через произвольное количество пробелов число баллов. Разберите эту строку получив имя пользователя как значение в переменной типа string и число баллов в переменной типа integer;
Пользователь вводит строку произвольных символов, посчитайте количество цифр в ней, численное значение которых больше либо равно 5.
var
I, h, n, Code : Integer;
S: string;
begin
n:=0; //счетчик нужных значений
writeln('Vvedite stroku');
readln(S);
for h:=1 to length(S) do
begin
Val(S[h], I, Code);
if (Code=0) AND (I >=5) then
inc(n);
end;
writeln('V stroke ',n,' cisel >= 5');
readln();
end.