В программировании отдельные части большой программы могут выполняться либо по очереди друг за другом, то есть последовательно, либо одновременно друг с другом, то есть параллельно. Во втором случае говорят о многопоточности, то есть каждый скрипт работает в своем потоке, а разные потоки текут во времени одновременно.
Когда для каждого спрайта одного проекта вы добавляете свою конструкцию блоков, которая начинается с команды "когда флажок нажат", то как только игра запускается, оба героя начинают параллельно независимо друг от друга выполнять свои команды. Это пример одновременного выполнения скриптов.
Более того, один и тот же спрайт может содержать два независимых скрипта, каждый из которых будет выполняться в своем потоке. Рассмотрим пример. Пусть кот ходит по сцене и при этом меняет свой костюм.
1) Для оптимизации кода. Если у вас один и тот же код повторяется много-много раз, то это не есть хорошо. Поэтому люди придумали процедуры/функции, которые выполняют повторяющийся функционал. Процедуры, очень грубо говоря - это мини-программа в программе.
2) Их иначе не создать. Языки программирования переводят наши в компьютерный язык, чтобы на ПК понимал, что мы от него хотим. Языки программирование - некие переводчики между нашим языком и языком ПК.
3) Оптимизирует код. Удобно при использование. Выглядит красиво. Можно не писать один и тот же код по 100 раз, в таком случае - у нас было бы очень-очень много одинаковых блоков-кода в программе.
Объяснение:
uses crt;
var i,count:integer;
a:array[1..15] of integer;
begin
randomize;
count:=0;
writeln('Первый екзамен сдало 15 человек ');
for i:=1 to 15 do
begin
a[i]:=random(5)+1;
if a[i] = 2 then inc(count);
end;
for i:=1 to 15 do writeln('Студент ',i,' написал на ',a[i],' балов '); //не обезательно
writeln('На екзамен допущено ',count,' человек!! ');
readln;
end.