C-tutorial

Här skriver vi inga frågor. Här finns svaren.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43176
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: C-tutorial

Inlägg av sodjan »

Får hålla med mri. Det räcker helt enkelt inte att tro att man kan C skapligt.
Det måste till en hel del pedagogik och språkhantering (d.v.s svenska, inte C) också.
Det är lite det som jag har försöka förklara. I en sådan här introduktion är det minst
lika viktigt *hur* sakar skrivs som *vad* som skrivs. Det är naturligtsvis något som
som går att lära sig, om man bara har viljan.
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: C-tutorial

Inlägg av Icecap »

Och jag, som INTE är svensk och INTE har svenska som första språk (faktisk pratade jag dansk först, sedan engelska, sedan en del tyska och sist svenska) har hört talas om "lathund" och är fullt på det klara med vad detta begrepp betyder så att någon tokholmare inte kan är bara beklagligt.
Senast redigerad av Icecap 7 augusti 2009, 11:16:24, redigerad totalt 1 gång.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: C-tutorial

Inlägg av mri »

Det var då ett fasligt tjat om lathund. :)
Vissa ord, även om man vet vad de betyder, kan kännas obekväma att använda. För mig är "lathund" ett sånt ord.
I wikipedia används förklaringar som: "skällsord för en lat person" och "En lat hund"...
Ordet ger just dessa negativa associationer för mig och sålunda skulle jag inte sätta det som rubrik på nåt jag skrivit. :)
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43176
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: C-tutorial

Inlägg av sodjan »

Där står också "Sedan 1800-talet har ordet använts i betydelsen lättöverskådlig manual.".

Och det är den betydelsen som är den normala sedan dess.
Jag tänker aldrig på ett djur när jag hör "lathund"... :-)

Att det råkade vara just "lathund" som detta hängde upp sig på var nog
mer en tillfällighet. Jag ser det mer som ett intressant tecken i tiden på
ett språkligt förfall (speciellt hos Stockholmsungdom tydligen, om man ska
tro vad som skrivs i den här tråden)...
kqr
Inlägg: 11
Blev medlem: 4 augusti 2009, 12:05:04

Re: C-tutorial

Inlägg av kqr »

bearing skrev:självstudiekurs?
HANDLEDNING?
http://translate.google.com/translate_t#en|sv|tutorial
Inte lika vanliga sökord, och det är det det faller på. :)

sodjan skrev:Skit samma igentligen, men det var du som ville ha kommentarer och synpunkter
på texten. Det har du nu fått. "Lathund" var en utvikning, men dina påståenden
om "lathund" kan ju knappast få stå oemotsagda.
Missförstå mig inte, det är bra att du hakar upp dig på sånt som du stör dig på. Ju fler som gör det desto mer överväger jag ju att byta. ;)

mri skrev:Rullade igenom texten som hastigast och det är väldigt frestande att ge massor av feedback på hur ni förklarar saker. Dock är sådant väldigt tidskrävande (det är trots allt mycket text) och jag har inte den tiden just nu. (Jag har själv hållit ett antal C kurser för ungdomar i just gymnasieåldern som har lite eller ingen tidigare erfarenhet av programmering. Därav intresset.)

Vill dock säga att i C finns det många små och stora detaljer om olika saker man bör känna till som C programmerare, dock måste ni ju skippa de flesta smådetaljer i er text och börja med de mest väsentliga sakerna. MEN, det ni då väljer att beskriva måste vara KORREKT och inte motsägelsefullt till saker man lär sig sen i en mer avancerad kurs! Jag hittade ett flertal ställen var ni förklarar för simpelt så att beskrivningen inte håller om man beaktar allt i C.

Sen gjorde ni gott i att skaffa en eller flera svenska böcker i C programmering så ni lärde er de svenska beteckningarna. Vissa begrepp i C har inte bra svenska översättningar, men i många fall finns det vedertagna svenska ord man bör använda, om man skriver på svenska.
Du får mer än gärna ta dig lite tid då det finns över. Du har ju enligt egen utsago erfarenhet av ungefär den målgrupp vi riktar in oss på, och det är ju bättre än man kan hoppas! Vi försöker förenkla en hel del, och det kan hända att det någon gång gjorts ett medvetet val att förenkla något över vad man egentligen borde. Jag tror att det är lätt att "lära om" sig såna faktabitar, och därför förenklar så länge det gör det lättare att förstå konceptet från första början. Detta kan dock ha att göra med att jag själv är snabb på att ta till mig ny fakta.
Angående de svenska beteckningarna är jag mycket nyfiken, för av den litteratur jag har läst har varit väldigt motsägelsefull i flera av sammanhangen.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43176
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: C-tutorial

Inlägg av sodjan »

Helt OK. :-)

En helt annan sak är att just C inte är speciellt bra som *introduktion* till
"programmering" för de som inte har någon erfaranhet av programmering innan alls.

Om det är just C som man vill lära ut så har man naturligstvis inget val, men annars
så finns det andra språk som är renare, tydligare och utan alla fallgropar som C har.
Det mest typiska är väl BASIC (som ju har "beginners" i själva namnet!), men det kanske
känns lite "omodert" i dag. Det andra språket som från början konstruerades för att
lära ut "goda programmeringsvanor" är naturligvis Pascal.

Detta har självklart med att C från början konstuerades som ett implementeringsspråk
på maskiner med små resurser att användas av de som visste väldigt bra vad de
håller på med. C var aldrig tänkt som, och är inte heller, ett bra nybörjarspråk.
Inte heller primärt som att verktyg för att utveckla applikationer (och så används
inte ren C speciellt mycket heller).

Detta gör också att de flesta C "tutorials" ( :-) ) som jag har sett ofta förrutsätter
att man redan kan "programmera".

Men allt detta vet du naturligvis redan... :-)
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: C-tutorial

Inlägg av mri »

Inte heller primärt som att verktyg för att utveckla applikationer (och så används
inte ren C speciellt mycket heller).
Hmm... anmäler avvikande åsikt.
Jag såg nyligen nån statistik (minns inte var) över vilka språk som används vid nya projekt idag. Tror t.o.m. det var inbäddade applikationer det handlade om. Siffrorna var ungefär:
75% C
15% C++
10% övriga
Det som noterades i artikeln var att C++ växt 5-10% och C gått tillbaka ungefär lika mycket över de senaste åren.
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: C-tutorial

Inlägg av Icecap »

Personligt föredrar jag C i nästan alla lägen MEN det är inte alltid speciellt lätt att, som nybörjare, läsa andras program i det språk!
Jag har haft mycket problem i början med att förstå vad tusan det hela betydde men nu är det inte alls lika besvärligt.

Att BÖRJA sin programmeringskarriär med C är inte det lättaste, jag tycker att assembler kan vara mera lämpad, att det samtidig ger ett bra inblick i alla µC'ns funktioner är bara ett plus, jag kan oftast se vilka asm-kommandon som ett C-kommando utlöser just för att jag vet hur det fungerar på assembler-nivå.

C i sig har en inlärningströskel som är ganska hög och att börja lära programmering vid att "tugga C" kan det nog kännas tungt.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43176
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: C-tutorial

Inlägg av sodjan »

> Hmm... anmäler avvikande åsikt.

Ja men självklart... :-)

> Jag såg nyligen nån statistik (minns inte var) över vilka språk som används vid nya projekt idag.
> Tror t.o.m. det var inbäddade applikationer

Ja, inom *det* specialområdet ("inbäddade system") så kan det kanske vara så.
Men det fanns ingenting i tråden som begränsade målgruppen till just det området.
Stora mängder utveckling sker inom helt andra områden och där är inte C alls lika "stort".

Vill man bygga en framtid med seriös applikations utveckling/underhåll (och tjäna stora
pengar) så kan mycket väl vara bättre att lära sig COBOL... :-)

Och, fortfarande, så är det så att C inte är speciellt bra för att lära ut "programmering" generellt.
Men vill man skriva en tutorial specifikt för C så har man ju inget val... :-)
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: C-tutorial

Inlägg av mri »

Ja, inom *det* specialområdet ("inbäddade system") så kan det kanske vara så.
Men det fanns ingenting i tråden som begränsade målgruppen till just det området.
Stora mängder utveckling sker inom helt andra områden och där är inte C alls lika "stort".
Numera kan man väl inte säga att inbäddade system är nån speciellt liten avgränsad grupp...
Många system som är i kategorin inbäddat är avancerade och "stora" miljöer, t.ex. med Linux som OS, var utvecklingen av applikationer är i princip samma sak som att utveckla för en vanlig PC eller liknande system.

Vilket språk menar du själv har störst "marknadsandel" generellt idag? Alltså vilket språk väljs till nya projekt.
Och, fortfarande, så är det så att C inte är speciellt bra för att lära ut "programmering" generellt.
Det kan jag delvis hålla med om. C är inte ett lätt språk. Dock tycker jag C är ett elegant språk, i motsats till Pascal. I Pascal är det för mycket strukturer och skrivande och för lite action så att säga.
Vill man lära ut ett språk som är grunden för många språk som används i praktiken idag är nog C ett bra val.

Har på sista tiden använt C#. Dvs i mitt jobb har jag har gått från C --> C++ --> C#. Får nog säga att C# syntaxmässigt är ett trevligt språk, trots att det kommer från M$. C# är striktare än C++, som i sin tur är striktare än C.
När jag nu använder C# lär jag mig mer vad som händer automatiskt i C, potentiellt farliga saker som kompilatorn inte ens bryr sig om att ge en varning om i C. Det är mycket intressant att se släktskapet mellan språken.
Användarvisningsbild
AndLi
Inlägg: 17112
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: C-tutorial

Inlägg av AndLi »

Men då kommer man ju till frågan, vad är definitionen av ett inbyggt system?

Om jag tar min laptop, sätter på ett nytt hölje och lite extra knappar och ansluter en ultraljudssensor (sån där man använder för läkarundersökningar) och skriver en applikation för den.
Har jag då ett inbyggt system?

Om jag tar en Microships 10F200 och ansluter en tryckknapp och en summer, stoppar det i en minimal låder och knappar ihop en applikation till den.
Har jag då ett inbyggt system?

Valet av programeringsspråk kommer troligen bli ganska olika, men bägge är ju inbyggda system, eller? Begreppet Inbyggda system känns som det har blivit alldeles för brett för att beskriva något nuförtiden, det behövs helt olika bakgrund och kunskaper för att kunna göra optimal programvara till mina två exempel...

edit: Händer automatiskt i C? Vill du ge några exempel?
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: C-tutorial

Inlägg av Icecap »

Jag fastnade också på detta med att hända automatisk i C, jag vet att det finns en hel del i C++ som "följer med" och som kan vara mycket illa skriven men i C (som i ANSI C) är det knappast något vilket tilltalar mig mycket.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43176
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: C-tutorial

Inlägg av sodjan »

> Vilket språk menar du själv har störst "marknadsandel" generellt idag? Alltså vilket språk väljs till nya projekt.

Ja, det är ett sätt att välja, gå med strömmen. Lite som alla som vill
gå mediaprogram på universitetet men sedan inte får jobb. Eller som när
man i förra krisen i slutet av 90 talet skulle vidareutbilda i princip vem som
helst till Windows Server Admin.

Ett annat sätt är att välja efter där bristen på kompetens är störst.

Alltså, antingen är man en av 200.000 som slåss om 100.000 jobb, eller så
är man en av 500 som kan välja mellan 1000 jobb... :-) Lite hårddraget kanske,
men det var lite så jag menade med att en COBOL tutorial igentligen kanske
vore mer på sin plats... :-)

C är stort i dag inte för att C är speciellt "bra" utanför att det "hade turen" att
åka med i Unix-svängen när den växte. Och att det fanns/finns kompilatorer till
de flesta plattformar. Alltså blev C populärt. Att det dessutom tillåter en hel del
mindre snygg programmering har väl bara hjälpt till att göra det populärt, de flesta
är ju lite lata... Det går att säga massor om vad C har ställt till med, men det är
en lite annat ämne... :-) Men i stort spelar det naturligtsvis inte så stor roll i dag,
C har den roll det har, på gott och ont.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: C-tutorial

Inlägg av mri »

"Händer automatiskt i C? Vill du ge några exempel?"

Det som jag tänker främst på är typkonverteringar. I C gäller lite samma filosofi som i assembler. Dvs om datat bara får fyiskt plats i destinations variabeln så är det okay. Följande snutt genererar två fel i C#:

Kod: Markera allt

        
void func(uint a)
{
    int b = a;   // error: Cannot implicitly convert type 'uint' to 'int'. An explicit conversion exists (are you missing a cast?)
    if (a)       // error: Cannot implicitly convert type 'uint' to 'bool'
    {
...
Dvs, kompilatorn gör inte en automatisk typkonvertering om konverteringen inte garanterat är säker, dvs så ingen information går förlorad. T.ex. att blanda signed och unsigned i beräkningar går inte, såvida man inte "castar" manuellt.
Kommandon som skall ha ett logiskt uttryck (if,while,for,etc.) blir petnoga... osv...
OK, C har ju ingen bool datatyp, men men.. principen... :)

Kompilerad som C med GCC med alla varningar påkopplade (-Wall) som jag sitter vid nu ger inte ens en varning.
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: C-tutorial

Inlägg av Icecap »

Jo, med C kan man göra mycket allvarliga misstag, speciellt om man är skicklig...
Skriv svar