Thread: [PROG]TP <=> Python Analogien
-
07-06-2007, 16:31 #1
[PROG]TP <=> Python Analogien
Goeiemidag
Jullie weten wel dat turbo pascal nog altijd veel gebruikt wordt in het middelbaar om de leerlingen "probleem oplossend" denken aan te leren.
Ik zoek daarvoor echter een alternatief. Er moet toch iets beter bestaan dan TP (lees moderner) maar toch even leesbaar.
Sommige scholen gebruiken Javascript. Vind ik wel modern(er) maar toch niet even leesbaar als TP.
Ik ben echter python aangeraden, en dat bevalt me goed. Het lijkt ook heel leesbaar. Ik zit echter wat in de problemen ermee. Bepaalde zaken moeten namelijk aangeleerd worden (volgens het leerplan). Zoals oplossen in deelproblemen.
In pascal als volgt:
Ik weet echter niet echt hoe zoiets eruitziet in python; iets als volgt?Code:PROGRAM naamvanhetprogramma; VAR globale variabelen; PROCEDURE Deelprobleem1; VAR lokale variabelen; BEGIN END; PROCEDURE Deelprobleem2; BEGIN END; BEGIN Deelprobleem1; Deelprobleem2; END.
Ook heel leesbaar, maar hoe zit het met de declaraties van globale en lokale variabelen hier?Code:def Deelprobleem1: instructies def Deelprobleem2: instructies Deelprobleem1 Deelprobleem2
thnxno votes
-
-
07-06-2007, 17:51 #2Crew Member
- Registered
- 01/09/02
- Location
- Peutie
- Posts
- 7,664
- iTrader
- 0
- Mentioned
- 4 Post(s)
- Reputation
- 13/105
Ik heb nu niet veel tijd en het zit zeer ver weg, maar een klein voorbeeldje:
Code:#!/usr/local/bin/python # Variable scope first = 1 def one(): "Double a global variable, return it + 3." global first first *= 2 result = first+3 return result print one.__doc__ print one() print one() print one() print "first now has the value",first print "result has the value",resultno votes
-
07-06-2007, 18:02 #3Member
- Registered
- 06/04/06
- Location
- BXL
- Posts
- 4,415
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/40
Python is ge-wel-dig. Goeie keuze, vooral in combinatie met IDLE, de live interpreter voor, Python is dat een geweldig leerinstrument.
Met het keyword def maak je inderdaad nieuwe functies/procedures aan. Ik ken geen woord TP, maar wat betreft variabelen: Python is net een dynamisch getypeerde taal en ontworpen om zoveel mogelijk boilerplate code te omzeilen. Een nieuwe variabele aanmaken is zo eenvoudig als:
De interpreter bepaalt zelf welk soort type de variabele is. Dit heeft aantal voordelen en nadelen, maar voor eenvoudige programma's zijn geen van beide van belang.Code:tekst = "Dit is een string." x = 9 #dit is een integer y = 3.14 #dit is een float
Ook moet je beseffen dat identatie een essentieel syntactisch element is van de taal. Een tab verkeerd plaatsen en je ligt overhoop met de interpreter. IDLE enzo plaatsen meestal wel zelf tabs waar nodig, maar bijvoorbeeld voor branching bij if/else, zal je je leerlingen wel moeten uitleggen dat de enkel de code die geindenteerd is zonder één van de takken wordt uitgevoerd als de voorwaarde voldaan is.
Even toelichten. Elke functie heeft standaard de .__doc__ member en die bevat de documentatiestring van de de functie. Ik denk echter dat Tyfius een typfoutje gemaakt heeft, want de documentatiestring begint en eindigt altijd met 3 aanhalingstekens. Door die member aan te roepen print je dus de tekst
Double a global variable, return it + 3.Last edited by Messias.; 07-06-2007 at 18:08.
I caught a glimpse and now it haunts me.no votes
-
07-06-2007, 20:55 #4
Enkele zaken (ivm die variabelen, en indentaties) wist ik wel al, maar toch bedankt voor de informatie

Wat is boilerplate code trouwens?
Die .__doc__ member is idd wel handig! Iets dat ik ga onthouden
Moet die result ook niet na die global staan? Anders wordt hier compilatie fout gegeven.
Maar die variabelen zijn nog niet echt duidelijk.
Bijvoorbeeld (de typische BMI oefening
):
Dat werkt perfect maar die declaratie van die variabelen is precies zo, tja "anders" vergeleken met TP. Of misschien doe ik het fout?Code:def vraagGewichtEnLengte(): global gewicht, lengte gewicht = input('Geef je gewicht: ') lengte = input('Geef je lengte: ') def berekenBMI(): global bmi bmi = gewicht/(lengte*lengte) def schrijfBMI(): print "Bmi is ", bmi vraagGewichtEnLengte() berekenBMI() schrijfBMI()
Bij elke deelprobleem apart de variabelen globaal declareren, terwijl dit in TP boveaan het programma moet (wat we logisch(er) is, aangezien het globaal is)
Hoe zou dat programma trouwen opgesteld moeten worden indien er gewerkt wordt met parameters? Misschien krijg ik dan wat meer inzicht in de structuur.
BTW: ik dacht om drpython (op ubuntu) te gebruiken als editor. Die laat zowel de interactieve modus toe, en het is ook gemakkelijk om .py bestanden te compileren.no votes
-
07-06-2007, 21:12 #5Crew Member
- Registered
- 01/09/02
- Location
- Peutie
- Posts
- 7,664
- iTrader
- 0
- Mentioned
- 4 Post(s)
- Reputation
- 13/105
Ik dacht dat je je variabelen ook wel globaal moest declareren, zoals ik met die first doe. In het deelprogramma maak ge via de global dan gewoon bekend dat dit een globale variabele is.
Ik heb in geen jaren nog python aangeraakt though, ben niet echt meer een referentie
no votes

