Дай да почваме леко-полека:
Първи въпрос
Това е е***и учебника, ако така е написано. Има два вида предаване на параметри - по име (като указател) и по стойност. Това ще рече, че ако имаш променлива i, която е равна на 4 например, и я предадеш като параметър по стойност на функция, то функцията ще получи числото 4 и може да го използва за каквото е необходимо, но както и да го манипулира няма да се промени нищо. Ако се предаде по име, то функцията ще получи адреса на променливата, т.е. ще има достъп до нея и ако я манипулира, това ще се отрази. Нещо много сложно стана, нека дам пример:
Код:
function po_stoinost( i: integer )
begin
i:=i+1;
end;
function po_ime( var i: integer )
begin
i:=i+1;
end;
begin
i:=4;
po_stoinost( i );
writeln(i);
po_ime( i );
writeln(i);
end.
Ще ти изведе следното:
4
5
Втори въпрос
Тези интервали дефинират масиви. Интервалът 1..30 ще ти дефинира едномерен масив с 30 елемента, а интервалът 1..30,1..30 ще дефинира двумерен масив с общо 30х30 или 900 елемента
Трети въпрос
:4 означава да се изведе числото на 4 позиции, т.е. 2 ще се изведе като 3 интервала и числото 2, а 22 ще се изведе като 2 интервала и числото 22. Това е удобно да се форматират резултатите. Форматът :4:2 указва отново извеждане на 4 позиции, като 2 означава броя позиции за дробната част. Например 2.222:4:2 ще изглежда 2.22
Пети и шести въпрос
begin … end заграждат блок от команди, т.е разглеждат се като едно цяло. Независимо след if или for или какъвто и да било друг оператор е необходимо да се сложи begin … end за да се изпълнят повече от една команди. Ето пак един пример:
Код:
if( 1 = 2 )
writeln( 'Лъжа' );
writeln( 'Истина' );
if( 1 = 2 )
begin
writeln( 'Лъжа' );
writeln( 'Истина' );
end
Първото ще изпише „Истина“, защото if-ът, който не се изпълнява, ще важи само за първата команда. Второто няма да изпише нищо, защото отново if-ът важи само за първата команда след него, но това в случая е begin … end, който съдържа в себе си повече команди.
Седми въпрос
Просто преди else не трябва да има ;
Успех!
П.П. може да има някоя и друга грешка в синтаксиса, че сигурно 20 г. не съм писал на Pascal.