Все зависит от того, о каком языке идет речь. Если язык допускает только типизированные массивы, то тип элементов массива может быть любым, как базовым, так и определенным пользователем, но все элементы массива должны быть одного типа. Если в языке допускаются нетипизированные массивы, то любые элементы массива могут иметь любой, предопределенный в языке тип, либо ранее объявленный тип, либо быть бестиповыми. Другими словами, если в языке допускаются нетипизированные массивы, то тип каждого элемента может определяться, а также переопределяться в процессе выполнения программы.
Например, Паскаль - язык с жесткой типизацией. В нем тип массива определяет тип всех элементов этого массива. Сам тип может быть как предопределенным (числовым, логическим, булевым, строковым,...), так и определенным пользователем посредством конструкции Type.
Индекс массива - это порядковый номер элемента в массиве, поэтому он всегда целочисленный. В ряде языков можно указывать индексы вещественного и даже строкового типа, но в любом случае они будут приведены к целочисленным.
Program Program1; var i,n,m,b:integer; s,s1:string; Begin write('Введите значение m: '); readln(m); write('Введите значение n: '); readln(n); write('Введите значение b: '); readln(b); str(b,s); for i:=m to n do begin str(i,s1); if pos(s,s1)=0 then writeln(i); end; end.