webForumDet fria alternativet

Funktioner i Object Pascal .NET

3 svar · 440 visningar · startad av oskob

oskobMedlem sedan maj 20021 558 inlägg
#1

Hej!

Har nyss börjat en kurs i pascal.net där vi fått ett kompendium där allt som lärarna tycker vi ska kunna står. Jag hittar dock ingen vettig motsvarighet till t.ex. php:ns function. I det sammanhang function i pascal nämns i kompendiet är i klasser men jag vill kunna skapa funktioner utan att skapa en klass. Känns lite overkill om man bara ska knåpa ihop något enkelt.

Jag vill ha något som fungerar typ såhär (Själva uträknigen är oviktig. just sättet att skapa funktioner är det jag är ute efter):

function area(diameter) {
return ((diameter/2)*2) * 3.14;
}

pizzansDiameter = 30;
echo "Pizzanz area är " . area(pizzansDiameter);

Koden funkar inte för 5 öre i varken php eller pascal. Bara så ni fattar hur jag tänker ;)

Tack på förhand!

CompusaMedlem sedan jan. 20023 327 inlägg
#2

Hmm om Object Pascal är helt objektorienterat så kommer du nog inte undan att du måste ha funktionerna i klasser. Nu kan jag inte ett dyft om Object Pascal men om man drar en parallel till exempelvis Java så är detta troligt. C++ är exempelvis inte helt objektorienterat utan har stöd för objektorienterad programmering vilket är en stor skillnand eftersom man kan fuska §jr

Vet ej om jag missuppfattat din fråga men dessa två funktioner gör samma sak. Anting returnerar man genom att tilldela ett värde till en variabel som har samma namn som funktionen, eller så returnerar man genom att tilldela ett värde till en variabel som heter Result. Det är tydligen detta som gäller för funktioner.

Function AddTwoNumbers : Integer;
begin
	AddTwoNumbers := 1250 + 48;
end;

Function AddTwoNumbers : Integer;
begin
	Result := 1250 + 48;
end;

Funktioner:
http://www.functionx.com/objectpascal/Lesson11.htm

Funktioner och parametrar:
http://www.functionx.com/objectpascal/Lesson14.htm

Verkar bra?
http://www.functionx.com/objectpascal/

oskobMedlem sedan maj 20021 558 inlägg
#3

Hmm... Det verkar som det jag är ute efter kallas procedures i pascall. Tack för alla info och speciellt länkarna!

oskobMedlem sedan maj 20021 558 inlägg
#4

Sådärja. Nu hittade jag lösningen jag var ute efter. Det var visst Function after all:

Function hej (inp:integer) : integer;
begin
  Result := inp *2;
end;

mittTal := hej(2);
125 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)