Function func32722523(a As Range) As Integer
Dim min_value As Integer, r As Range
For Each r In a
If r Like "*6" Then Exit For
Next
min_value = r
For Each r In a
If r Like "*6" Then min_value = Application.min(min_value, r)
Next
func32722523 = min_value
End Function
Excel VBA
1) Program Massiv1;
Uses Crt;
var k:array[1..12] of real;
i,c:integer;
begin
clrscr;
write('Введите элементы массива k:');
c:=0;
for i:=1 to 12 do
begin
readln(k[i]);
if (k[i]<0) then Inc(c);
end;
writeln;
writeln;
for i:=1 to 12 do write(k[i]:4:4);
writeln;
writeln('Количество элементов <0:',c);
readkey;
end.
2) Program Massiv2;
Uses Crt;
var m:array[1..10] of integer;
i,c:integer;
begin
clrscr;
write('Введите элементы массива m:');
c:=0;
for i:=1 to 10 do
begin
readln(m[i]);
if (m[i]=3) then Inc(c);
end;
writeln;
writeln;
for i:=1 to 12 do write(m[i]:4);
writeln;
writeln('Количество элементов =3:',c);
readkey;
end.
В третьем задании видимо имеется ввиду номер элемента этого массива, т.к по условию задачи массив у нас один.
3) Program Massiv3;
Uses Crt;
var m:array[1..8] of integer;
i,c,max:integer;
begin
clrscr;
write('Введите элементы массива m:');
c:=0;
for i:=1 to 8 do readln(m[i]);
writeln;
writeln;
max:=m[1]
for i:=1 to 8 do
begin
if (m[i]>max) then
begin
max:=m[i];
c:=i
end;
write(m[i]:4);
end;
writeln('Индекс максимального элемента =:',c);
readkey;
end.
4) Program Massiv4;
Uses Crt;
var m:array[1..12] of integer;
i,c,max,sum:integer;
begin
clrscr;
write('Введите элементы массива m:');
c:=0; sum:=0;
for i:=1 to 12 do readln(m[i]);
writeln;
writeln;
max:=m[1]
for i:=1 to 12 do
begin
if (m[i]>max) then
begin
max:=m[i];
c:=i
end;
write(m[i]:4);
end;
for i:=1 to c-1 do sum:=sum+m[i];
writeln('Количество элементов расположенных до max :',с-1);
writeln('Сумма элементов расположенных до max :',sum);
readkey;
end.
В пятом задании видимо имеется ввиду значения элементов массива меньшие чем сумма первого и последнего
5) Program Massiv5;
Uses Crt;
var k:array[1..15] of real;
sum:real;
i,c:integer;
begin
clrscr;
write('Введите элементы массива k:');
c:=0;
for i:=1 to 15 do readln(k[i]);
sum:=k[1]+k[15];
writeln;
writeln;
for i:=1 to 15 do
begin
write(k[i]:4:4);
if (k[i]<sum) tnen Inc(c);
end;
writeln;
writeln('Количество элементов :',c);
readkey;
end.
ответ: 5533
Проще всего решить данную задачу через программу на питоне:
s = '5' * 72
while '333' in s or '555' in s:
if '555' in s:
s = s.replace('555', '3', 1)
else:
s = s.replace('333', '5', 1)
print(s)
Но, если делать вручную, тогда так:
Возьмём 10 символов из строки, состоящей из 72 идущих подряд цифр 5.
5555555555
Читаем программу: ЕСЛИ нашлось (555) ТО заменить (555, 3)
555 555 555 5
3 3 3 5
Стоит заметить, что у нас получилась строка 3335, но не спешим её заменять на 5, ведь по условию нужно найти все 5 и только если их нет, переходить к else (ИНАЧЕ заменить (333, 5))
Исходя из этого, заменим всю строку по 1 условию (ЕСЛИ нашлось (555) ТО заменить (555, 3)), т.е. просто поделим всё количество на 3.
72 / 3 = 24 без остатка (Это значит, что все пятёрки заменились на тройки)
Итак, остались 24 тройки, запишем 10 символов и посмотрим, что будет:
3333333333
333 333 333 3
5 5 5 3
3 3
Мы видим, что из 9 троек получилась ровно 1, поделим 24 на 9
У нас получится 2 и ещё 6 в остатке, т.е. выглядеть строка будет так:
33 333333
Заменяем на "5"
333 333 33
5 5 33
Это и есть ответ.
Объяснение:
Пример программы (Pascal) , которая ищет минимальное трехзначное число, заканчивающееся цифрой "6" :