Дан массив, состоящий из N целых чисел, количество элементов вводится с клавиатуры. Составить программу, в которой будут реализованы следующие действия:
а) заполнение массива случайными числами и вывод полученного массива на экран;
б) подсчет количества тех элементов массива, значения которых больше заданного числа x (вводит пользователь с клавиатуры) и одновременно кратны 5;
Для начала определим что такое разряд числа. Разряд это порядковый номер цифры, и счет начинается с запятой, отделяющей дробь, счет начинается с 0 разряда до последней цифры. Например, число 1234,0: 0 разряд - 4, 1 разряд - 3, 2 разряд - 2 и 3 разряд единица.
Теперь определимся как переводить из 16й в 10ю. Для перевода шестнадцатеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа.
Т.е.:
Чтобы перевести буквы в числа надо воспользоваться списком:
A=10; B=11; C=12; D=13; E=14; F=15
Теперь расмотрим данные нам числа:
program zadacha;
var
s,temp,max,min:string;
i,mxp,mnp:integer;
begin
writeln('Введите строку...');
readln(s);
s:=s+' ';
temp:='';
max:='';
min:=s;
for i:=1 to length(s) do
begin
if s[i]<>' ' then
temp:=temp+s[i];
if (s[i]=' ') and (temp<>'') then
begin
if Length(temp)<Length(min) then
begin
min:=temp;
mnp:=i-Length(temp)
end;
if Length(temp)>Length(max) then
begin
max:=temp;
mxp:=i-Length(temp)
end;
temp:='';
end;
end;
if max<>'' then
begin
Writeln('Самое длинное: ',max,' Оно начинается с: ',mxp);
Writeln('Самое короткое: ',min,' Оно начинается с: ',mnp)
end
else
WriteLn('В данной строке нет слов!')
end.