Jump to content

Programmēšanas pamati vidusskolā


garais
 Share

Recommended Posts

Mūsu vidusskolā ir uzsākta jauna mācību priekšmeta : "Programmēšanas pamati" mācīšana. Pašreiz darbība notiek ar Turbo Pascal 7.0 Daudziem šī padarīšana ir galīgi nesaprotama, toties dažam labam viss pielec briesmīgi ātri. Gribētos uzzināt skolnieku ( gan to kam kas līdzīgs bijis, gan to kam kas līdzīgs ir pašlaik) domas par priekšmeta nepieciešamību, kam pievērst lielāku uzmanību, cik daudz laika veltīt mājas darbiem u.t.t

Ar vienu vārdu sakot kādas ir (bija) Jūsu asociācijas.

 

Tā kā šis priekšmets mūsu skolā ir pirmo gadu, tad Jūsu iespējamie komentāri varbūt spēs atvieglot daudzu skolnieku grūto dzīvi, ja skolotājam (man) būs papildus informācija par "zemūdens akmeņiem".

Jau iepriekš pateicīgs visiem par sniegtajām atbildēm.

Link to comment
Share on other sites

housemouse, nesmejies. Vidusskola. Kādēļ ne MQL4 ?

Pasniedzējam: Grūti kaut ko komentēt. Pats vidusskolas laikā sāku iet uz progrmeistars programmēšanas kursiem, bet ātri vien aizgāju - nu nespēju es algoritmus izdomāt paskālā. Augstskolā notika brīnums - likās jau, ka es to visu zinu, ko man māca par programmēšanu.

Lai nu kā, bet vienmēr cieņā ir bijuši pasniedzēji, kas nolaižas līdz studentu līmenim un lieto VIENKĀRŠU valodu, lai paskaidrotu sarežģīto. Par atvasināšanu augstskolā bij līdzība par to, kā kāpostiņu loba vaļā (par to, ka ārējās funkcijas vispirms atvasina, tādejādi lobot vaļā kāpostiņu). Pasniedzēja bija cieņā, jo tiktiešām cilvēkiem spēja iemācīt daudzas lietas.

Parasti cilvēkiem nepatiku izsauc pointeris. Iesaku pēc iespējas vairāk lietot zīmējumus (tas labi paliek atmiņā) + vispirms pastāstīt arī par to, kā tad tur tas varētu izskatīties atmiņā (nejau gluži binārā līmenī, bet bildīte, režģis, kur sazīmētas mainīgā vērtības + bultiņas būs tieši laikā ! :) ) Bet lai līdz pointeriem nokļūtu... aiaiai, tur vēl daudz ko jāmāca.

Labots - Jencha
Link to comment
Share on other sites

Nu galvenais ir neiet milzu tempos, sākt ar blokshēmām, izskaidrošanu! tie, kam pielēc ātri, tie garlaikosies, bet lēnākie vismaz sapratīs par ko ir runa! Pašam visu vidusskolu bija programmēšana! Ja godīgi - nežēlīgi prasa un attīsta loģisko domāšanu, tā kā ir ļoti pat noderīga!

zemūdens akmeņi:

cikli, kurus nespēj atcerēties

mainīgo tipi - nesaprot ar ko atšķiras

loģiskie operatori, darbības, loģiskās iekavas

bieži klūdās sintaksē, tā kā skaties ne uz rupjām loģikas kļūdām, bet uz pareizrakstību!

baigi smagi ir ar grafisko vidi, ja mācīsi, tad ar pamatīgu izkaidrošanu, tur pat es maldos joprojām un daudz kas nesanāk!

 

Man personīgi diezgan patika! protams, pa paskāls jau nav nekas advancēts, bet priekš mācībām - ideāls! galvenais nesākt ar kaut ko pārkrutu un tad jau iemācīsi!

 

mājas darbi visdrīzāk būs pabeigt iesāktu programmu pēc norādēm, vai kaut ko tajā izmainīt! kad šie paliks advancētāki tad varēs arī dot patstāvīgi ko uzrakstīt! mēs (datorkurss) izņēmām paskālu pa mācību gadu gandrīz vai visu!

Labots - Michy
Link to comment
Share on other sites

Atruna: ar pascal pirmo reizi saskāros tikai universitātē.

 

Turbo PAscal manā skatījumā ir neveiksmīga izvēle 21. gadsimtā. Kādēļ?

a) 16 biti

b) DOS

c) savdabīga objektorientācijas realizācija

 

Ko labāk izmantot? - FreePascal.

 

Neesmu uz savas 64bitu vistas izpildījis TP kompilētās programmas, bet diez vai skolniekam, kas mājās vēlas padziļināti apgūt kursu, būtu jāvelta laiks DOS savietojamības jautājumiem, it sevišķi, kā dabūt krāsas. :shock:

 

Programmēšana varētu padoties tiem, kas saprot lietu loģisko dabu. Pārējiem vajadzētu pastāstīt algoritma jēdzienu, paštukot savus algoritmus, kā tikt līdz mājām, kā iepirkties, un tikai tad sēdināt pie PC. Mums savlaik bija pāris šādas nodarbības, pirms sēdāmies pie bekām un ķērāmies pie beisika.

Link to comment
Share on other sites

Programmēšana varētu padoties tiem, kas saprot lietu loģisko dabu. Pārējiem vajadzētu pastāstīt algoritma jēdzienu, paštukot savus algoritmus, kā tikt līdz mājām, kā iepirkties, un tikai tad sēdināt pie PC. Mums savlaik bija pāris šādas nodarbības, pirms sēdāmies pie bekām un ķērāmies pie beisika.

Piekrītu VIL'am, paskaidro ar blokshēmu kā skolnieks var nopirkt pienu! ikdienišķas lietas palīdz saprast!

Link to comment
Share on other sites

mums arodenē bija sekojoši - skolotājs sadeva kaut kādas jau gatavas programmas uz izdrukātām 2-3 lapām (mācījāmies Delphi) un mēs vienkārši pārrakstījām un palaidām

 

protams 90% gadījumu pārrakstīts bija ar kļūdām, kuras tad dabūjām meklēt vadoties pēc kļūdu paziņojumiem - tas tāds čaiņiku variants, lai vismaz ieborētu to loģiku kas, kā un kāpēc darbojas vai nedarbojas

 

negatīvā lieta - kompī pārrakstīto kodu var vienkārši salīdzināt ar to, kas ir izdrukāts un atrast "drukas kļūdu" izlaižot visu to daļu, kurā rodās skaidrība

pozitīvā lieta - tēma izņemta, klasē visiem bija daudz maz normālas atzīmes ^^^^^^^^^ prasīt kaut kādai blondīnei kodēt man liekas pilnīgs marazms, ja viņa pati speciāli nav izvēlējusies tādu novirzienu

Labots - Sky_High
Link to comment
Share on other sites

Jencha, Python ir minimālistiska, viegli lasāma programmēšanas valoda.

Kādēļ nē?

Link to comment
Share on other sites

zheel ka man nemaaciija programmeeshanu...Es labpraat apguutu, jaaiet pie kaada maaciities...

Labots - Nettwerk
Link to comment
Share on other sites

housemouse, laikam esmu standarta kastē :) Lab, atvainojos, neņem vērā, ko teicu :) Visur paskāls... saprotu... arī mani tas neiepriecina :)

Link to comment
Share on other sites

Turbo Pascal ir 16 bit`u valoda un darbojas DOS vidē.

Manuprāt, skolēnam būtu diezgan zema motivācija rakstīt DOS konsoles aplikācijas. :-)

Link to comment
Share on other sites

anakreonts

Mums bija čaiņiku versija. Skolotāja uz projektora palaida no grāmatas pārrakstītus pascal uzdevumus, un mēs laimīgi norakstījām. Uz 12.kl. eksāmenu 3 piemērus iemācījos, un izspruku sveikā...

Labots - anakreonts
Link to comment
Share on other sites

Nu, es jau laikam priekš šī topika esmu ģaģa, tā kā videne man bijusi pusdzīvi atpakaļ. Mums tādu problēmu ar pareizā mācību varianta izvēli nebija, jo tas viss bija tik jauns un aizraujošs, ka paši uzmācāmies skolotājam, lai skaidro.

Varu ieteikt dažas lietas cik pašam nācies citiem mācīt:

1. Aizmirsti par kaut kādu blokshēmu standartu - zīmē ar roku uz tāfeles tā, lai ir saprotams. Nav ko bērnus mocīt vēl iebraukšanu tajās blokshēmās.

2. Pašos pamatos - izskaidro loģiku un sintaksi. Un stāsti to tādā valodā, kādā runā tavi mācāmie. Piemēram, var vienkārši uzmest sarakstu ar datu tipiem. Jaunatne norakstīs, bet tāpat neiebrauks, kas tas ir. Taču var arī ņemt un šķetināt pa mazam, cenšoties piedabūt, lai bērni jaunieši min piemērus paši. Paskaidro, kādēļ vajadzīgi tik daudzi un dažādi tipi (tipa, kāpēc ir gan Byte, gan Short, gan Integer utt.)

3. Labākais variants - nostādīt priekšā kaut kādu lielo mērķi, lielo sistēmu, kas viņiem pašiem būtu noderīga (nu, taisnība jau par to DOSu ir, kurš viņu vairs lieto) un tad visu gadu viņu pamazām būvēt. Vēlams katru gadu kaut ko citu. Cik esmu novērojis, labāk pierāpo un saglabājas, ja apgūst šitā pa daļām, kaut ko developējot, nevis taisot kaut kādus sīkus softiņus tikai priekš tā, lai izprovētu kaut kādu konstrukciju.

Link to comment
Share on other sites

Guest Bērzs

Kad mēs izmantojam matemātiku, tad smadzenēs principā lēnām izstrādājās šie matemātiskie algoritmi - aritmētiskās darbības, funkciju analīze, utt.

Matemātika smadzenēm ir kā trenežieri muskuļiem.

 

Programmēšana ir viens solis tālāk!

Ja matemātikā mēs mācāmies izmantot pārsvarā gatavus algoritmus, tad programmēšanā mēs mācāmies radīt šos algoritmus.

Manuprāt programmēšana (algoritmiska) ir labākais veids kā attīstīt tehniski radošo domāšanu un tāpēc manuprāt būtu jābūt obligātai skolas programmās.

 

Runājot par praktisko pusi!

Paskāls manuprāt ir pietiekami laba valoda ar ko sākt un nav nozīmes vai 16bit vai 32bit!

Paskāls ir laba algoritmiska valoda un iesācējam labāka par C, jo C ir daudz abstraktāks par paskālu, lai gan tās ir tikai nianses. Bet paskāls ir daudz mazāk populārs.

 

Manuprāt blokshēmas tikai jauks gaisu.

Galvenais labi paskaidrot pašu sintaksi un apskatīt daudz mazus piemēriņus un tad nelielas to modifikācijas likt izveidot pašiem. Ja ir kāds talantīgāks padevies, tad var viņam likt pēc kārtas pildīt šos:

http://www.lio.lv/olimps/uzdevumi.php

 

maaciit skolaa programeeshanas valodas ir lielaakaa perversija&tizliiba kaada vien var buut ...

man domaat aarstam ariii vispirms iemaaca teoriju nevis dod nazi un davai griez "pasmaaciibas celjaa" ...

Ja tas neapdrautētu cilvēkus, tad tas noteikti paātrinātu iemācīšanās procesu!

 

taakaa mans ieteikums nemaaciit nekaadu valodu - no taa jeegas nebuus

bet maaciit DOMAASHANU

respektiivi lai programee bloksheemu un datu pluusmu liimeniii uz papiira

ja to beernelis iemaaciisies - tad varees programmiereet dajebkaadaa valodaa ...

piemaaciities kaadas valodas sintaksi - taas buus paaris stundas darba ...

Tad jau ar mašīnu arī braukt var mācīt, dodot rakstīt braukšanas blokshēmas!

Tas ir sen pierādījies, ka doto lietu visātrāk vienmēr iemācās, darot tieš to lietu, nevis aplinkus kautko teorizējot!

Link to comment
Share on other sites

Pamacijos progmeistara to paskalu - velak nebija speka vairs.

Ar ko sakt? - iemacit ka pamainit divu burtu ... vertibas izmantojot divus mainigos :mrgreen:

Bet ja godigi ar to pashu ko sak progmeistara , ka jasak rakstit programinja ka definet mainigos

readln,writeln... Bet vispar domaju ka jasak ir ar mslogo. Vismaz bus interesantak.

 

Edit: Piekritu NC - ja cilveks iemacas programmet uz papira tas ir daudz lielaks ieguvums

Labots - Simsons2
Link to comment
Share on other sites

Guest Bērzs

Bērzs

programeeshanas valoda skolaa NAV vajadziiga

taapat tas viss ko iemaaciisies (begin end rakstot un cikla sintaksi iemaacoties) buus kakjim zem astes un nedos NEKO PILNIIGI NEKO taalaakaa auKstaakajaa izlgliitiibaa

 

skolaa ir jaaspaarda smadzenes - ja cilveeks iemaaciisies programmeet uz papiira tas buus daudz lielaaks sasniegums visai tupmaakajai izgliitiibai (ja protams nabags aizies pa IT sfeeru) nekaa truli iemaaciita kautkaadas valodas sintakse ...

 

kad matliizee splainu aproksimaaciju taisiisi - tici man ... tev buus pohren kaada valoda galvenais iebraukt algoritmaa kaa taadaa ...

 

Paskāls jau māca nejau tāpēc, lai iemācītu valodu paskāls, bet tas ir rīks ar kuru rakstīt algoritmus.

Kāda jēga iemācīties alkoritmus būvēt ar blokshēmām, ja tieši tāds pats laiks ir vajadzīgs algoritmus būvēt paskālā. Bet Paskāls savukārt atšķirībā no blokshēmām ir daudz labāks rīks, lai tālāk ar to darbotos.

 

Tad jau matemātiku arī nevajag mācīt, kur tad tu reāli izmanto kautko vairāk par aritmētiku!

Un vispār trenežierus kāda jēga apmeklēt, tu iekdienā kautkur cilā hanteles?

 

Programmēšana ir labākais tehniski radošās domāšanas trennēšanas rīks. Valoda šeit ir sekundārs rīks!

 

Un nestāsti ka neko nedos?

Es programmēju jau no agras bērnības. Matemātika, fizika, ķīmija man skolā neradīja vispār nekādu problēmu, jo mana domāšana bija labi uztrenēta ar programmēšanu. Bet pirmajā kursā, kad mācijā augstāko matemātiku es jau zināju, ko teiks pasniedzējs nākamajos teikumos, lai gan konkrēto teoriju nebiju apguvis.

Link to comment
Share on other sites

Guest drunk_lizard

Es programmēju jau no agras bērnības. Matemātika, fizika, ķīmija man skolā neradīja vispār nekādu problēmu, jo mana domāšana bija labi uztrenēta ar programmēšanu. Bet pirmajā kursā, kad mācijā augstāko matemātiku es jau zināju, ko teiks pasniedzējs nākamajos teikumos, lai gan konkrēto teoriju nebiju apguvis.

obanaaa

programmeejis jau no agras beerniibas

drosji vien trubu kaa piecus pirkstus, mhhhh?

un kur nu veel beisiks....

asm arii tekosji drosji kodee

kur tu tik ilgi biji, ka tik aatri atnaaci?

Link to comment
Share on other sites

Mezavecis

NC, nesaki viss. Man šitā teorija likās lielākais murgs un nevarēju nekādīgi vidusskolā saprast, ko pasniedzējs stāsta. Vot kad bij reāls kods, reāls pielietojums, tad arī ideja kļuva skaidrāka.

 

Vienmēr esmu teicis - teorija bez praktikas ir kaķim apakš astes. Otrāds variants arī nekur neder.

 

Es vispār nesaprotu kādēļ tieši pascal. Tak ir visādas citādas programmēšanas valodas, kuras var tālāk pielietot dzīvē. Vismaz n gadu laikā ne reiz nav vajadzējis kaut ko pielietot, ko tik centīgi man gribēja ieborēt. Bet C++, kas bija tālāk kā pamats Java un PHP, izmantoju katru dienu. Arī vecais labais Qbasic noderēja kā tagadējam pielietojumam Visual Basic un VBA.

 

Tākā vajag mācīt kaut ko perspektīvu nevis DOS logā saskarni katrreiz izgudrot no jauna. Tapēc jau rodas tas riebums vairumam.

Link to comment
Share on other sites

Guest Bērzs

un kur nu veel beisiks....

Ar to arī sāku uz bekaškas!

asm arii tekosji drosji kodee

Kādu tev vajag? intel, microchip, vēl kādu?

Bet kāda tam nozīme, tu drošvien par asm nosaukumu arī vairāk nekā nezini :D

Link to comment
Share on other sites

Guest drunk_lizard

Beerzs, te nu tu kljuudies, mhhhhh

kaut arii neesmu koders, bet sjo to esmu pieapguvis :)

starp citu taads kadrs, kaa snjaga arii ir ljoti labs koders, mosj tu jamo paziisti

tas runas stils taads liidziigs

un attaalums no metropoles ariidzan :mrgreen:

Link to comment
Share on other sites

par bloksheemaam - galvenais lai skolnieks pats to meegjina ziimeet, nevis skataas kaa to skolotaajs dara, jo programmeeshanas maaciibai ir taa burviiba, ka taa izkustina smadzenees taas peleekaas vielas, kuras ikdienaa parasti nelieto.

par programmeeshanas valodaam - viennoziimiigi esmu par skolnieka pielikshanu pie klaviatuuras (protams ne ilgaak pa ~5% no maaciibu laika). jo tikai tad kad skolnieks palaidiis savu radiito kompilaaciju, vinjsh saskatiis jeegu kluciishiem, ko pirms tam ir ziimeejis

Link to comment
Share on other sites

Guest Bērzs

par programmeeshanas valodaam - viennoziimiigi esmu par skolnieka pielikshanu pie klaviatuuras (protams ne ilgaak pa ~5% no maaciibu laika).

 

Esmu mācijis skolniekiem programmēšanu, bet nvis kā skolas obligāto, bet kā ārpusskolas.

Mana pieeja ir tāda!

1.Ātri izstāstu teoriju!

2.Idodu uzdevumu(s).

3.Ļauju kādu laiku darboties, tā laika individuāli konsultējot.

4.Pēc laika parādu atrisinājumu, jo parasti tikai daži pilnībā pagūst to paveikt.

5. Atgriežos pie punkta 1!

 

Kodēšana ir aptuveni 50% no laika.

Jo ir tā, ka teorijas stāstīšanas laikā smadzenes skolnieki parasti neceņšās noslogot, tieši tāpēc lieku lielu uzsvaru uz praktisko daļu ar individuālu skaidrošanu. Jo galarezultāts ir proporcionāls laikam kuru skolnieks pavada noslogojot smadzenes. Es gan parasti mācu ne vairāk kā 8 skolniekiem vienlaicīgi.

Link to comment
Share on other sites

Nu, es programmēšanu apguvu tikai pašmācības ceļā, jo pašam tā patika. :) Kad skolā/universitātē tas viss nāca priekšā, man tur vienkārši vairs nebija ko darīt, prikolus tik taisīju. :p

 

Taču es noteikti atbalstu domu par programmēšanas mācīšanu skolā! Programmēšana (manuprāt) ļoti sakārto domāšanu, un atvieglo tālāko mācīšanos utml.

 

Mana pirmā grāmata par tēmu bija "Kā Pēcis Beisikānis Maiju Saprātiņu programmēt mācīja". :D Nosaukums, protams, labais, taču grāmata pati ir (manuprāt) zelta vērta! Tā gan ir par beisiku (un pie tam drausmīgi vecu beisiku - grāmata izdota 1986. gadā), taču pamatidejas ir nemainīgas. Domāju, ka to nebūtu grūti pielāgot arī Pascal u.c. valodām. Tur tiešām bija saprotami izstāstītas visas lietas labā secībā. Bija gan blokshēmas, gan praktiski piemēri, gan viss cits vajadzīgais vajadzīgajā daudzumā. Ļoti iesaku izlasīt šo grāmatu visiem, kas vēl mācās programmēt, un kas grib mācīt!

 

Pats esmu šobrīd dabūjis šīs grāmatas kopiju, un gribētu to digitalizēt, taču nav laika - projektam darbā drīz deadlains. :(

 

Par valodas izvēli - es arī atbalstu Pascal. Šī valoda brīnišķīgi der, lai mācītu programmēt. Patiesībā, tā pat tika radīta tieši šim nolūkam. Par vidi - jā, FreePascal būs, manuprāt, optimālais variants. Nebūs vismaz čakara ar mazo pieejamo RAM.

 

Un ar grafiku nevajag skopoties! Tas tieši ir pats interesantākais! :) Tiesa - Pascal tur bija mazliet jocīgi tie Initgraph() izsaukumi, kuru būtībā ilgu laiku nevarēju iebraukt. Taču tos varbūt var vienkārši parādīt, un pārāk neskaidrot.

 

Par pointeriem - nu, tas jau ir stipri advancēts koncepts (salīdzinoši), taču manuprāt to vienkārši varētu paskaidrot šādi:

 

Atmiņa ir sadalīta baitos. Katram baitam atmiņā ir savs kārtas numurs. Ir pirmais baits, otrais, trešais... Pointeris ir tas pats Integer, tikai viņā iekšā mēdz rakstīt kāda atmiņas baita kārtas numuru. Neviens neaizliedz rakstīt kaut ko citu, bet tā tieši ir pointera ideja, ka tur ir rakstīta kāda atmiņas adrese. Rezultātā var teikt, ka pointeris "norāda" uz kādu baitu atmiņā. Ja mēs zinam, kas tajā vietā atmiņā stāv (piemēram, kāds Integeris), tad mēs varam arī attiecīgi pamainīt to, kas tur atrodas (seko piemērs). U.t.t.

 

Pievienots: Ak, jā, vēl pāris lietas - interesantākais, protams, ir pašam ņemšanās ar to visu. Tāpēc praktiskajām nodarbībām nevajadzētu būt mazumā. Teorija, protams, ir vajadzīga, bet tā visa ir arī 10x jāpārbauda praksē. Tas tāpat kā ar uzdevumiem matemātikā - teoriju izklāsta vienreiz, un tad nāk 20 uzdevumi, kur to vajag pielietot. Beigās iemācās nevis no šī stāsta, bet gan no tā, ka patiesi tas ir lietots. Taču bez teorijas, protams, nekas nebūtu skaidrs.

 

Un - datorcentram vajadzētu būt pieejamam arī ārpus stundu laika, lai interesenti tur var nākt un kodēt (un arī uzdot jautājumus). Programmēšana (ja vien pasniedzējam nebūs kādas superspējas) patiesi droši vien patiks mazākajai klases daļai. Taču tiem, kam tā patiks, būs gatava tam ziedot daudz laika. Skolotāja gudrā klātbūtne būs diezgan vērtīga.

Labots - Vilx-
Link to comment
Share on other sites

Vispār jau NC doma, manuprāt, pareiza, ka vajag iemācīt programmēt, nevis kādu konkrētu valodu, bet pašu tehniku. Un pašu programmēšanas procesu jau jāskaidro ar blokshēmām.

Bet ir problemātiski saprast tās blokshēmas. Un pats svarīgākais - parasti neredz jēgu tām blokshēmām, jo, "Es protu programēt arī bez tām. Priekš kam man viņas" (pašam arī tā bija). Bet ja saskata saistītbu tām blokshēmām ar programmēšanu un redz, ka viņas ir vajadzīgas (bet ar maziem piemēriem to būs grūti parādīt, vajag kaut ko lielāku parasti), tad jau sapratīs, ka algoritmi un blokshēmas (un citi palīglīdzekļi programmēšanai) ir patiesībā ļoti noderīga lieta.

Ja nedos programmēt, bet vienkārši mācīs programmēšanas principus, tad būs retais, kuram tas raisīs interesi. Vajag arī dot to pašu Pascal blakus blokshēmām u.c. lietām, bet liekot blokshēmas un algoritmus goda vietā.

Nu tas tā, ņemot pēc savas pieredzes, kā studentam (bet pats arī sāku programmēt tikai pirmajā kursā).

Link to comment
Share on other sites

Es pievienojos. Vai kāds var iztēloties cilvēku, kurš māk programmēt, bet nepazīst nevienu valodu? :roll:

 

Programmēt iemācīsies caur konkrēto valodu. Pēcāk jau jaunas valodas apgūt būs viegli.

Link to comment
Share on other sites

Mezavecis

Man darba kolēģi stāstīja kā 90-to gadu sākumā mācīja programmēt, uz tāfeles bitus skaitīja :) Pašu datoru protams tā īsti nebija.

Link to comment
Share on other sites

Guest Bērzs

Es tomēr uzskatu, ka blokshēmas ir traucēklis, jo kas tad ir blokshēma?

 

Blokshēma ir algoritma interpretācija, bet pascal kods arī ir algopritma interpretācija.

Tātad jautājums vai ir vajadzīgs paralēli mācīties divas interpretācijas metodes?

Es uzskatu ka NĒ, jāizvēlas labākā!

Un labākā viennozīmīgi ir paskāls, no šīm divām, jo to var pārbaudīt uz datora un tai algoritmu interpretācija ir daudz īsāka kā blokshēmām.

 

Starp blokshēmām un paskālu ir tāda atšķirība ka blokshēmām ir mazāk elementu, tas nedaudz blokshēmas padara vienkāršākas. Respektīvi blokshēmām nav ciklu, bet tie tiek būvēti no mazākiem elementiem - līdzīgi kā assamblerā. Bet tiko ciklu koncepcija ir iedabūta skolnieku prātos, tā blokshēmas pilnīgi zaudē savu jēgu.

 

Bez tam arī paskālā var realizēt ciklus, bez cikla operātoriem, izmantojot goto un tad pakāla analoģija ar blokshēmām ir identiska.

 

 

Bez tam nevajag jaukt vienā maisā algoritmus un blokshēmas.

Un runājot par blokhēmu efektivitāti lielākos uzdevumos, tad vajag pamēģināt ar blokshēmām uzrakstīt, piemēram, qsort algoritmu. Neesmu īpaši iedziļinājies blokshēmu koncepcijās, bet šaubos vai tās spēj realizēt rekursiju.

Labots - Bērzs
Link to comment
Share on other sites

Bērzs, bloksheemas nav formalitaate - taa ir nepiecieshamiiba. man tikko amata braalis suudzeejaas, ka vinjam kods neiet - paskatoties uz vinja drukaajumu un vareeju pateikt ka dzheks ir sanjeemis uzdevumu un tad perdis pa klavieri ar domu ka gan jau beigaas kaut kas sanaaks. dazhos % gadiijumos programma peec shitaadas pieejas arii straadaa bez gljukiem (patreiz nerunaaju par programmaam kas satur tikai dazhas rindinjas). bet ja vispirms uzziimee bloksheemu (kaut vai izplaano darbiibu seciibu uz papiira briivaa formaa) tad paarrakstiit to uz programmas kodu vareetu arii cilveeks ar diezgan vaajaam zinaashanaam konkreetajaa programmas valodaa (protams shpikojot sintaksi no googles vai manuaalja)

Link to comment
Share on other sites

Blokshēma ir algoritma interpretācija, bet pascal kods arī ir algopritma interpretācija.

Tātad jautājums vai ir vajadzīgs paralēli mācīties divas interpretācijas metodes?

Es uzskatu ka NĒ, jāizvēlas labākā!

Nu un tad izveido savu interpretāciju paskālā kaut kādai lielai masīvu rēķināšanas programmai un pamēģini kādam pusčaiņikam, kas māk tikai C# piespiest tavu interpretāciju uzrakstīt vinja izvēlētajā valodā! da apd*rsīsies tu, bet vinju nepiespiedīsi! tapēc jau blokshēmas arī izmanto, ka tām nav saistības ar valodas īpatnībām! programmēšanas valodā uzrakstīto interpretāciju sapratīs tikai koderis kurš pārzina valodu, bet blokshēmā parādīto - pat muļķis, kurš dzīvē pirmo reizi datoru redz!

 

Piekrītu NC - jāmāca saprast algoritmu veidošanu, bet jāļauj arī tos kādā valodā uzrakstīt un paskatīties kā tas darbojas uz datora!

Link to comment
Share on other sites

Guest Bērzs

Blokshēmu aizstāvjiem!

 

Vienkārša pakāpes funkcijas realizācija veseliem skaitļiem, pamēģiniet to uzrakstīt blokshēmām.

Gribētu redzēt, ko atrāk izdosies izskaidrot kādamjaunajam, šo kodu vai blokshēmu.

function p(a,b:integer):integer; begin
 if b=0 then p:=1 else p:=p(a,b-1)*a;
end;

 

p(a,b)=a^b;

 

Un kad būs uztaisīt blokshēma, varēsim iedot pamēģināt kādiem C# pārstāvjiem, no kā viņi uztaisīs ātrāk C# funkciju, no paskāla koda vai no blokshēmas!

 

programmēšanas valodā uzrakstīto interpretāciju sapratīs tikai koderis kurš pārzina valodu, bet blokshēmā parādīto - pat muļķis, kurš dzīvē pirmo reizi datoru redz!

 

Un kad būs blokshēma gatava uztaisiet eksperimentu un paprasiet apkārt esošiem cilvēkiem, ko šī blokshēma dara.

 

 

 

P.S. Blokshēmai jārealizē pakāpes funkcijas mehānisms, tādā paša stilā kā tas ir norādīts programmā, viens rimbulītis ar izvada a^b nederēs.

Link to comment
Share on other sites

Raimonds1

Ir dažas labas grāmatas, ka atbalsta tieši blokshēmu lietošanu - ja saprot, kad programaai kaut kas jādara, kad jāvēršas pie taimera, kad jādzēš vai jāraksta jaunā taimera vērtiba, tad šis tas paliek skaidrāks. Tās gan ir par elektroniku,bet pamata nodaļas par blokshēmam un valodām ir labas.

John Iovine - PIC Robotics - A Beginer s guide to Robotics projects Using the PIC micro

John Norton -AVR -An introductory course tulkojums krievu valodaa ( Valters un Rapa)

Zaņimateļno o mikrokontrolerax Al. Mikušin

Primeņeņije mikrokontroļerrov AVR: Shemi, algoritmi, programmi V. Baranov

 

Pamata lietas izskaidrotas labi.

Link to comment
Share on other sites

Guest Dzjonsis

Jā... Pierādās vecum vecais krievu teiciens "Muldēt nav maisus staipīt" (krieviski skan sulīgāk).

 

Ieliku ziņu lai palīdz diletantam piedabūt lazarusam (free pascalam) konteksta helpu darbībā - un baigais klusums (paldies tam vienam, kurš vismaz pacentās), bet šeit par kuku - mjeku tik daudz programmētāju saradies...

 

Da kāda starpība, kādā valodā programmē - ja vienā māk, ta citu pa nedēļu, divām arī apgūs. Galvenais lai sāk loģiski domāt.

Link to comment
Share on other sites

Vai tad no šīs diskusijas visiem jau nav palicis skaidrs?

 

Ir vietas, kur blokshēmas ir noderīgas, un ir vietas, kur tās nav noderīgas. Blokshēmas ir tāds pats darbarīks, kā jebkurš cits. Ir darbi, kurus var ar to veikt, un ir darbi, kurus ar to nevar. Ēst ir vienkāršāk ar karoti, bet rakt - ar lāpstu. Pamēģini samainīt darbarīkus vietām, redzēsim, kas sanāks!

 

Taču iemācīt blokshēmas gan vajag. Sākumā, elementāriem algoritmiem, tās palīdz. Pēcāk jau tā ir paša cilvēka izvēle, kad tās lietot, un kad nē. Sk. augstākminēto Pēci Beisikāni. Tur blokshēmas bija labi izmantotas!

 

PS. Es arī diendienā viņas neizmantoju, bet nupat, aizvakar, taisni bija viens gadījums, kur pēc ilgiem laikiem tās palīdzēja saprast samērā sarežģītu biznesa loģikas gabaliņu.

Link to comment
Share on other sites

Raimonds1

nu, joka pēc var ielikt blokshēmu tādam robotam, kā line folower

tas seko melnai līnijai

tiek pieņemts, ka elektronika atpazīst loģisko 0 un 1, pie tam 1 būs melna līnija un 0 - balta lapa

un tātad - robotam purnā ir rindā 6 sensori, kuru lokalizācija tiek kodēta šādi

000 001 010 011 100 101

programmai pēc šiem jaatpazīst, kurs sensors tas ir labais, kreisais, malējais , vidējais utt

pieliekot vel vienu 0 vai 1 tiek pateikts, ka sitais ir saodis melno līniju vai arī uztver balto lapu

0000 0010 0101 0110 1010

tas nozīmes, ka 0101 ir uz melnās līnijas, savukārt

0001 0011 0101 0110 1010

nozimes, ka uz pirmajiem 3 sensoriem ir līnija - tātad jāgriežas

ik pa 0,1 sekundi dati atjaunojas, nolasot sensoru lokalizāciju un melno 1 vai balto0

vadība - 2 motori uz kuriem padod dažāda garuma impulsus no 0,1 līdz 1 sekundei, atkarība no tā, cik japagriez un cik atri jābrauc

un tagad - kā tas būs C++ vai Asemblerī :)

Link to comment
Share on other sites

Ja nepatīk blokshēmas, var izmantot pseidokodu.

Patiesība ir tāda, ka dažas lietas uzskatāmāk ir attēlot ar blokshēmu, bet dažas ar pseidokodu.

 

Apmācībās klasiski tiek izmantota ideja par robotiņu, kas pārvietojas pa rūtiņu lapas rūtiņām, kuram ir definētas komandas:

griezties pa labi

griezties pa kreisi

uz priekšu

iekrāsot rūtiņu

vai priekšā ir siena

 

un attiecīgi arī (pēc mācību vielas apguves daudzuma) loģiskie nosacījumi:

ja ... tad ... citādi ...

kamēr ... tikmēr ....

 

Rūtiņu lapā var būt iezīmētas sienas, kuras robotiņam jāspēj apiet...

Kā mājasdarbu vari iedot labirintu ar noteikumu uzrakstīt pēc iespējas īsāku kodu.

 

Tālāk vari definēt, ka robotiņam ir kravas kaste ar nodalījumiem, kuros, piemēram var kraut dažādas lietas (mainīgie), nodalījumi mēdz būt dažādi: grozs (kartupeļu iekraušanai); kanna (piena glabāšanai) (mainīgo tipi). Piena pudeļu kasti vari izmantot kā masīva reprezentāciju. Jāatcerās, ka dažādiem cilvēkiem ir dažāda veida uztvere - vieniem kļūst skaidrāk, ja uzzīmē blokshēmu, citiem, ja uzraksta pseidokodu - izmanto abus!

Izmanto vairākus robotiņus un sašķiro kartupeļus pēc svara ;)

 

P.S. Esmu mācījis informātiku 7. un 10.-12. klasēm divus gadus. Ļoti labas ir krievu vecās grāmatas - tajās ir par robotiņiem, labirintiem utt pilns un nekādas piesaistes jelkādai programmēšanas valodai - viss ļoti vienkārši aprakstīts.

Labots - Aleksejs
Link to comment
Share on other sites

Guest Bērzs

 

while true do begin
s:=readinput(); 
if s[4]=0 then speed(0.6,0.4);
if s[24]=0 then speed(0.4,0.6);
delay(100);
end;

 

readinput ielasa datus tavā norādītajā formātā, kā 1 un 0 virkni.

speed, iestāda attiecīgi labā un kreisā riteņa ātrumu.

delay, ietur 100 ms pauzi

 

Neticu, ka blokshēma būs vienkāršāk saprotama vai īsāka.

Labots - Bērzs
Link to comment
Share on other sites

Raimonds1

nu ja

pie tam te var paredzēt visādus variantus - kas jadara, ja robots izpērsies ārpus līnijas - kā grozīties un kuru pusi meklēt, kādā slīpumā ta līnija bija pirms izpēršanas ārpus

vai ja uz visiem ir loģiskais 1 - sagriezies sķērsam, bet kurā virzienā braukt?

 

vai arī, ja baltās vai melnas līnijas esamību nekodē ar 0 un 1, bet ar 00 01 10 11 - atkarībā no tā, vai pa vidu līnijai, vai uz malas

 

vai arī attēla matrica ar 12x12 elemetiem un 16 gaismas līmeņiem

utt n-tie varianti

Link to comment
Share on other sites

N-tie līmeņi - ir pārāk sarežģīti. Vajag lai būtu vienkāršāk. Kad iemācīsies vienkāršāk, var arī ntos līmeņus, un m-tos akutatoru nolasījumus... ;)

Link to comment
Share on other sites

Raimonds1

protams, ka jāsak ar vienkāršāko

kas attiecas uz saprašanu un blokshēmām - laba analoģija ir loģikas mikroshēmas- piemēram - UN-NE VAI-NE loģika, registri, taimeri, adresu reģistri, utt

teiksim - ja uz pirmajam 3 rindam loģiskais 1 tad griezt pa kreisi

ja loģiskais 1 uz pēdejam 3 rindam

pa labi

 

ja to saprot, tad vismaz zinās, ko prasīt no programmētāja

Link to comment
Share on other sites

usins_pacina

jāsāk ar loģiskās domāšanas attīstību. Tad jāmācās zīmēt, sastādīt algoritmus. Jāzin visi cikli ar pirm, pēc nosacījumiem, jāapgūst masīvi utt. Tad kad to pārzini- ieteicams labi, tad vari sākt savas PASCAL gaitas. Ja tas padosies tad vari ņemt visual basiku, Delfu :) galvenais jāzin komandas, un jāievēro kārtība, lai kods neizskatās haotisks un var viegli orienteties.

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...