2. сколько клеток лабиринта, включая закрашенную, соответствуют требованию, что, начав движение в ней и выполнив предложенную ниже программу, робот уцелеет и остановится в закрашенной клетке (клетка f6)? если робот начнѐт движение в сторону находящейся рядом с ним стены, то он разрушится и программа прервѐтся. в тексте решения перерисуйте лабиринт и пометьте крестиками соответствующие клетки. (10 )
программа:
начало
пока снизу свободно или справа свободно
если снизу свободно
то вниз
конец если
если справа свободно
то вправо
конец если
конец пока
конец
n=5;
Var
ar:array[1..n] of integer;
ar2:array[1..n] of integer;
i,k:integer;
function prost(a:integer):boolean;
var i:integer;
b:boolean;
begin
b:=true;
for i:=2 to a div 2 do
if a mod i=0 then
begin;
b:=false;
break;
end;
if a=1 then b:=false;
prost:=b;
end;
begin;
randomize;
k:=0;
for i:=1 to n do
begin;
ar[i]:=random(101);
write(ar[i]:4);
end;
writeln;
for i:=1 to n do
if prost(ar[i]) then
begin;
inc(k);
ar2[k]:=ar[i];
write(ar2[k]:4);
end;
end.
/*суммы будем сравнивать по модулю, в ином случае программа не будет иметь смысла, так как сумма отрицательных всегда будет меньше, чем сумма положительных*/
#include <iostream>
#include <cmath>
using namespace std;
void check() {
float s_positive = 0, s_negative = 0, digit;
try {
cout << "Начинайте ввод чисел" << endl;
do {
cin >> digit;
if (digit > 0)
s_positive += digit;
else
s_negative += digit;
} while (digit != 0);
if (s_positive > abs(s_negative))
cout << "Сумма положительных чисел больше!";
else if (abs(s_negative) > s_positive)
cout << "Сумма отрицательных чисел больше!";
else
cout << "Суммы равны по модулю!";
}
catch (...) {
cout << "Ошибка!";
}
}
signed main() {
setlocale(LC_ALL, "Rus");
check();
return 0;
}