Konko Februāris 28, 2009 Author Share Februāris 28, 2009 Tā nu ir sanācis, ka esmu informātikas skolotājs un šobrīd 12.klašu skolēniem jātaisa ieskaites darbs programmēšanā. Līdz šim apguvām Pascal, bet ieskaites darbs būs VBA. Un man ir jāatrod tie risinājumu varianti, ko saprotu ne tikai es, bet kurus es jūtu, ka varēšu ieskaidrot arī skolēniem. Variants ar skaitļu piesaisti čekboksiem man šķiet pietiekami vienkārš un ceru, ka tā nav rupja kļūda. Paldies par ieteikumiem. Link to comment Share on other sites More sharing options...
Guest ADEX Februāris 28, 2009 Share Februāris 28, 2009 Tā, kā to centies pasniegt tu, tā ir rupja kļūda. Skolā tā mācīt nedrīkst. Tā var programmēt sava prieka pēc. Link to comment Share on other sites More sharing options...
Konko Februāris 28, 2009 Author Share Februāris 28, 2009 (labots) Kāpēc labi programmētāji nestrādā par skolotājiem. Ir divi iemesli: 1.Alga 2.Lielākā daļa skolēnu ir nesekmīgi un neko no programmēšanas nesaprot. Savukārt bērnu vecāki čakli savāc parakstus vēstulei uz ministriju. Rezultāts. Skolās strādā tie kas prot pasniegt programmēšanu skolēniem saprotamā veidā. Zinātniskā puse starp citu tiek ignorēta praktiski visos mācību priekšmetos. Ja jāizvēlas starp zinātniskumu un pareizību un saprotamību, kā likums izvēlas saprotamību. Tāda ir bijusi un būs skolas būtība. Tikai augstskolā var atļauties faktu, ka puse kursa programmēšanas dēļ pamet studijas. Mani pieminētie fakti ir realitāte. Gan konkrētas skolas, gan konkrētas augstskolas. Labots Februāris 28, 2009 - Konko Link to comment Share on other sites More sharing options...
Guest ADEX Februāris 28, 2009 Share Februāris 28, 2009 (labots) Vilx- variants ir saprotamāks. Ja kādam liekas citādi, viņam nav pat vērts sākt mācīties programmēt. Ar šiem skaitļiem ir jāstrādā kā ar atsevišķiem bitiem. Iedomājies skaitli kā atsevišķus bitus, kur katrs bits atbilst vienam čekboksim, mož kļūs saprotamāks tas, ko Vilx- centās pateikt. Labots Februāris 28, 2009 - ADEX Link to comment Share on other sites More sharing options...
Konko Februāris 28, 2009 Author Share Februāris 28, 2009 Intereses pēc rīt pamēģināšu to variantu. Pirmais ko viņš piedāvāja negāja. Dziemžēl VBA iet tikai tad ja ir aptvertas visas iespējamās kombinācijas. Ar skaitļiem man ir 100% garantija, ka tā arī būs. Uzrakstu visus uz papīra un nodefinētos variantus pamazām izsvītroju. Šobrīd 5 čekboksiem varu to uztaisīt dažās minūtēs. Ja ar zinātnisko variantu tam paies pāris stundas, tad iztēlojos cik viegli to sapratīs skolēni. Pascalā pat ar visvienkāršākajām loģiskajām operācijām bija smagas problēmas. Link to comment Share on other sites More sharing options...
Guest ADEX Februāris 28, 2009 Share Februāris 28, 2009 Nu es nezinu, kā tur tajā VBA ir ar tām loģiskajām operācijām, kas jāveic nevis statrp diviem booleaniem, bet starp diviem baitiem, pa bitam. Bet tas noteikti ir saprotamāk. Un pareizāk. Link to comment Share on other sites More sharing options...
Konko Februāris 28, 2009 Author Share Februāris 28, 2009 (labots) Skolā māca programmēšanas pamatus. Pēc tam aiziet mācīties par programmētājiem vai kļūst par tādiem tikai daži procenti skolēnu. Bet sekmīgiem ir jābūt praktiski visiem. Labots Februāris 28, 2009 - Konko Link to comment Share on other sites More sharing options...
Guest ADEX Februāris 28, 2009 Share Februāris 28, 2009 Un tiešām flagu baita apstrāde ietilpst programmēšanas pamatos? Link to comment Share on other sites More sharing options...
Konko Februāris 28, 2009 Author Share Februāris 28, 2009 Viņiem izmantojot VBA ir jāizveido strādājoša apmācošā testa programma. Jābūt dažādiem atbilžu sniegšanas variantiem - TextBox, Radiopoga, ChekBox u.t.t. Atbildes jānovērtē ar punktiem dažādos variantos. Teiksim - pareiza tikai 1 atbilde; Pareizas 2 no 5 u.t.t. Beigās punkti jāsummē un jāizliek atzīme. Ieskaites darba izvēle nav stingri reglamentēta. Šis variants dod iespēju daudzmaz vienādi visus salīdzināt un novērtēt. Katrs skolēns pats var izvēlēties kurā mācību priekšmetā šis VBA tests tiks veidots. Kā arī dažādi kombinēt jautājumu un atbilžu variantus. Link to comment Share on other sites More sharing options...
Guest ADEX Februāris 28, 2009 Share Februāris 28, 2009 Ja ir ļoti svarīgi to rezultātu glabāt kā vienu skaitli, bet VBA nesatur bit-to-bit loģiskās operācijas, tad laikam prātīgākais būtu tās izveidot kā custom funkcijas. Tomēr VBScript māk gan izpildīt loģiskās operācijas pa bitam: http://msdn.microsoft.com/en-us/library/e8zy95hw(VS.85).aspx Tā ka - jauns divritenis nav jāizgudro. Link to comment Share on other sites More sharing options...
Vilx- Februāris 28, 2009 Share Februāris 28, 2009 Cik redzēti iesācēju darbi programmēšanā, es teiktu, ka ar saprašanu šajā gadījumā ir šādi (sakārtots no visnesaprotamākā uz vissaprotamāko): Binārā sistēma un bitu operācijas; Citas savstarpēji izslēdzošās virknes (nosaukumu pats nupat izdomāju) - piem. 1, 10, 100, 1000... Milzīgi samežģīti IF'i. Šermuļi pār kauliem skrien reizēm, skatoties, kādi IF'i ir sarakstīti. Kā noproti, es tomēr joprojām iesaku izmantot IF'us, kuros ar AND'iem, OR'iem un NOT'iem (XOR varbūt var izlaist) ir kopā kabināti CheckBox.Value. Tici man - konceptus par IF, AND, OR un NOT Tev būs daudz vieglāk izskaidrot (un tas tāpat būs jādara), nekā vēl papildus mahinācijas ar skaitļiem. Un, jā - padomā pats - šajā gadījumā jebkurā variantā uzdevuma pildītājam vajadzēs spēt izdomāt visus iespējamos variantus, kā tie čekbokši var būt saķeksēti. Vienalga, vai tiks izmantoti CheckBox.Value, vai Tavi skaitļi. Pievienots: Starp citu - nejauksim līdzīgas, bet tomēr principiāli atšķirīgas lietas: VBScript; VBA; Visual Basic līdz 6.0 versijai; Visual Basic.NET Link to comment Share on other sites More sharing options...
Konko Februāris 28, 2009 Author Share Februāris 28, 2009 Paldies! Rīt visu papētīšu. Link to comment Share on other sites More sharing options...
Guest ADEX Februāris 28, 2009 Share Februāris 28, 2009 Es vienkārši ātrumā neatradu par VBA. Domāju, ka VBScript jābūt stipri līdzīgi. Link to comment Share on other sites More sharing options...
Vilx- Februāris 28, 2009 Share Februāris 28, 2009 Velnsviņzin. Es puslīdz pazīstu tikai VB.NET. VBScript mazliet ir aiztikts, bet VBA un VB 6.0 (un jaunāki) gan ne. Nē, nu, patiesībā, sensenos laikos (pirms kādiem 10 gadiem) esmu arī mazliet kaut ko mēģinājis tajā VBA taisīt. Cik no tām dienām atceros, tas bija kaut kas diezgan savdabīgs... Pievienots: He, nupat ienāca prātā variants, kādu es sagaidītu skolnieku darbos. IF (NOT CheckBox1.Value AND CheckBox2.Value AND NOT CheckBox3.Value AND CheckBox4.Value) THEN Result = 2 IF ( CheckBox1.Value AND CheckBox2.Value AND NOT CheckBox3.Value AND NOT CheckBox4.Value) THEN Result = 1 IF (NOT CheckBox1.Value AND CheckBox2.Value AND CheckBox3.Value AND NOT CheckBox4.Value) THEN Result = 1 IF ( CheckBox1.Value AND NOT CheckBox2.Value AND NOT CheckBox3.Value AND CheckBox4.Value) THEN Result = 1 IF (NOT CheckBox1.Value AND NOT CheckBox2.Value AND CheckBox3.Value AND CheckBox4.Value) THEN Result = 1 IF ( CheckBox1.Value AND NOT CheckBox2.Value AND CheckBox3.Value AND NOT CheckBox4.Value) THEN Result = 0 IF (NOT CheckBox1.Value AND CheckBox2.Value AND CheckBox3.Value AND CheckBox4.Value) THEN Result = 0 IF ( CheckBox1.Value AND NOT CheckBox2.Value AND CheckBox3.Value AND CheckBox4.Value) THEN Result = 0 IF ( CheckBox1.Value AND CheckBox2.Value AND NOT CheckBox3.Value AND CheckBox4.Value) THEN Result = 0 IF ( CheckBox1.Value AND CheckBox2.Value AND CheckBox3.Value AND NOT CheckBox4.Value) THEN Result = 0 IF ( CheckBox1.Value AND NOT CheckBox2.Value AND NOT CheckBox3.Value AND NOT CheckBox4.Value) THEN Result = 0 IF (NOT CheckBox1.Value AND CheckBox2.Value AND NOT CheckBox3.Value AND NOT CheckBox4.Value) THEN Result = 0 IF (NOT CheckBox1.Value AND NOT CheckBox2.Value AND CheckBox3.Value AND NOT CheckBox4.Value) THEN Result = 0 IF (NOT CheckBox1.Value AND NOT CheckBox2.Value AND NOT CheckBox3.Value AND CheckBox4.Value) THEN Result = 0 IF (NOT CheckBox1.Value AND NOT CheckBox2.Value AND NOT CheckBox3.Value AND NOT CheckBox4.Value) THEN Result = 0 IF ( CheckBox1.Value AND CheckBox2.Value AND CheckBox3.Value AND CheckBox4.Value) THEN Result = 0 Principā tieši tas arī ir - šeit ir uzskaitīti VISI iespējamie varianti, kādos var būt ieķeksēti 4 čekbokši. Pieraksts, protams, ir stipri garš (un tāpēc tajā viegli kļūdīties), toties skolniekiem būs viegli saprotams. Link to comment Share on other sites More sharing options...
Konko Marts 1, 2009 Author Share Marts 1, 2009 (labots) Pārbaudīju abus Vilxs variantus. Neviens neiet. Ja gribētu izmantot tad varētu to īsāko, bet cik saprotu tam ir kļūda ka netiek nodefinēti VISI iespējamie varianti. Līdz ar to kods neiet. Arī garākajā ir kļūdas. Atrast tās un izlabot jau varētu, bet kods ir šausmīgi apjomīgs (vismaz 2 reizes lielāks nekā manējais) un tas nav manuprāt racionāli. Pie tam manam kodam ir viena priekšrocība, ka visiem rezultāta variantiem kods ir saspiests vienā rindiņā. 2 - viena rindiņa 1 - viena rindiņa 0 - viena rindiņa. Veidojos šo kodu atklāju VBA īpatnību, ka ja vienam rezultātam ir divas rindiņas, kods pārstāj darboties. Tas ir ja es rezultātam 1 piekārtoju divas loģisko sakarību virknes, kods neiet. Sarakstīt visas kombinācijas atbilstošas 1 vienā rindiņā ar Vilxs pēdējo piedāvājumu, praktiski ir neiespējami. Vēl pacīnīšos ar Vilxs īsako variantu. Pievienoju koda variantu ar 5 čekboksiem, kur pilnīgi pareiza atbilde ir 1, 3 un 5 čekbokss. Kods darbojas ļoti labi. Būtu interesanti vai to ar pareizajiem programmēšanas variantiem var tik vienkārši uztaisīt. Un atklātis sakot nezinu kur ir mana programmēšanas nepareizība. Galu galā tas pats NOT taču tomēr ir nodefināts, un kas par to, ka ar skaitli - 0! Vai tiešām jāraksta gudri, pareizi un milzīgi nesaprotami un gari? Es savu kodu saprotu pilnībā un varu to izskaidrot pat vismazāk saprotošajam skolniekam. Private Sub CommandButton1_Click() If CheckBox1.Value = True Then a = 1 If CheckBox1.Value = False Then a = 0 If CheckBox2.Value = True Then b = 2 If CheckBox2.Value = False Then b = 0 If CheckBox3.Value = True Then c = 4 If CheckBox3.Value = False Then c = 0 If CheckBox4.Value = True Then d = 8 If CheckBox4.Value = False Then d = 0 If CheckBox5.Value = True Then e = 16 If CheckBox5.Value = False Then d = 0 z = a + b + c + d + e If (z = 21) Then TextBox2.Value = 3 If (z = 5) Or (z = 17) Or (z = 20) Or (z = 7) Or (z = 13) Or (z = 19) _ Or (z = 25) Or (z = 22) Or (z = 28) Then TextBox2.Value = 2 If (z = 1) Or (z = 3) Or (z = 9) Or (z = 11) _ Or (z = 4) Or (z = 6) Or (z = 12) Or (z = 14) _ Or (z = 16) Or (z = 18) Or (z = 24) Or (z = 26) _ Then TextBox2.Value = 1 If (z = 2) Or (z = 10) Or (z = 15) Or (z = 20) Or (z = 23) _ Or (z = 27) Or (z = 30) Or (z = 31) Then TextBox2.Value = 0 Labots Marts 1, 2009 - Konko Link to comment Share on other sites More sharing options...
nullchar Marts 1, 2009 Share Marts 1, 2009 Kas tieši tev Vilx kodā nestrādā? Tikko VBA pāris min. laikā pārbaudīju un viss notiek... Ieliec formā 4 Checkboxus un 1 Command button un šitādu kodu: Dim CB1 As Boolean Dim CB2 As Boolean Dim CB3 As Boolean Dim CB4 As Boolean Dim Result As Integer Private Sub CommandButton1_Click() CB1 = CheckBox1.Value CB2 = CheckBox2.Value CB3 = CheckBox3.Value CB4 = CheckBox4.Value If CB2 And CB4 And Not CB3 And Not CB1 Then Result = 2 ElseIf (CB2 Xor CB4) And (Not CB1 Or Not CB3) Then Result = 1 Else Result = 0 End If MsgBox Result End Sub Kaut arī neesmu nekāds programmētājs, man Vilx variants šķiet daudz loģiskāks un saprotamāks nekā tava saskaitīšanas metode. Vai tad ir tik traki to XOR ieskaidrot skolēniem? Link to comment Share on other sites More sharing options...
Konko Marts 1, 2009 Author Share Marts 1, 2009 (labots) Vēlreiz pārbaudīju visus Vilka ieteiktos variantus. Neiet un viss. Vajdzīgs lai strādātu un dotu novērtējumu punktos pie jebkuras iespējamās izvelēto čekboksu kombibācijas. Definējot tās ar skaitļiem, kuri nekad neatkārtojas manuprāt, ir vieglāk nekā ar loģiskajām kombinācijām. Tad visu laiku jādomā vai kaut kas nav palaists garām. Ar skaitļiem - ja man katram skaitlim ir tikai viens rezultāts un ir aptverti visi skaitļi, viss darbojas lieliski! Esmu ejošu risinājumu atradis un acīmredzot pie tā arī palikšu. Skolniekiem vienkārši pateikšu, ka no programmēšanas viedokļa mans variants nav labs, bet tas STRĀDĀ! Un ir ļoti viegli sakombinēt visdažādākos atbilžu un punktu variantus. Bet paldies par palīdzību visiem! Labots Marts 1, 2009 - Konko Link to comment Share on other sites More sharing options...
Vilx- Marts 1, 2009 Share Marts 1, 2009 Nē, nu, OK - dari, kā zini.... lai arī mani pašu interesē, kas gan manā īsajā variantā nestrādāja? (Garajā variantā saprotu, ka varētu būt nokļūdījies). IMHO es tur tomēr uzskaitīju visus variantus... Ā, un vēl viena ideja iešāvās prātā - Tev taču klasē(-s?) ir jābūt arī vismaz vienam diviem ļautiņiem, kuriem šitā štelle patīk, un kuri visu labi saprot, ne? Pamēģini uzdot viņiem šo uzdevumu, un paskaties, kā viņi to atrisinās. Varbūt vēl kāda laba ideja uzrodas! Pievienots: Ē, starp citu - vai tad mācību programmās nav apstāstīts, kādas grāmatas jāizmanto or something? Caur turieni nevar atrast, kā mūsu bāleliņi IZM ir paredzējuši, ka šādus uzdevumus risina? Link to comment Share on other sites More sharing options...
Konko Marts 1, 2009 Author Share Marts 1, 2009 (labots) Īsajā cik saprotu nepietiek ar to, ka Else Rezult = 0. Manuprāt VBA grib lai tiktu precīzi uzrādītas visas kombinācijas pie kurām Rezult = 0. Par to variantu ar skolniekiem padomāšu. Jo mums ir paredzēts, ka 8 var dabūt, ja izdara visu pareizi pēc tiem kodiem ko iesaka skolotājs. 9 vai 10 paredzēts augstākas grūtības variants. Tad arī tiem kas uz to pretendē iedošu lai izkož šeit piedāvātos variantus. Klasē ir vismaz 2-3 kuri to varētu dabūt gatavu! Te ir mācību materiāls latviešu valodā - autors Gultniece - "VBA - Vizuālais BASIC Microsoft lietojumprogrammās" http://informatika.liis.lv/default.aspx?tabid=9〈=1&id=306 Pats vēl izmantoju krievu grāmatu Andrei Garnajev "VBA v podljennike" - apm.800lpp. bieza. Labots Marts 1, 2009 - Konko Link to comment Share on other sites More sharing options...
Vilx- Marts 1, 2009 Share Marts 1, 2009 Vai tad viņš to Else neizpilda? Varbūt tur ir kāda sintakses kļūda - es VBA nepārzinu. Bet idejai vajadzētu būt skaidrai. Ja pielabotu sintaksi vajadzētu būt OK. Paskaties nullchar variantu, tas izskatās ar visu pilno sintaksi. Kādos čekbokšu variantos viņš tur neatgriež pareizu rezultātu? Pievienots: Brr! Izskatās, ka tur ir gaužām maz par pašiem programmēšanas pamatiem. Iesaku savu mīļāko grāmatu par programmēšanas pamatiem. Tur lejāk ir arī linki, kur var atvilkt (ja pirmais nestrādā, pamēģini pārējos, manējais toč strādā). Lai arī nav gluži par mūsdienīgu BASIC dialektu, tomēr principi dikti labi izstāstīti. Ā, un vēl NPS parasti tiek visur ieteikts, kā pirmklasīgs avots, lai mācītos programmēt. Tas gan ir par Pascal. Link to comment Share on other sites More sharing options...
Konko Marts 1, 2009 Author Share Marts 1, 2009 (labots) Vai nu izmet ārā vispār no Formas vai strādā tikai ar variantiem kuri atbilst Rezult = 2 un Rezult = 1. Tiklīdz ir kombinācija atbilstoša Else Rezult = 0, viss sačakarējas. Vienkārši izmet ārā vai pat uzkar PowerPoint. Taisu iekš PowerPoint. Pamatus jau mēs izgājām ar Pacal. Tur literatūras un interneta avotu ir kaudzēm. Vienkārši gribējās beigt ar kaut ko kam ir praktisks pielietojums. Labots Marts 1, 2009 - Konko Link to comment Share on other sites More sharing options...
Vilx- Marts 1, 2009 Share Marts 1, 2009 Tad jau toč kāda sintakses kļūda. Link to comment Share on other sites More sharing options...
Konko Marts 1, 2009 Author Share Marts 1, 2009 Domāju, ka VBA grib lai precīzi tiek uzskaitīti visi Rezult = 0 varianti. Bet tas ir diezgan darbietilpīgi. Link to comment Share on other sites More sharing options...
Vilx- Marts 1, 2009 Share Marts 1, 2009 Nedomāju, ka VBA to grib. Tam taču ELSE ir domāts - "visiem pārējiem gadījumiem"... Link to comment Share on other sites More sharing options...
Konko Marts 1, 2009 Author Share Marts 1, 2009 Diemžēl pat ar skaitļiem, kamēr nebiju 100% nodefinējis visus iespējamos variantus kods negāja. Var gadīties ka VBA ar else saprot tikai precīzi nodefinētu sakarību. Ja ar else domāti visi pārējie varianti, VBA apmulst! Link to comment Share on other sites More sharing options...
nullchar Marts 1, 2009 Share Marts 1, 2009 Nez, tajā kodā, ko es augstāk iepostēju, man viss strādā (VBA iekš Word 2003). Ja tu tomēr gribi apskatīt visus iespējamos variantus, tad tā garā nosacījumu blāķa vietā varu ieteikt izmantot Select..Case: Select Case z Case 21 TextBox2.Value = 3 Case 5, 17, 20, 7, 13, 19, 25, 22, 28 TextBox2.Value = 2 Case 1, 3, 9, 11, 4, 6, 12, 14, 16, 18, 24, 26 TextBox2.Value = 1 Case Else TextBox2.Value = 0 End Select Link to comment Share on other sites More sharing options...
Konko Marts 1, 2009 Author Share Marts 1, 2009 Paldies! Tie case varianti iet! Izmantošu! Link to comment Share on other sites More sharing options...
nullchar Marts 1, 2009 Share Marts 1, 2009 Ieinteresēja drusku tā tava problēma un ienāca prātā cits variants, kā to varētu risināt. Man liekas, ka nav būtiski zināt, kādās kombinācijās lietotājs ir saķeksējis atbildes, visu vajadzīgo informāciju satur 2 skaitļi - cik ir ieķeksēto variantu un cik no tiem ir pareizi. Kā es mēģinātu darīt: Ir 2 (boolean) masīvi. 1. masīvā glabājas pareizās atbildes uz jautājumu. 1 jeb "True" ir pareiza, 0 jeb "False" - nepareiza. Tavā gadījumā ar 5 Checkboxiem tas būtu 1 0 1 0 1 2. masīvā glabājas lietotāja saķeksētais variants. Piem, ja iečekots 1. un 4., tad masīvs izskatās 1 0 0 1 0 Noskaidro, cik atbildes lietotājs ir saķeksējis, tb saskaiti, cik "1" ir otrajā masīvā (šajā gadījumā 2). Noskaidro, kuras no lietotāja atzīmētajām atbildēm ir pareizas. To var izdarīt, salīdzinot katru 1. un 2. masīva n-to elementu ar AND palīdzību. Rezultāts būtu 1 0 0 0 0 Tālāk saskaiti pareizās atbildes (šajā gad. - viena). Tālāk noskaidro, cik punkti jāpiešķir. Ja 0 pareizas atbildes - viss skaidrs... Ja 1 pareizā atbilde - tad jāskatās, vai kopējais atķeksēto variantu skaits nepārsniedz kādu robežu. Piemēram, ja ir 2, kā piemērā, tad OK, 1 punkts. Ja lietotājs bez 1 pareizā saķeksējis veselu gūzmu nepareizu variantu (piem. >= 2), tad nekā... Līdzīgā veidā ar 2, 3 vai cik nu tur ir pareizās atbildes. Vienīgi te jāzin drusku par masīviem un cikliem, nez, vai skolnieciņi to spēj. Link to comment Share on other sites More sharing options...
Vilx- Marts 1, 2009 Share Marts 1, 2009 Var gadīties ka VBA ar else saprot tikai precīzi nodefinētu sakarību. Ja ar else domāti visi pārējie varianti, VBA apmulst!Nu, tā nu gan nevar būt! Tad jau ELSE zūd jēga. Problēma noteikti ir kur citur. Pamēģini iet cauri step-by-step un paskatīties, kas tur īsti notiek. Iesaku to izdarīt ne jau tāpēc, lai izmantotu manu kodu, bet gan tāpēc, ka acīmredzami tur ir kaut kāda problēma, par kuru Tu neko nezini. Un, ja jau Tu uz viņas tik viegli uzrāvies, tad Tavi skolnieki arī noteikti. Tāpēc derētu izpētīt, kas tieši tur ir par vainu, lai zinātu, ko stundā teikt skolniekiem. Link to comment Share on other sites More sharing options...
Konko Marts 1, 2009 Author Share Marts 1, 2009 Man jau pilnīgi apmierina tie case varianti. Ļoti uzskatāmi un saprotami. Arī skolnieki sapratīs. Ar masīviem būtu grūtāk. Link to comment Share on other sites More sharing options...
Vilx- Marts 1, 2009 Share Marts 1, 2009 A starp citu - tā ieskaite obligāti jāliek VBA? Viņa tur no IZM nāk vai kā tā? Ja Tu pats taisi ieskaiti, kāpēc gan ne Pascal? Link to comment Share on other sites More sharing options...
Konko Marts 1, 2009 Author Share Marts 1, 2009 (labots) Man iešāvās prātā kur ir problēma ar Vilx kodu. Var gadīties ka VBA zem precīzi nenodefinēta varianta Else sāk ņemt par pilnu ne tikai čekboksus bet arī visu pārējo Userformas informāciju. Gan Labelus gan Textlauciņus u.t.t. Un tad arī uzkaras. Tikko atradu informāciju par VBA - "ja vien tas ir iespējams ir jāizvairās no If..Then..Else lietošanas". Acīmredzot VBA ar tiem tiešām ir problēmas. Ar Pascal mēs ņēmāmies gandrīz pusotru gadu. Tad nāca Web (Html un Css, nedaudz JavaScript) un pēdējā viela Makrokomandas un VBA. Esam divi skolotāji (klase dalās uz pusēm) un vienojāmies tieši par VBA. Ieskaites darba tematika un programmēšanas valoda ir pašu skolotāju ziņā. Labots Marts 1, 2009 - Konko Link to comment Share on other sites More sharing options...
Vilx- Marts 1, 2009 Share Marts 1, 2009 "ja vien tas ir iespējams ir jāizvairās no If..Then..Else lietošanas". Man... trūkst vārdu... Sorry, bet IF-THEN-ELSE ir programmēšanas stūrakmens. Bez tā nav iespējams dzīvot. Tas ir visa cita pamatā. Un cilvēku, kurš spēj uzrakstīt augstāk minēto teikumu, vajadzētu bez vārda runas atlaist no darba un neļaut programmēšanai ne tuvoties, kur nu vēl mācīt citiem. Es varu iedomāties, ka VBA ir untumaina valoda. Patiesībā IMHO to nevajadzētu mācīt skolā. Bet nu tas ir cits stāsts. Taču pamata konstrukcijas kā IF-THEN-ELSE; FOR; WHILE; funkcijas; mainīgie; masīvi - bez tām iztikt nevar nevienā normālā programmā. Link to comment Share on other sites More sharing options...
nullchar Marts 1, 2009 Share Marts 1, 2009 If-Then-Else iekš VBA strādā lieliski. Tev kodā noteikti ir kāda sintakses kļūda, varbūt ieliec to koda gabalu, kur tev Else nestrādā? Link to comment Share on other sites More sharing options...
bubu Marts 1, 2009 Share Marts 1, 2009 (labots) Taču pamata konstrukcijas kā IF-THEN-ELSE; FOR; WHILE; funkcijas; mainīgie; masīvi - bez tām iztikt nevar nevienā normālā programmā. Par šo gan var pastrīdēties - funkcionālās programmēšanas valodas iztiek ļoti labi bez if-then-else un for/while konstrukcijām. Protams, imperatīvajās/OOP valodās (kā VBA) bez tiem neiztikt un tas ir ļoti normāli tur lietot if-then-else/for/... konstrukciajs. Labots Marts 1, 2009 - bubu Link to comment Share on other sites More sharing options...
Konko Marts 1, 2009 Author Share Marts 1, 2009 (labots) If CheckBox2 And CheckBox4 And Not CheckBox1 And Not CheckBox3 Then TextBox2.Value = 2 ElseIf (CheckBox2 Xor CheckBox4) And (Not CheckBox1 Or Not CheckBox3) Then TextBox2.Value = 1 Else: TextBox2.Value = 0 End If Tas bija pirmais kods. Tagd otrs: If CheckBox2.Value = True And CheckBox4.Value = True _ And Not CheckBox1.Value = True And Not CheckBox3.Value = True Then TextBox2.Value = 2 ElseIf (CheckBox2.Value = True Xor CheckBox4.Value = True) _ And (Not CheckBox1.Value = True Or Not CheckBox3.Value = True) Then TextBox2.Value = 1 Else: TextBox2.Value = 0 End If Neiet neviens, kļūdu it kā neredzu. Bet ieteikums izvairīties no Ifiem ir no tās Andreja Garnajeva grāmatas - "VBA v podlennike" - 781.lpp Garnajevs - Fizikas - matemātikas doktors, SanktPēterburgas valsts universtitātes profesors. Laikam jau muļķis nav! Labots Marts 1, 2009 - Konko Link to comment Share on other sites More sharing options...
Vilx- Marts 1, 2009 Share Marts 1, 2009 Ja viņš iesaka neizmantot IF-THEN-ELSE, tad es tik drošs vis nebūtu. :roll: Jebkurā gadījumā - iesaku tomēr rakstīt ieskaiti Pascal. Šī valoda būs daudz piemērotāka visos variantos. Link to comment Share on other sites More sharing options...
Konko Marts 1, 2009 Author Share Marts 1, 2009 Es jau visus kodus šobrīd esmu atradis. Arī rezultējošajai formai kur saskaita kopējos punktus un izliek atzīmi. Tā kā lai pamokās vien ar VBA. Link to comment Share on other sites More sharing options...
Guest ADEX Marts 1, 2009 Share Marts 1, 2009 Atceros - kad tikko sāku spēlēties ar pascal, man arī bija problēmas ar IF-THEN-ELSE. Problēmas beidzās tad, kad sapratu, ka aiz tā operatora, kurš ir pirms ELSE, nedrīkst likt semikolu. Gan jau topika autoram arī kaut kāda līdzīga sintakses kļūda. Link to comment Share on other sites More sharing options...
Vilx- Marts 1, 2009 Share Marts 1, 2009 Nu... es savu esmu pateicis... Link to comment Share on other sites More sharing options...
Recommended Posts
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 kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!