Если я не ошибаюсь "end" здесь вообще не нужно)
Ну тут совсем всё просто:
Смотрим на входные данные, исходное слово "апельсин", а зашифрованное "твчюодыа".
Вспоминаем принцип шифра "Цезаря", что бы зашифровать текст, необходимо определить сдвиг по алфавиту, так называемый "корень". То есть, если корень равен 3, то все буквы А в исходном послании заменятся на (сдвигаемся по алфавиту на 3 буквы вправо) букву Г. Но что делать если мы шифруем букву Ю? Считаем сдвиг Ю - Я это 1, а дальше просто "прыгаем" в начало алфавита Я - А это 2, А - Б это 3, следовательно при ключе 3 буква Ю станет буквой Б.
В нашем случаи все что нужно, так это проверить, на сколько букв сместилась буква "а", в слове "апельсин", что превратилась в букву "т", в слове "твчюодыа".
Смотрим по даному алфавиту и считаем количество сдвигов, это будет 19. Теперь провевим, что если сдвинуть остальные буквы в слове апельсин на 19 символов вправо по алфавиту, если они будут соответствовать зашифрованым, то мы нашли корень правильно.
В нашем случаи именно так и есть, то есть ответ задачи ключь = 19.
1) В цикле Repeat Until идет проверка, что число введено в диапазоне [0..200}
var
i,n:integer;
a:longint;
p:real;
begin
p:=1;
Repeat
readln(n);
Until (n>=0)and(n<=200);
for i:=1 to n do
begin
readln(a);
p:=p*a;
end;
writeln(p);
end.
2)
var
i,n:integer;
a,max:longint;
begin
Repeat
readln(n);
Until (n>=0)and(n<=200);
for i:=1 to n do
begin
readln(a);
if a>max then
max:=a;
end;
writeln(max);
end.
3)
var
i,n:integer;
a,min:longint;
begin
Repeat
readln(n);
Until (n>=0)and(n<=200);
for i:=1 to n do
begin
readln(a);
if a<min then
min:=a;
end;
writeln(min);
end.
Условие попадания точки M(x,y) в треугольник с указанными координатами вершин можно описать системой неравенств:
Если положить в методе Монте-Карло x∈(-1,1), y∉(0,1) для вещественных х,y,
то площадь треугольника можно найти, как площадь прямоугольника, представленного в задании (она равна 2), умноженную на отношение количества точек, попавших в контур треугольника, к общему количеству точек.
// PascalABC.NET 3.0, сборка 1160 от 05.02.2016
begin
var n:=100000;
var k:=Range(1,n).Select(e->Rec(2*Random()-1,Random())).
Where(e->(e.Item2>=0) and (e.Item2<=e.Item1+1) and
(e.Item2<=1-e.Item1)).Count;
Writeln(2*k/n:0:3)
end.
<u><em>Тестовое решение:</em></u>1.001
<em>// PascalABC.NET 3.2, сборка 1334 от 12.11.2016</em>
begin
var n:=ReadInteger('n=');
var a:=SeqRandom(n,-20,20).Select(e->real(e)).ToArray;
a.Println;
var b:=a.Where(x->x=0).Concat(a.Where(x->x<0)).ToArray;
a:=b.Concat(a.Where(x->x>0)).ToArray;
a.Println;
end.
Пример
n= 20
-16 1 16 -11 20 -6 -11 15 0 -9 -14 0 4 -4 2 14 19 7 -14 4
0 0 -16 -11 -6 -11 -9 -14 -4 -14 1 16 20 15 4 2 14 19 7 4