Amrlololoshka
26.09.2020 12:14

Калькулятор ( ів) Лабіринт атракціону побудовано у вигляді квадрата який складається з N*N сегментів. Кожен з сегментів може бути порожнім, або заповненим камінням. Гарантується, що лівий верхній і правий нижній сегменти порожні. Лабіринт огороджений зверху, зліва, справа і знизу стінами, які відсутні тільки в лівому верхньому і правому нижньому кутку. Директор атракціону вирішив пофарбувати стіни лабіринту які видно зсередини (див. малюнок). До ть йому створити калькулятор для розрахунку фарби необхідної для цього.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ziniakovarenatzinca
21.05.2020 21:54
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!

procedure FillStack(st:Stack<integer>; sq:sequence of integer);
begin
  foreach var t in sq do st.Push(t);
end;

procedure PrintStack(st:Stack<integer>; s:string);
begin
  Write(s); st.Println
end;

procedure ToStack(sta,stb:Stack<integer>; Even:boolean);
begin
  if Even then
    while sta.Count>0 do begin
      var v:=sta.Pop;
      if v.IsEven then begin
        stb.Push(v);
        exit
        end
      end
  else
    while sta.Count>0 do begin
      var v:=sta.Pop;
      if v.IsOdd then begin
        stb.Push(v);
        exit
        end
      end
end;

begin
  var st1:=new Stack<integer>;
  FillStack(st1,Seq(2,13,20,18,1));
  PrintStack(st1,'Стек1: ');
  var st2:=new Stack<integer>;
  FillStack(st2,Seq(9,11,10,8,4));
  PrintStack(st2,'Стек2: ');
  var st3:=new Stack<integer>;
  while st1.Count+st2.Count>0 do begin
    ToStack(st1,st3,True);
    ToStack(st2,st3,False);
    end;
  PrintStack(st3,'Стек3: ')  
end.

Результат
Стек1: 1 18 20 13 2
Стек2: 4 8 10 11 9
Стек3: 2 9 20 11 18
0,0(0 оценок)
Ответ:
калинка2006
21.05.2020 21:54
#include <stdlib.h>
#include <iostream>
#include <iomanip>
using namespace std;

int main() {
const int n = 3;
const int m = 4;
int a[n][m];
int s=0;

cout << "Исходный массив" <<endl;
srand(time(0));
for (int i = 0; i < n; i++){
 for (int j = 0; j < m; j++){
a[i][j]=10+(51.0 / RAND_MAX) * rand();
cout << fixed << setw (7) << a[i][j];
 }
cout <<endl;
}
 for (int j = 0; j < m; j++)
  s = s+a[0][j]+a[n-1][j];
 for (int i = 1; i < n-1; i++)
  s = s+a[i][0]+a[i][m-1];
cout << "s = " << s << endl;
}

Пример:
Исходный массив
  55 33 24 41
  50 60 41 11
  17 33 45 50
s = 359
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота