Значит так: мы создаем массив избыточной длины, куда потом будем записывать рандомные числа. Так же мы создаем массив-счетчик b (у него индексами являются сами числа, а элементами - количество этого числа в массиве А), куда будет присваиваться, сколько раз нам встречается то или иное число (перед этим мы массив обязательно обнулим). В конце мы смотрим максимальное число из массива-счетчика. Вуаля!
Вот пример программы на паскале ABC:
var a:array [1..1000000] of integer; b:array [1..10] of longint; c:integer; i,max,n:longint; begin write('Введите число элементов массива: '); readln(n); max:=0; for i:=1 to 10 do b[i]:=0; for i:=1 to n do begin a[i]:=random(10)+1; write(a[i],' '); b[a[i]]:=b[a[i]]+1 end; for i:=1 to 10 do if b[i]>max then begin c:=i; max:=b[i] end; writeln; writeln('Чаще всего в массиве встречается число ',c) end.
Паскаль АВС. Программа вывводит дату следующего дня. Чтоб не утяжелять программу, не стал писать проверку правильности введения даты - то есть пользователь должен вводить только правильные цифры :)
Program Upmixer; var day, month, year:integer; begin writeln('Введите дату:'); write('День:'); read (day); write('Месяц:'); read (month); write('Год:'); read (year); day:=day+1; {если было введено 29 февраля високосного года} if (((year mod 4)=0) and ((year mod 100)<>0) and (month=2) and (day=30)) then begin day:=1; month:=month+1; end; {если было введено 28 февраля невисокосного года} if (((year mod 4)<>0) and (month=2) and (day=29)) then begin day:=1; month:=month+1; end; {другие дни} if ((day=31) and ((month=4) or(month=6) or (month=9) or (month=11))) then begin day:=1; month:=month+1; end; if ((day=32) and ((month=1) or(month=3) or (month=5) or (month=7) or (month=8) or (month=10))) then begin day:=1; month:=month+1; end; {31 декабря} if ((day=32) and (month=12)) then begin day:=1; month:=1; year:=year+1; end; writeln('Завтра ', day,' ',month,' ',year); end.
Вот пример программы на паскале ABC:
var a:array [1..1000000] of integer;
b:array [1..10] of longint;
c:integer;
i,max,n:longint;
begin
write('Введите число элементов массива: ');
readln(n);
max:=0;
for i:=1 to 10 do
b[i]:=0;
for i:=1 to n do begin
a[i]:=random(10)+1;
write(a[i],' ');
b[a[i]]:=b[a[i]]+1
end;
for i:=1 to 10 do if b[i]>max then
begin
c:=i;
max:=b[i]
end;
writeln;
writeln('Чаще всего в массиве встречается число ',c)
end.
Программа вывводит дату следующего дня. Чтоб не утяжелять программу, не стал писать проверку правильности введения даты - то есть пользователь должен вводить только правильные цифры :)
Program Upmixer;
var
day, month, year:integer;
begin
writeln('Введите дату:');
write('День:'); read (day);
write('Месяц:'); read (month);
write('Год:'); read (year);
day:=day+1;
{если было введено 29 февраля високосного года}
if (((year mod 4)=0) and ((year mod 100)<>0) and (month=2) and (day=30)) then
begin
day:=1;
month:=month+1;
end;
{если было введено 28 февраля невисокосного года}
if (((year mod 4)<>0) and (month=2) and (day=29)) then
begin
day:=1;
month:=month+1;
end;
{другие дни}
if ((day=31) and ((month=4) or(month=6) or (month=9) or (month=11))) then
begin
day:=1;
month:=month+1;
end;
if ((day=32) and ((month=1) or(month=3) or (month=5) or (month=7) or (month=8) or (month=10))) then
begin
day:=1;
month:=month+1;
end;
{31 декабря}
if ((day=32) and (month=12)) then
begin
day:=1;
month:=1;
year:=year+1;
end;
writeln('Завтра ', day,' ',month,' ',year);
end.