Напишите программу, которая решает следующую . в верхнем левом углу стандартного графического окна, появляется красный восьмиугольник (см. рисунок ниже). этот восьмиугольник начинает движение вниз и вправо под углом в 45 градусов (смещается по x и по y на одинаковое количество пикселей). дойдя до нижней границы окна, восьмиугольник продолжает движение вверх и вправо по тем же углом, пока не соприкоснется с правой границей окна. соприкоснувшись с ней он продолжает движение вверх и влево, а соприкоснувшись с верхней границей, движется вниз и влево до левой границы графического окна. соприкосновение с левой границей приводит к очередной смене направления — вниз и вправо. восьмиугольник должен остановиться у левой границы окна после пятого соприкосновения с ней. размеры стороны квадрата, в который вписан восьмиугольник, и величина смещения в программе константами.
#include <math.h>
#include <stdlib.h>
#include <conio.h>
int main() {
double a, b, y;
int x;
a = 6.72f;
b = 4.85f;
printf("vvedite x=");
scanf("%d", &x);
switch (x) {
case 1: y = 1 + sqrt(a + abs(x)); break;
case 7: y = 2 + a*a*x*x + exp(x); break;
case 5: y = x*sqrt(1+b*log(a*a*x)); break;
default:
printf("znachenie x zadano neverno\n");
printf("nagmi Enter\n");
getch();
return 0;
}
printf("x=%2dy=%5.2lf", x, y);
getch();
return 0;
}
// PascalABC.NET 3.1, сборка 1198 от 11.03.2016
begin
var a:=ArrRandom(ReadInteger('n='),0,2); a.Println;
a.Sorted.Println
end.
Тестовое решение:
n= 15
1 2 0 2 2 0 2 0 2 0 0 1 0 0 2
0 0 0 0 0 0 0 1 1 2 2 2 2 2 2
2. Но, поскольку считается, что школьникам больше заняться нечем, их заставляют писать примерно в таком стиле (и время займет, и ощибок понаделают):
// PascalABC.NET 3.1, сборка 1198 от 11.03.2016
const
nn=100;
var
i,j,n,t:integer;
a:array[1..nn] of integer;
begin
Write('n='); Read(n);
Randomize;
for i:=1 to n do begin
a[i]:=Random(3);
Write(a[i],' ')
end;
Writeln;
for i:=1 to n-1 do
for j:=1 to n-1 do
if a[j]>a[j+1] then begin
t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t
end;
for i:=1 to n do Write(a[i],' ');
Writeln;
end.
Тестовое решение:
n=15
0 1 1 0 2 1 0 2 1 2 1 0 0 2 0
0 0 0 0 0 0 1 1 1 1 1 2 2 2 2