Avatar billede george Nybegynder
01. juni 2006 - 17:03 Der er 18 kommentarer og
1 løsning

Struktureret programmerings teknik

Jeg har for lang tiden siden gået på et af Niels Brocks kurser om programmering. Det var den gang Turbo Pascal for dos var oppe i tiden.

Der lærte vi bl.a at man skulle sætte sig ned og skrive på et stykke papir, på dansk, linje for linje hvad programmet skulle gøre inden man overhovedet satte sig foran PC'en.
F.eks: sådan her
1. Indtast første tal i feltet A
2. Instast andet tal i feltet B
3. Læg felt A og B sammmen
4. Udskriv resultat af A og B.

Jeg har desværre glemt teknikken og søger derfor nogle steder på nettet hvor man lærer denne teknik eller andre smartere metoder til at programmere.

Er der nogen af jer der kender nogle gode steder hvor disse teknikker står beskrevet ?

PS. Programmering sproget er ikke det væsentlige her.
Avatar billede nielle Nybegynder
01. juni 2006 - 17:37 #1
Det kaldes for pseudo code og du kan Google dig frem til utallige eksempler på det i praksis:

http://www.google.dk/search?hl=da&q=%22pseudo+code%22&btnG=Google-s%C3%B8gning&meta=

Det er nok ikke lige noget som der ligefrem findes en tutotorial på, og det kan iøvrigt variere fra person til person.

Der er aldrig nogen som ved deres fulde fem ville sætte sig ned og skrive komplet pseudo kode for et bare nogenlunde stort program. Normalt ser man det kun for algoritmer, og andre små programstumper som kan siges at kunne stå alene.
Avatar billede george Nybegynder
01. juni 2006 - 17:46 #2
Takker, der er da lidt at kigge på. Svar = Points
Avatar billede olebole Juniormester
01. juni 2006 - 17:50 #3
<ole>

Der findes mange forskellige teknikker - og forskellige former for logik-charts - så hvad I præcist har brugt, er ikke til at sige.

Ingen programmør ved sine fulde fem ville nogen sinde sætte sig til at lave en større applikation uden først at dokumentere den.
At det så ofte sker alligevel, skyldes nok, at ikke mindst 'web-sprogene' er så let tilgængelige, at mange, der ikke har lært at kode, koder alligevel. I det klientel er 'cowboy-kodning' til gengæld nok normen  :)

At kode en større applikation uden først at dokumentere den, svarer til at bygge et højhus uden arbejdstegning. Selv et hønse- eller legehus uden arbejdstegning er svært at få op at stå  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
01. juni 2006 - 17:52 #4
Visio i Office-pakken understøtter en lang række forskellige notations metoder/tekniker. Hvis du har den, kan det være, der er noget, du kan genkende  :)
Avatar billede nielle Nybegynder
01. juni 2006 - 18:17 #5
> Ingen programmør ved sine fulde fem ville nogen sinde sætte sig til at lave en større applikation uden først at dokumentere den.

Enig, men at designe (hvilket er noget andet end at dokumentere) programmet via pseudo kode er ikke lige den bedste fremgangsmåde. Man vil sædvanligvis designe mindre kodestrumper (algoritmer) på denne måde, men det overordnede overblik fås snare via klassediagrammer, tilstandsdiagrammer, kontekstdiagrammer, uses cases og andre tilsvarende UML-teknikker.
Avatar billede nielle Nybegynder
01. juni 2006 - 18:18 #6
Visual Studio 2005 har i øvrigt klasse-diagrammering indbygget. Det hjælper selvfølgeligt ikke så meget hvis man ikke arbejder i .Net i det aktielle tilfælde.
Avatar billede nielle Nybegynder
01. juni 2006 - 18:29 #7
Det var altså udsagnet:

> Der lærte vi bl.a at man skulle sætte sig ned og skrive på et stykke papir, på dansk, linje for linje hvad programmet skulle gøre inden man overhovedet satte sig foran PC'en.

- som jeg brokkede mig over.

Man kommer ikke uden om at lave et ordentligt design før at man begynder at kode. Der er mange værktøjer og teknikker til dette, og pseudo kode har absolut sin berettigelse. Med at skrive et helt program i pseudo kode... Nej.
Avatar billede george Nybegynder
01. juni 2006 - 19:49 #8
Tak til jer begge.

nielle >> du skriver værktøjer og teknikker, kan du komme med et par eksempler på disse ?
Avatar billede nielle Nybegynder
01. juni 2006 - 19:57 #9
Jeg har allerede nævnt klassediagrammer, tilstandsdiagrammer, kontekstdiagrammer og use cases. Dette er blot nogen af de diagramerrings-teknikker som indgår i UML (Unified Modeling Language). Uheldigvis egner Eksperten sig ikke ligefrem til at give eksempler på dette, men du finder (igen) en masse eksempler ved at Google.

http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/index.htm

UML har fokus på Objekt Orienteret programmering, og dette dækker langt de fleste programeringssporg som er i brug i dag (med nogle enkelte væsentlige undtagelser). Uanset hvad, så er det dog teknikker som kan benyttes også når det ikke er OOP.
Avatar billede george Nybegynder
01. juni 2006 - 22:01 #10
Ok, tak endnu engang.
Avatar billede olebole Juniormester
01. juni 2006 - 23:11 #11
nielle >> så misforstod jeg helt, hvad du mente ... sorry  ;o)
Avatar billede tdafoobar Nybegynder
01. juni 2006 - 23:15 #12
Kan anbefale:

Lars Mathiassen m.fl.:
Objekt Orienteret Analyse & Design, Forlaget Marko, Aalborg.
En god bog omkring softwareudvikling. 438 sider, dansk.
Avatar billede nielle Nybegynder
02. juni 2006 - 06:37 #13
olebole> Det er bare helt i orden. Jeg kan godt se at min oprindelige formulering ikke var specielt heldig ;^)
Avatar billede george Nybegynder
02. juni 2006 - 13:24 #14
tdafoobar >> tak for info. Det kunne være jeg skulle købe den.
Avatar billede arne_v Ekspert
03. juni 2006 - 03:29 #15
Jeg ville ikke kalde det i spørgsmålet for pseudo kode. Snarere en trinvis
algoritme beskrivelse.

Jeg kan give et lille eksempel. Lad os sige at vi skal implementere vores
egen algoritme for at beregne kvadrat rod.

trinvis algoritme beskrivelse
-----------------------------

1. sæt resultat = tal / 2
2. sæt resultat = (resultat + tal / resultat) / 2
3. test om resultat*resultat er tæt på tal
4. hvis ikke så gå til punkt 2

pseudo kode
-----------

resultat = tal / 2
loop
    resultat = (resultat + tal / resultat) / 2
until tal-EPS < resultat*resultat < tal+EPS

Det ligner ikke hinanden.

Det samme kunne også vises med god gammel flowcharting med nogle rektangler
og nogle romber md pile imellem.

UML er beregnet til objekt orienteret A/D/P og en algoritme som denne
her er meget lidt objektorienteret. Men skulle man bruge UML så kunne
man bruge et activity diagram til det.

----------

Der skal absolut laves en masse papir (dog evt. på elektronisk form) inden man
starter på at kode et større projekt. Men kun en meget lille del af det er egentlig
design.

Mængden af design dokumenter varierer naturligvis mellem forskellige
virksomheder og projekter:
  - ingenting
  - nogle få overordnede beskrivelser før start og så noget mere detaljeret
    som dokumentation bagefter
  - detaljerede beskrivelser inden man starter

Min erfaring er at det ikke kan betale sig at lave for detaljeret design
inden man starter. Fordi så kommer koden alligevel ikke til at ligne
designet og så skal den alligevel laves om.
Avatar billede arne_v Ekspert
03. juni 2006 - 03:30 #16
Medmindre man bruger MDA, så skal design docs ikke vise alt det koden viser,
men give overblik. Kernen i overblik er ikke at medtage unødvendige detaljer.
Avatar billede arne_v Ekspert
03. juni 2006 - 03:31 #17
Kernen i overblik er at undlade at medtage unødvendige detaljer.
Avatar billede george Nybegynder
04. juni 2006 - 08:00 #18
Ok, tak. Hvad er det MDA står for ?
Avatar billede arne_v Ekspert
04. juni 2006 - 14:58 #19
Model Driven Architecture
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester