Мне нужно создать программу, которая заполняет массив символами Upcase, а затем сортирует эти символы во втором массиве.Он должен изменить каждый символ в старом массиве с помощью '*', а затем поместить его во второй массив (сортировка идет от самого низкого кода ASCII к самому высокому).
Я сделал первую часть и до этогоДело в том, что есть только одна проблема.Моя работа не работает, когда я заполняю массив первым элементом, имеющим самый маленький код ascii, например: 'A','C','E','F','G'
.Выходные данные для этого: T2[1] = A
, а остальная часть массива T2 заполнена звездами.
Принимая во внимание, что если я не ставлю первый символ в качестве самого нижнего, он прекрасно работает как: 'E','A','K'....
program XD;
uses wincrt;
type
tab = array[1..100] of char;
var
t1,t2:tab;
i,n ,k,p,o,v: integer;
begin
repeat
begin
writeln('Donnez la taille T ');
Readln(n);
end;
until(n in [5..20]);
for i := 1 to n do
begin
repeat
begin
writeln('Donnez T1[',i,']');
readln(T1[i]);
end;
until(UPCASE(T1[i]) = T1[i]);
end;
for i := 1 to n do Begin
o := ord(T1[1]);
for k := 2 to n do begin
if (T1[K] <> '*') AND (ord(T1[k]) < o) then
begin
o := ord (T1[k]);
p := k;
End;
end;
T1[p] := '*';
T2[v] := chr(o);
v := v+1;
end;
for i := 1 to n do Begin
writeln('T2[',i,']=', T2[i]);
end;
end.