А бесконечном поле есть одна вертикальная стена и несколько горизонтальных стен, пересекающих эту вертикальную стену. К концам вертикальной стены не при-мыкают горизонтальные стены. Длины горизонтальных стен и их количество неиз-вестны. Расстояния между горизонтальными стенами не известны. Робот нахо-дится в клетке, расположенной непосредственно справа вертикальной стены, около ее нижнего края. На рисунке указан один из возможных расположения стен и Робота (Робот обозначен буквой «Р»). Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно справа и слева от вертикальной стены. Робот должен закрасить толь-ко клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок). При исполнении алгоритма Робот не должен разрушиться, выполнение алгорит-ма должно завершиться. Конечное расположение Робота может быть произвольным.
Алгоритм должен решать задачу для любого допустимого расположения стен, их количества и размера, а также расстояния между горизонтальными стенами.
Заранее за
Відповідь:
#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL , "Rus");
int N,t,P,output = 0;
cout << "Введите кол-во людей в очереди N: ";
cin >> N;
cout << "Введите время на одного человека t: ";
cin >> t;
cout << "Введите ваше место в очереди P: ";
cin >> P;
for(int i = 0; i < P; i++ ){
output += t;
}
cout << "Перед вами " << P-1 << " человек вам придеться ждать: " << output << " минут" << endl;
return 0;
}
1) program Array16;
var
i:integer; // счетчик в цикле
N:integer;
a: array [1..10] of integer;
begin
writeln('Введите N (N<10)');
readln(N); // ввод размера массива
for i:=1 to N do
begin
write('a[',i,']=');
readln(A[i]); // ручной ввод значений массива
end;
writeln('Результат');
for i:=1 to N do
begin
// вычисление и вывод элементов в указанном порядке
write(' ',a[(i div 2+1)*((i) mod 2)+ n*((i+1)mod 2)-((i div 2)-1)*((i+1) mod 2)]);
end;
end.
2) Var A:array[1..100] of integer;
i,n:byte;
Begin
write('Введите n<=100: ');readln(n);
For i:=1 to n do
Begin
A[i]:=random(31);
write(A[i]:3);
End;
writeln;
For i:=1 to n div 2 do
write(A[i]:3,A[n-i+1]:3);
if n mod 2 <>0 then write(A[n div 2+1]:3);
End.