Перевести с С++ на Pascal
#include
#include
#include
using namespace std;
int main()
{
int N = 20;
int A[N];
srand(time(NULL));
for (int i = 0; i < N; i++)
A[i] =50- rand() % 100 ;
for (int i = 0; i < N; i++)
cout << A[i] << " ";
cout << endl << endl;
int min = A[0],pos = 0,count = 0,temp=0;
for (int i = 0; i < N; i++)
{
if (min > A[i])
{
min = A[i];
pos = i;
}
}
for (int i = pos + 1; i < N; i++)
{
if (A[i] < 0)
count++;
if (count == 3)
{
temp = A[i];
break;
}
}
cout <<" Min = " << min << " 3otr = "<< temp<<"\n";
for (int i = 0; i < N; i++)
A[pos] = temp;
for (int i = 0; i < N; i++)
cout << A[i] << " ";
return 0;
}
from turtle import * # импортирую *встроенную(она скачана при
# установке питона) библиотеку turtle
# * для упрощения пр. до: turtle.комманда после: команда #
# (избавляемся от turtle. - заменяем
# *turtle.комманда() на просто *команда())
reset() # очищаю экран (вдруг что-то случится)
t = Turtle()
t.hideturtle() # не показывать курсор черепахи
screensize(800, 800, color('black')) # расширение окна
# цвет
# numinput(заголовок, основной текст и т.д.) такая функция в turtle она просит пользователя ввести #число от minval до maxval - все задается
# иначе все выбирает (из цифр) (любое число пр. - 3054501210321)
color = numinput('Выберите цвет звезды: ',
'1 - красный, 2 - желтый, 3 - синий',
minval=1, # минимальное значение
maxval=3) # максимальное значение
# условные операторы (выполняют действие при условии...)
if color == 1:
color = t.color("red")
elif color == 2:
color = t.color("yellow")
elif color == 3:
color = t.color("blue")
# скорость и обновить экран
speed(0) # 0 - самая быстрая, также как и 10, без разницы
update()
# функция (выполняется когда пишут имя_функции(и
# аргументы(size и т.п.) бывает и без них тогда просто пустое
# поле))
def draw_star(size):
t.begin_fill() # заполнить когда t.end_fill()
# рисую
angle = 144 # начальный луч
# цикл (_ ставлю когда ничего не объявляю)
for _ in range(5): # 5 длинных сторон(оригинальный
t.forward(size) # нарисовать линии
t.right(angle) # и повернуть
t.end_fill()
# смещаем на 300 вправо по x
t.left(180)
t.forward(200)
t.right(180)
# рисуем
draw_star(100 * 3) # размер
# ну и обновлять экран пока True (всегда или до выхода
# пользователя из программы)
while True:
update()
var
k : byte;
arr : array of int64;
function Fn (c : byte) : int64;
begin
if arr[c - 1] <> 0 then
begin
Fn := arr[c - 1];
exit;
end;
if c < 3 then Fn := 1
else Fn := Fn (c - 1) + Fn (c - 2);
arr[c - 1] := Result;
end;
begin
read (k);
setlength (arr, k);
writeln (Fn (k));
end.
var
n : byte;
arr : array of int64;
tmp : int64;
function Fn (c : byte) : int64;
begin
if arr[c - 1] <> 0 then
begin
Fn := arr[c - 1];
exit;
end;
if c < 3 then Fn := 1
else Fn := Fn (c - 1) + Fn (c - 2);
arr[c - 1] := Result;
end;
begin
read (n);
setlength (arr, n);
tmp := (Fn (n));
tmp := 0;
for i := 1 to n do
tmp := (tmp + arr[i]) mod 2;
if tmp = 1 then writeln ('No') else writeln ('Yes');
end.
Это нисходящее динамическое программирование. В массиве Arr храняится сами числа. Рекурсивная функция Fn (n) возвращает N-ое число. В б) мы сначала просчитываем n чисел (то есть считаем число n, так как для него нужны все предыдущие), а потом ищем их сумму. Так как числа могут быть большими, то мы берем сразу их остаток от деления 2 во избежание преполнения.