uses GraphABC; Var a,h,x,y:integer; c:char; begin writeln('Read or random? n/r'); repeat readln(c); until (c='n') or (c='r'); if c='r' then begin a:=random(200); writeln('Длина ребра=',a,', Объём=',power(a,3)); end else begin readln(a); writeln('Объём=',power(a,3)); end; x:=windowwidth div 2; y:=round(windowheight*1/3); line(x,y,x,y+a); line(x+a,y,x+a,y+a); line(x,y+a,x+a,y+a); line(x+a div 2,y+a div 2,x+a div 2+a,y+a div 2); line(x,y,x+a,y); line(x+a div 2,y+a div 2,x+a div 2,y-a div 2); line(x,y,x+a div 2, y-a div 2); line(x,y+a,x+a div 2, y+a div 2); line(x+a div 2, y-a div 2,x+a div 2+a,y-a div 2); line(x+a div 2+a, y-a div 2,x+a,y); line(x+a div 2+a,y-a div 2,x+a div 2+a,y-a div 2+a); line(x+a div 2+a, y-a div 2+a,x+a,y+a); end.
Пример ввода: n 16 Пример вывода: Объём=4096
//2
Var X,P:integer; beginwrite('X:'); readln(X); write('P:'); readln(P); if not(odd(X)) then writeln('Кратно 2'); if X mod 3=0 then writeln('Кратно 3'); if X mod P=0 then writeln('Кратно ',P); end.
Пример ввода: 18 6 Пример вывода: Кратно 2 Кратно 3 Кратно 6
Для проверки, закрыты ли все скобки, можно было бы просто их посчитать, но мы будем проверять правильность вложенности. Для этого нам пригодится std::stack (да, и решаем на С++).
#include <iostream> #include <stack> #include <string> using namespace std; typedef unsigned short int USI;
bool hasCorrectBracing(string);
int main() { setlocale(0, ""); // кириллица USI N; cout << "N = "; cin >> N; string row;
for(size_t i = 1; i <= N; i++) { cout << "Строка " << i << ": "; cin >> row; if ( hasCorrectBracing(row) ) { cout << "Good\n"; } else { cout < "Bad\n"; } }
//1
uses
GraphABC;
Var
a,h,x,y:integer;
c:char;
begin
writeln('Read or random? n/r');
repeat
readln(c);
until (c='n') or (c='r');
if c='r' then
begin
a:=random(200);
writeln('Длина ребра=',a,', Объём=',power(a,3));
end
else
begin
readln(a);
writeln('Объём=',power(a,3));
end;
x:=windowwidth div 2;
y:=round(windowheight*1/3);
line(x,y,x,y+a);
line(x+a,y,x+a,y+a);
line(x,y+a,x+a,y+a);
line(x+a div 2,y+a div 2,x+a div 2+a,y+a div 2);
line(x,y,x+a,y);
line(x+a div 2,y+a div 2,x+a div 2,y-a div 2);
line(x,y,x+a div 2, y-a div 2);
line(x,y+a,x+a div 2, y+a div 2);
line(x+a div 2, y-a div 2,x+a div 2+a,y-a div 2);
line(x+a div 2+a, y-a div 2,x+a,y);
line(x+a div 2+a,y-a div 2,x+a div 2+a,y-a div 2+a);
line(x+a div 2+a, y-a div 2+a,x+a,y+a);
end.
Пример ввода:
n
16
Пример вывода:
Объём=4096
//2
Var
X,P:integer;
beginwrite('X:');
readln(X);
write('P:');
readln(P);
if not(odd(X)) then writeln('Кратно 2');
if X mod 3=0 then writeln('Кратно 3');
if X mod P=0 then writeln('Кратно ',P);
end.
Пример ввода:
18
6
Пример вывода:
Кратно 2
Кратно 3
Кратно 6
#include <iostream>
#include <stack>
#include <string>
using namespace std;
typedef unsigned short int USI;
bool hasCorrectBracing(string);
int main()
{
setlocale(0, ""); // кириллица
USI N;
cout << "N = ";
cin >> N;
string row;
for(size_t i = 1; i <= N; i++)
{
cout << "Строка " << i << ": ";
cin >> row;
if ( hasCorrectBracing(row) )
{
cout << "Good\n";
}
else
{
cout < "Bad\n";
}
}
return 0;
}
bool hasCorrectBracing(string r)
{
stack <char> st;
for(string::size_type c = 0;
c < r.size();
c++)
{
if (r[c] == '(')
{
st.push('(');
continue;
}
else
{
if (r[c] == '[')
{
st.push('[');
continue;
}
else
{
if (r[c] == '{')
{
st.push('{');
continue;
}
}
} // end 1st if
if
(
(
(st.top() == '(')
&&
(r[c] == ')')
)
||
(
(st.top() == '[')
&&
(r[c] == ']')
)
||
(
(st.top() == '{')
&&
(r[c] == '}')
)
)
{
st.pop();
} //end 2nd if
} // end for
if ( st.empty() )
{
return true;
}
else
{
return false;
}
} // end fun