︠741fc83b-5414-4341-9185-aaddeae43bd2i︠ %html
#include
int main(void)
{
int S, k;
S = 0;
for (k = 1; k <= 12345; k++) {
S += k;
}
printf("Summa: %d\n", S);
return 0;
}
~$
~$ gcc summa.c -o summa
~$ ./summa
Summa: 76205685
~$
︡ae06020e-31ab-43f8-8daa-1b40081a1dd6︡{"done":true,"html":"Låt oss med ett exempel visa hur man skriver ett program i C som beräknar summan\n$$\n \\sum_{k=1}^{12345} k.\n$$\nVi skapar en ny fil med filnamnet summa.c och skriver in följande kod i den.\n#include \n\nint main(void)\n{\n int S, k;\n S = 0;\n for (k = 1; k <= 12345; k++) {\n S += k;\n }\n printf(\"Summa: %d\\n\", S);\n return 0;\n}\n
\n~$\n~$ gcc summa.c -o summa\n~$ ./summa\nSumma: 76205685\n~$\n
"}
︠cafdb9c3-3f3a-4847-9308-d4097b15fca0i︠
%html
Vi kan även definiera funktioner och compilera dem som Cython.
︡720af745-0477-43e2-9050-477912318ddd︡{"done":true,"html":"Vi kan även definiera funktioner och compilera dem som Cython."}
︠4bded977-1d60-4f66-ae90-634caab4dd14s︠
%cython
def summa() :
cdef int S, k
S = 0
for k in xrange(1, 12346) :
S = S + k
return S
︡fe5a11fb-d3fd-402f-a2fd-fdf952ea6a9c︡{"stdout":"Defined summa"}︡{"stdout":"\n"}︡{"file":{"filename":"/projects/39c59d8b-025b-4c6d-9fbb-81c16412c45c/.sage/temp/compute4-us/3655/spyx/_projects_39c59d8b_025b_4c6d_9fbb_81c16412c45c__sage_temp_compute4_us_3655_dir_KJIezB_a_pyx/_projects_39c59d8b_025b_4c6d_9fbb_81c16412c45c__sage_temp_compute4_us_3655_dir_KJIezB_a_pyx_0.html","show":true,"text":"Auto-generated code...","url":"/39c59d8b-025b-4c6d-9fbb-81c16412c45c/raw/.sage/temp/compute4-us/3655/spyx/_projects_39c59d8b_025b_4c6d_9fbb_81c16412c45c__sage_temp_compute4_us_3655_dir_KJIezB_a_pyx/_projects_39c59d8b_025b_4c6d_9fbb_81c16412c45c__sage_temp_compute4_us_3655_dir_KJIezB_a_pyx_0.html"},"once":false}︡{"done":true}︡
︠d799c3df-69f9-41f3-bbd5-f610901c56fas︠
summa() # testkörning
︡974a927f-49cd-496f-8d56-b71419baae3d︡{"stdout":"76205685\n"}︡{"done":true}︡
︠fca9cbbd-8899-4c07-aa35-c369e70245b0i︠
%html
En kompilerad funktion är betydligt snabbare än motsvarande kod i Python.
︡3a25fee5-2a27-4b46-b818-bc40bf60dd47︡{"done":true,"html":"En kompilerad funktion är betydligt snabbare än motsvarande kod i Python."}
︠7b708e2d-e4e9-4473-ab38-cde6f9929058s︠
%timeit
summa()
︡e1319138-2baf-4438-9945-9b5a5d0c19d2︡{"stdout":"625 loops, best of 3: 40.1 ns per loop\n"}︡{"done":true}︡
︠6d408217-4f4d-4954-8543-12187d39277cs︠
%timeit
S = 0
for k in xrange(1, 12346) :
S = S + k
︡d4ad88d1-cb86-4ba6-b482-102d9102752b︡{"stdout":"125 loops, best of 3: 5.31 ms per loop"}︡{"stdout":"\n"}︡{"done":true}︡
︠a2a315b8-c684-4d9b-b20a-06a26d6ad9ee︠