mboost-dp1

flickr - kevindooley
- Forside
- ⟨
- Forum
- ⟨
- Nyheder
ipwn (52) skrev:Jeg kan sku' ikke lige opremse alle patterns. Men jeg kan snildt slå dem op, forstå dem og benytte dem. Det betyder vel egentligt nok?
Jeg vil tro at man kan huske dem som har brugt flere gange.
Men generelt har du da ret - det drejer sig om at have en teknik så man kan finde oplysninger ikke om at lære så meget som muligt udenad.
#32,33,36,54 + 35,45
Min liste (hvis vi holder os til ren C):
1) manglende header filer => implicit erklæring af brugte funktioner
2) implicit type (int) på main retur værdi
3) ingen type check på mains argumenter
4) ikke noget linieskift i printf => ingen garanti for at det printes ud
5) brug af ikke standard getch funktion
6) ingen angivelse af status til OS
Altså:
Det er faktisk lidt chokerende at den originale kode både compiler og kører.
Min liste (hvis vi holder os til ren C):
1) manglende header filer => implicit erklæring af brugte funktioner
2) implicit type (int) på main retur værdi
3) ingen type check på mains argumenter
4) ikke noget linieskift i printf => ingen garanti for at det printes ud
5) brug af ikke standard getch funktion
6) ingen angivelse af status til OS
Altså:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
printf("Hello world\n");
getchar();
return EXIT_SUCCESS;
}
Det er faktisk lidt chokerende at den originale kode både compiler og kører.
ipwn (45) skrev:
(Syntes EXIT_SUCCESS & EXIT_FAILURE er mest læselige, og så har de den værdi der nu skal bruges - hvem ved om en eller anden syg person vælger noget andet end 0 til succes i deres compiler?)
Helt enig.
Bemærk dog at det er OS og/eller shell og ikke compileren som laver konventionen, da status værdien eksisterer for at blive brugt af diverse scripts der kalder programmet.
0 er garanteret til at betyde succes i C standarden.
Men andre værdier end 0 er ikke garanteret til at betyde failure.
På OpenVMS betyder 1 f.eks. også success. EXIT_FAILURE er enten 44 eller 0x10000002 afhængig af compiler version.
XorpiZ (36) skrev:Jeg ville lave den således:
#include <stdio.h>
int main()
{
printf("Hello world");
return 0;
}
Et eller andet sted dybt i min underbevisthed er jeg ret sikker på, at man anbefaler at main skal være af typen int og returnere en 0.. men jeg kan huske forkert
Who cares? Det er da et program!
Jeg vil da ellers mene at en række design patterns også kan blive brugt på ikke objekt-orienterede sprog.arne_v (55) skrev:Alle dem som udelukkende programmerer i procedurale sprog har ikke så meget at bruge GoF til.
Mere interessant ville være at kigge på brugen af dem i funktionelle sprog. Men man kunne næsten argumentere for at nogen af de grundlæggende funktionalitet (map, mapreduce, filter, fold, joins, andre former for projektion, osv.) kan være en form for patterns.
Well assembler.. man er ikk rigtig programmør, før man har prøvet at kode i assembler:
(for alm nørders skyld, så sætter BSF en bit til 1, og BCF sætter bit'en til 0);
STARTALARM
BTFSS ALARM,1 ;STARTER ALARMEN
CALL CLEARTMR0
CALL RESTARTALARM
BCF PORTB,7 ;SÆTTER RB7 LAV, SÅ ISD'EN BLIVER TRIGGET
BSF ALARM,1
RETURN
STOPALARM
BSF PORTB,7 ;STOPPER ALARMEN IGEN
BCF ALARM,1
CALL CLEARTMR0
RETURN
TURNOFFALARM
BCF ALARM,0
CALL STOPALARM
RETURN
TURNONALARM
BSF ALARM,0
RETURN
(for alm nørders skyld, så sætter BSF en bit til 1, og BCF sætter bit'en til 0);
STARTALARM
BTFSS ALARM,1 ;STARTER ALARMEN
CALL CLEARTMR0
CALL RESTARTALARM
BCF PORTB,7 ;SÆTTER RB7 LAV, SÅ ISD'EN BLIVER TRIGGET
BSF ALARM,1
RETURN
STOPALARM
BSF PORTB,7 ;STOPPER ALARMEN IGEN
BCF ALARM,1
CALL CLEARTMR0
RETURN
TURNOFFALARM
BCF ALARM,0
CALL STOPALARM
RETURN
TURNONALARM
BSF ALARM,0
RETURN
@ #57
Måske skal det lige præciseres, at det er et C program til et ikke-RTOS... da RTOSet (eller output som minimum) skal initialiseres i main inden noget kan printes ud.... Fx. er det meget normalt at ens printf skriver ud på en seriel port eller smider det ud på en TCP/IP, når vi snakker RTOS.
og som du skriver i #58.. er 0 defineret til success..
I må ikke hænge mig op på det.. men mener heller ikke at EXIT_SUCCESS er defineret i hverken threadX eller i Metrowerks Codewarrior incl. lib til PowerPC.... så jeg ville nok skrive et hardcoded 0 i mit tilfælde... men jeg kender jo så også den endelige platform...
Måske skal det lige præciseres, at det er et C program til et ikke-RTOS... da RTOSet (eller output som minimum) skal initialiseres i main inden noget kan printes ud.... Fx. er det meget normalt at ens printf skriver ud på en seriel port eller smider det ud på en TCP/IP, når vi snakker RTOS.
og som du skriver i #58.. er 0 defineret til success..
I må ikke hænge mig op på det.. men mener heller ikke at EXIT_SUCCESS er defineret i hverken threadX eller i Metrowerks Codewarrior incl. lib til PowerPC.... så jeg ville nok skrive et hardcoded 0 i mit tilfælde... men jeg kender jo så også den endelige platform...
kr00z0r (68) skrev:Fx fordi det er god træning i at tænke logisk,
Det synes jeg ordnes bedre med matematik. Mere logik, mere generelt anvendeligt.
kr00z0r (68) skrev:og fordi vi gerne skulle have et samfund af velkvalficerede IT-brugere
Programmering er absolut ikke et krav for dette, og sådan set heller ikke nogen hjælp.
kr00z0r (68) skrev:der rent faktisk kan finde ud af at bruge de mange muligheder computere giver ud over at tilgå applikationer via et GUI.
Det er da kun specialister der har nytte af det.
ABLE (63) skrev:
I må ikke hænge mig op på det.. men mener heller ikke at EXIT_SUCCESS er defineret i hverken threadX eller i Metrowerks Codewarrior incl. lib til PowerPC.... så jeg ville nok skrive et hardcoded 0 i mit tilfælde... men jeg kender jo så også den endelige platform...
Jeg skal ikke kunne udelukke at EXIT_SUCCESS mangler nogle steder.
Men den er defineret i ANSI/ISO C standarden, så ved en standard compliant compiler skal den være der.
Kun hvis du deler det med os andre.noramskull (4) skrev:Jeg lavede engang det her program med den her dame, og når man trykkede på mellemrum tog hun toppen af.
Tæller det?
#0
Min programmering begrænser sig vist til det pizzaria-app vi lavede i TEC..
Iøvrigt, vil folk herinde betegne scripts, som programmering?
myplacedk (69) skrev:Det synes jeg ordnes bedre med matematik. Mere logik, mere generelt anvendeligt.
Det ved jeg ikke, jeg anvender programmering meget mere end matematik.
myplacedk (69) skrev:Programmering er absolut ikke et krav for dette, og sådan set heller ikke nogen hjælp.
At kunne programmere betyder at man har en ide om, hvordan programmer fungerer under overfladen, og det synes jeg afgjort gør en til en mere kvalficeret IT-bruger end hvis man kun kan finde ud af at trykke på nogen knapper og brokke sig hvis programmet opfører sig på en anden måde end forventet.
myplacedk (69) skrev:Det er da kun specialister der har nytte af det.
Hvorfor det? Som sagt lavede jeg mine første programmer som 10-årig. Og det lykkedes faktisk hurtigt at lave nogen spil, som andre synes var sjove. Der er masser af situationer, hvor almindelige dødelige kan have glæde af at kunne lidt programmering. Om ikke andet for at kunne lave nogen scripts til et regneark, eller tilføje noget funktionalitet til en hjemmeside.
kr00z0r (73) skrev:Det ved jeg ikke, jeg anvender programmering meget mere end matematik.
Og du er en typisk dansker? Jeg anvender stort set altid den tankegang jeg har lært fra matematikken, når jeg programmerer.
kr00z0r (73) skrev:At kunne programmere betyder at man har en ide om, hvordan programmer fungerer under overfladen,
Egentlig ikke. Programmering på det niveau, der er realistisk at indføre for alle i folkeskolen, vil ikke give nogen generel forståelse der kan bruges til noget.
Og hvis det er det der er målet, er der langt bedre metoder alligevel. Der er mange lag mellem brugerfladen og koden.
kr00z0r (73) skrev:Som sagt lavede jeg mine første programmer som 10-årig.
Jeg ved ikke hvor du vil hen med det. Det gjorde jeg også. Jeg kender masser af dygtige programmører som synes det er imponerende. Det er meget få mennesker der er i stand til det, i hvert fald med den indsats man kan forvente i folkeskolen.
kr00z0r (73) skrev:Og det lykkedes faktisk hurtigt at lave nogen spil, som andre synes var sjove.
Jeg lavede et faktura-system til min far, som han brugte i sit firma indtil det lukkede nogle år senere.
Men jeg forstår ikke hvor du vil hen med det. Det er ikke normalt.
kr00z0r (73) skrev:Der er masser af situationer, hvor almindelige dødelige kan have glæde af at kunne lidt programmering. Om ikke andet for at kunne lave nogen scripts til et regneark, eller tilføje noget funktionalitet til en hjemmeside.
Det kunne også være enormt praksisk hvis folk selv kunne finde ud af at holder styr på olie og dæktryk på sin egen bil. Eller hvis de selv kunne skifte mellem sommer- og vinterdæk. I praksis skal vi være glade, hvis folk husker at få nogen til at gøre det.
Dem som gerne vil eller skal tjekke olie, skal nok finde ud af det. Ligeså med regnearks-formler og opdatering af hjemmeside. Og de to eksempler kan jeg i øvrigt ikke se hvad skulle have med programmering at gøre. Regnearks-former er mere matematik end programmering. At programmere funktionalitet til en hjemmeside er noget de færreste har behov for. Dem som gør det i sin fritid, gør det jo nok uanset hvad der foregår i folkeskolen.
Jeg kunne nævne mange fag, som ville være lige så sjove eller praktiske at indføre i folkeskolen, men jeg synes vi skal holde os til de grundlæggende.
Og så håber jeg at IT-undervisningen er blevet bedre end den gang maskinskrivning-på-PC jeg havde. Der burde man lære om hvad der foregår bag GUI'en, men kun lige under. Hvad er et filsystem, hvorfor forsvinder nogle ting men ikke andre hvis strømmen går, hvorfor er der kun ét email-system men en hel håndfuld ikke-kompatible IM-systemer osv.
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.