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

решите плиз задачу на Турбо Паскале дам 10 баллов

Дано натуральное число, в котором все цифры различны. Определить порядковый номер его максимальной цифры, считая номера: а) от конца числа; б) от начала числа.
Ой, надавали советов.. .

uses CRT;
var
max, p, k, m: Integer;
n: Integer;
begin
clrscr;
max := -1;
k := 1;
write('n=');
readln(n);
while n > 0 do
begin
m := n mod 10;
if m > max then
begin
max := m;
p := k;
end;
k := k+1;
n := n div 10;
end;
writeln('с конца: ',p);
writeln('с начала: ',k-p);
readkey;
end.
ИС
Иван Сиденко
23 519
Лучший ответ
СТРОКА
a:string;
представляется как одномерный массив,
присваеваем первый (или нулевой) индекс
max :=a [ 1 ]; или a[ 0 ]; на опыте проверить можно или отладкой или в справку заглянуть)
maxi := 0 (или 1 я не помню в строке отсчет с нуля начинается или с 1)
далее перебираем и сравниваем все индексы строки А от 0+1 (1+1) до length (a) с переменной мах и если число больше то присваиваем его переменной мах также переменной махi присваиваем счетчик значение счетчика цикла i
for i:=1 to length (a) do if max < strtoint (A[ i ]) then begin max := strtoint (A[ i ]); maxi:= i; end;
берешь число, преобразуешь его к типу "строка"
выдергиваешь из нее первый символ преобразуешь его к типу число,
запоминаешь в его в переменной ХХ а его позицию НН
достаешь из строки следующий символ, пребразуешь его к типу число сравниваешь это число с ХХ
ЕСЛИ больше то запоминаешь число в XX а позицию в НН ИНАЧЕ ничего не делаешь
и так до конца строки.
все

для случая б начинать с последнего символа