Всем привет решить задачу по информатике. Задача 1
Коридор длиной 15 клеток решили украсить новогодними игрушками. Нужно подвесить шарики к потолку в шахматном порядке, каждый на своей клетке (то есть через одну начиная с первой). Напиши для Р.О.М.А такую программу, чтобы он по коридору от левого края к правому и развесил шарики (покрасил соответствующие клетки).
int main() { std::string str; getline(std::cin,str);
const int n = 5; std::string c[n] = { "=", "==", "!=", "a +=", "a -=" }; std::string psl[n] = { ": =", "=", "#", "a = a +", "a = a -" };
for (unsigned int i = n-1; i > 0; i--){ int p = str.find(c[i]); while (p > 0) { str.replace(p, c[i].size(), psl[i]); p = str.find(c[i]); } } std::cout << str; return 0; }
Значит так: мы создаем массив избыточной длины, куда потом будем записывать рандомные числа. Так же мы создаем массив-счетчик 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.
#include <string>
int main()
{
std::string str;
getline(std::cin,str);
const int n = 5;
std::string c[n] = { "=", "==", "!=", "a +=", "a -=" };
std::string psl[n] = { ": =", "=", "#", "a = a +", "a = a -" };
for (unsigned int i = n-1; i > 0; i--){
int p = str.find(c[i]);
while (p > 0)
{
str.replace(p, c[i].size(), psl[i]);
p = str.find(c[i]);
}
}
std::cout << str;
return 0;
}
Вот пример программы на паскале 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.