Нестандартная задачка по информатике

Задача :
Сложите два n-значных числа ( n не больше 255) используя переменную string .
Вот что я написал , вроде схема рабочая , но не работает . Помогите найти где ошибка , заранее благодарен .

program two;
uses crt ;
var a,b,x,y,k,s:string;
pr,sm,ca,cb,i,z,v:integer ;



Begin
clrscr;
writeln (' vvedite stroku');
readln(a);
writeln (' vvedite stroku');
readln(b);
k:='';
x:='';
y:='';
pr:=0;
sm:=0;

for i:=1 to length(a) do
x:=x+a[i];
y:='';
for i:=1 to length(b) do
y:=y+b[i];
while (y='') or (x='') do
begin
val(x[1],ca,z);
val(y[1],cb,v);
sm:=(ca+cb)mod 10 ;
pr:=(ca+cb)div 10 + sm;
str(sm,s);
k:=s+k;
end;
writeln (k) ;
readkey;
end .
Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий
А почему бы строку в integer не перевести? StrToINt();
раскрыть ветку (4)
Автор поста оценил этот комментарий
Integer не сможет в 225 знаков
раскрыть ветку (3)
Автор поста оценил этот комментарий
while (y='') or (x='') do Не совсем понимаю этот момент.
раскрыть ветку (2)
Автор поста оценил этот комментарий
Вот кстати может быть ошибкой . Смысл в том , что одно число больше и мы к нему прибавляем меньшее . То есть мы должны выполнять цикл до того момента как цифры одного из чисел на станут равными ничему , пустому месту то есть ''. Спасибо) Сейчас попробую)
раскрыть ветку (1)
Автор поста оценил этот комментарий
почему не запустить обход символов чисел в обратном направлении и не складывать по принципу столбика?
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку