Permalänk
Medlem

Programmering med C? Biologi

Tja! förlåt jag vet att det finns massa trådar liknandess denna men jag har inte hittat någon som svarar på mina frågor tillräckligt.

Jag är intresserad av programmering men kanske inte på det sättet att jag vill bygga den nästa stora spelmotorn eller programera ett nytt operativsystem eller vad man nu kan tänka sig. (Men sen att kunna koda simpla spel vore ju inget negativt direkt)

Jag är sjukt intresserad av i hur Richard Dawkings använder sig av programmering för selektiv evolution för att skapa biomorphs eller detta.

Så jag lånade en bok "Teach Yourself C third edition" och skaffade Microsoft Visual Studio 2012.

Men jag har ingen aning om hur jag så kallat executar mina program. Mitt problem är väll egentligen vad och hur en "C compiler" är och fungerar.

Är detta ett bra språk att börja med? Jag har läst att många börjar med C++ och C#. Boken tar upp att C är grunden av dessa men är det för grundligt eller vad tycker ni?

Vore väldigt tacksam för alla inputs jag får!
-Felox

Permalänk
Medlem

Kort sagt så kan man säga att C kompilatorn (eng. compiler) översätter programkod till maskinkod (till skillnad från en Java kompilator som istället översätter programkod till binärkod, vid exekvering översätts sedan binärkoden till maskinkod). Maskinkod är alltså kod som processorn kan förstå och därmed exekvera direkt. Personligen så tycker jag C är jäkligt kul, men är man helt grön när det gäller programmering så kanske det är bättre att börja med ex. Python (finns en liknande tråd här). Står du fast vid C så kan jag rekommendera The C Programming Language (2nd edition), gammal men fortfarande aktuell och genomgående.

Permalänk
Medlem

The C Programming Language är verkligen en lysande bok nästan oavsett vilket imperativt språk man väljer.

När det gäller C, C++ och C# så är det snudd på så att det som kompilerar i ett kompilerar i resten. Vissa detaljer skiljer sig, men inte så att det blir svårt att gå mellan dem. Det gäller speciellt för C och C++.

Personligen så tycker jag dock att om man tittar på C så kan man lika gärna titta på C++. Det finns ett par saker där som förenklar tillvaron för en samtidigt som man kan skriva C-kod i C++. Men det är definitivt inte låg nivå på de språken.

För övrigt så tyckte jag att Weasel programmet såg kul ut, inte läst om det tidigare.

Visa signatur

.<

Permalänk
Medlem

Tack för svaren!

Då verkar det som att miitt nuvarande problem är att hitta en c compiler och lära mig hur den fungerar innan jag kan ta mig vidare.

Har ni några tips för nybörjare?

Permalänk
Medlem

Om du använder windows så skulle du för att komma igång snabbt så skulle du kunna testa MS Visual C++ Express Edition (http://www.microsoft.com/visualstudio/eng#products/visual-stu...). Ett annat alternativ som kräver lite mer jobb är att använda dig av gcc(kompilator) + Eclipse (grafisk editor).

Kör du linux så skulle jag rekommendera Eclipse + gcc (båda två finns säkerligen i din distributions pakethanteringssystem)

Kan också rekommendera "C Programming Language", en väldigt bra och kort bok som tar upp det mesta man behöver veta om grunderna. Om du inte riktigt vet vad du ska programmera för något i början så har "Project Euler" (http://projecteuler.net/) många utmaningar. Som med vad som helst gäller det att öva, öva öva. Skriv mycket kod och läs mycket kod skriven av erfarna programmerare.

Permalänk
Medlem

Om du har Visual Studio installerat så har du en C-kompilator (och C++ och en drös andra språk) installerad.
Om du inte har laddat ner det än så är det nog Express 2012 for Windows Desktop du vill ha. Finns här.

Sedan öppnar du ett nytt projekt (Visual C++>Win32>Win32 Console Application). Döp projektet och klicka next i dialogen som hoppar upp. På applikationsinställningssidan som följer klickar du i "Empty project" och ur "Security Development Lifecycle (SDL) checks" för att få ett så enkelt projekt som möjligt.

Hitta en ruta som heter Solution Explorer och högerklicka på mappen "Source Files" i ditt projekt. Välj "Add>New item" och lägg till en cpp-fil. Till exempel "program.cpp".

Skriv in följande i den filen:

#include <stdio.h> int main(int argv, char** argc) { printf("Hello, World!\n"); return 0; }

Tryck sedan på Ctrl + F5. (Eller välj menyn DEBUG>Start Without Debugging.)

Samma program i C++ ser ut såhär:

#include <iostream> void main(void) { std::cout << "Hello, World!" << std::endl; }

Visa signatur

.<

Permalänk
Hedersmedlem
Skrivet av oelrich:

Till exempel "program.cpp".

Om det nu är främst c man är intresserad av är dock ett lämpligare namn "program.c". Visual studio kommer, beroende på filändelsen, kompilera som c eller c++ (det går också att ställa manuellt under "Properties --> Advanced --> Compile as") och även om många c-program är giltiga i c++ kan problem uppstå.

Permalänk
Medlem
Skrivet av oelrich:

#include <stdio.h> int main(int argv, char** argc) { printf("Hello, World!\n"); return 0; }

Vanligen skriver man int argc, och char **argv, arg för argument, c för count, och v för vector. Men det var ju bara en liten petitess (men kan ju vara förvirrande när man tittar på andra program och inte känner igen sig).

Permalänk
Medlem
Skrivet av Elgot:

Om det nu är främst c man är intresserad av är dock ett lämpligare namn "program.c". Visual studio kommer, beroende på filändelsen, kompilera som c eller c++ (det går också att ställa manuellt under "Properties --> Advanced --> Compile as") och även om många c-program är giltiga i c++ kan problem uppstå.

Att VS ställde om sig efter c/cpp filändelse visste jag inte. Tack för tipset.
Det kan bli många problem om man väljer fel, men i min erfarenhet så är det oftare när man försöker kompilera C++ i en C-kompilator än tvärt om. Speciellt när man är nybörjare. Å andra sidan så finns inte mycket som är mer irriterande än att slita sitt hår över att ett exempel inte fungerar bara för att sedan upptäcka att man gjort något fel där exempelförfattaren utgått ifrån att den biten var självklar.

Skrivet av pelleplu:

Vanligen skriver man int argc, och char **argv, arg för argument, c för count, och v för vector. Men det var ju bara en liten petitess (men kan ju vara förvirrande när man tittar på andra program och inte känner igen sig).

Hehe. Det där var roligt. Mina fingrar verkar förakta konventioner. Men du har såklart helt rätt.

Visa signatur

.<

Permalänk
Medlem

Börja med C#, det är enklare på många sätt. Första kursen i programmering på universitet och högskolor brukar vara i C# eller Java av en anledning.

Visa signatur

5950X, 3090

Permalänk
Medlem

Tusen tack allihopa! Har nu Microsoft Visual Studios Express upp and running! Och börjat klura lite på mina första koder! Tack allisammans

Permalänk
Avstängd

Nej fan, lägg ned C eller C#. De är för meckiga. Det bästa och enklaste nybörjarspråket är Python, det finns massa gratis tutorials och böcker om Python. Raspberry PI, datorn för 25$ som riktar sig mot skolbarn, använder sig av Python. Barn programmerar Python. Så det är enkelt.

Men är Python ett fullvuxet språk då? Ja, det är fullvuxet. T.ex. så har stora delar av Spotifys stora servrar gjorts i Python. Du kan alltså i princip göra hela Spotify och strömma musik och sånt. Sen används Python flitigt inom bioinformatik (det du är intresserad av).

Python är enkelt och du kan börja titta på biologin snabbt. Med C och C# så måste du ägna lång tid åt själva språken, innan du kan börja titta på biologin. Speciellt C är ju meckigt, med alla pekare och sånt. Fördelen med C är att det ett mycket litet och rent och språk så det går snabbt att lära sig det, men att använda det bra är svårt, pga så meckig syntax och pekare och sånt. C# är inte lika meckit som C (har inte lika krånglig syntax), men det är objektorienterat så du måste ägna massor av tid att lära dig objektorientering, arv, polymorfism och sånt tjafs. Plus att C# är stort språk, det tar lång tid att lära dig allt.

Python är litet och enkelt och du kan börja jobba nästan direkt.

Lite överdrivet nu, men i stort sett stämmer det jag skriver.