AndrisBB Aprīlis 28, 2016 Share Aprīlis 28, 2016 Vienīgais veids, kā apgūt manipulācijas ar atmiņu - stop thinking, start doing (ļoti populāra frāze, starp citu; un tas reāli strādā). Vēl populārāks ir KISS (Keep It Stupid Simple) princips. Uztaisi savu Zoli izmantojot to ko zini, aizmirstot par visādām bitu manipulācijām utt, toties galarezultātā iegūsti kautkādu darbojošos artifaktu. Kad taisīsi nākamo projektu ar jau pieredzi no iepriekšējā, tad tavs KISS jau būs līmeni augstāks. Pēc katra produkta tādā veidā progresējot. Kautko optimizēt var gadījumos, kad tas ir nepieciešams vai vispār ir optimizēšanas vērts. 1 Link to comment Share on other sites More sharing options...
binary Aprīlis 28, 2016 Share Aprīlis 28, 2016 Nu lai nokļūtu līdz KISS, vispirms ir jātiek galā ar BDSD (jeb "beidz domāt, sāc darīt") p.s. atzīšos - man pašam ar "beidz domāt, sāc darīt" reizēm ir problēmas Un tad nākas atcerēties teicienu "nekavējies - iedvesma nav siļķe, kuru var iesālīt uz daudziem gadiem" Link to comment Share on other sites More sharing options...
Jurkins Aprīlis 28, 2016 Share Aprīlis 28, 2016 Nu jā, bet pretī var likt argumentu DNPP... (Darbs Nav P...s, Pastāvēs) Link to comment Share on other sites More sharing options...
Raimonds1 Aprīlis 28, 2016 Author Share Aprīlis 28, 2016 Gads - tas ir pietiekoši ilgs laika posms, lai iemācītos uztaisīt pat vienkāršas spēlītes Tas ir tad, ja mērķis ir uztaisīt kaut ko, kas apmēram darbojas un nav intereses par tiešām dziļu visa tā saprašanu reizē ar labu, plašu, maksimāli saprotamu skaidrojumu. Drīz būs gads apkārt kopš tēmas aizsākšanas. Šo var apskatīt arī šādi - šajā laikā nekas jauns pointeru skaidrojumos latviski pieejamā informāciajs laukā klāt nav nācis, izņemot manu iepriekš vakar iievietoto koda paraugu, kas paredz visādas sākuma grūtības. Tā vietā, lai reāli sāktu kaut ko darīt, lai nokļūtu līdz tām manipulācijām ar atmiņu, tu te kaut ko filozofē un stāsti visiem, cik viss ir slikti un nepareizi, jo tev, redz, nav saprotams, kā tas vai šis ir uzrakstīts. Tu pat nevari iedomāties, cik lieli biznesi balstās uz to, ka kaut kas sarežģīti skaidrots tiek izskaidrots vienkārši. Un ne aju tikai cilvēkiem ar īpašām vajadzibām, cilvēki ir dažādi, viens domā skaititļos, cits var ideāli savilkt loģisku algoritmu . Pretējā gadījumā mēs būtu palikuši tur pat, kur šobrīd esi tu. Es esmu drusku citur, kur sākumā bijāt Jūs un eju pa citu ceļu. Un primārajam ir jābūt mērķim, nevis rīkam - vienalga, vai mērķis ir uztaisīt zoli, kalkulatoru, nokopēt failu ar kontrolētu ātrumu vai aizpildīt n baitu lielu atmiņas apgabalu ar skaitļiem no i līdz j. Dažādu valodas rīku veidošana arī var būt kaut kas vērtīgs. Kas tad veido tos valodas rīkus, kur tagad jāraksta 10 rindiņas, bet pa vecam 200? Kamēr tikai skatās, kā citi to dara (youtubē vai tutoriāļos), tikmēr par iemācīšanos var nemaz nesapņot. Ir labi, ja iepriekš kāds ir pateicis vai pats saklausījies, ko tad, ja nu reāli gadās tā vai šitā un tas reāli notiek un to var izmantot šeit un tagad. Mes te vienā tēmā diskutējām par auto automātisko vadību un tur bija video ar tiem sīkajiem un ragavām no stūra, kādam braucot pa pilsētu ziemā varbūt šis ataust atmiņā un kāja automātiski atlaiž gāzi un nomet ātrumu par 20km/h. Nevajag novērtēt arī tādu informāciju par zemu. Uztaisi savu Zoli izmantojot to ko zini, aizmirstot par visādām bitu manipulācijām utt, toties galarezultātā iegūsti kautkādu darbojošos artifaktu. Kad taisīsi nākamo projektu ar jau pieredzi no iepriekšējā, tad tavs KISS jau būs līmeni augstāks. Pēc katra produkta tādā veidā progresējot. Kaut ko optimizēt var gadījumos, kad tas ir nepieciešams vai vispār ir optimizēšanas vērts. Tur ir zināma jēga, kaut kādu kodu es rakstu, bet tas pagaidām neizskatās smuki. Link to comment Share on other sites More sharing options...
binary Aprīlis 28, 2016 Share Aprīlis 28, 2016 (labots) ieleja, pat ja galveno baudu sniedz ceļš uz mērķi - mērķim tāpat ir jābūt, pretējā gadījumā nav arī ceļa uz mērķa sasniegšanu. Tas ir tad, ja mērķis ir uztaisīt kaut ko, kas apmēram darbojas un nav intereses par tiešām dziļu visa tā saprašanu reizē ar labu, plašu, maksimāli saprotamu skaidrojumu.Nē, gada laika var arī no A līdz Z saprast, kas, kā un kāpēc tajā gara darbā strādā. Tu pat nevari iedomāties, cik lieli biznesi balstās uz to, ka kaut kas sarežģīti skaidrots tiek izskaidrots vienkārši. Un ne aju tikai cilvēkiem ar īpašām vajadzibām, cilvēki ir dažādi, viens domā skaititļos, cits var ideāli savilkt loģisku algoritmu .Es vispār nevaru iedomāties, cik lieli ir biznesi. Bet varu iedomāties, ka Latvija ir pārāk maza, lai varētu attīstīt lielu godīgu un ētisku biznesu, kura mērķauditorija būtu latviski runājošie. Dažādu valodas rīku veidošana arī var būt kaut kas vērtīgs. Kas tad veido tos valodas rīkus, kur tagad jāraksta 10 rindiņas, bet pa vecam 200?Šādus valodas rīkus veido cilvēki, kuri gana daudz ir atstrādājuši "pa vecam", darba gaitā veidojot izpratni par to, kā bija, kā ir un kā varētu būt. Labots Aprīlis 28, 2016 - binary Link to comment Share on other sites More sharing options...
Raimonds1 Aprīlis 28, 2016 Author Share Aprīlis 28, 2016 Nu jā, tā uzbrukuma fronte uz mērķi, vai labāk, vairākiem mērķiem ir pārāk plaša, būs jāsašaurina. Un vēl - nu nav domāšanai vienalga, KĀDĀ VEIDĀ to metodi mācās - vai vispirms bez dziļākas jēgšanas iekal standarta paņēmienus un sintaksi, nu to visa kopā likšanu un algoritmisko domāšanu un datu organizaciju - ai, to kaut kad vēlāk, vai primāri uzstāda problēmas izpratni, tad paraugu un tad - nu jā, sintakse mums te ir tāda, tas jāzin jau būs. Link to comment Share on other sites More sharing options...
Populārs ieraksts Jurkins Aprīlis 28, 2016 Populārs ieraksts Share Aprīlis 28, 2016 Zini, Raimi, kaut kādā otrajā klasē (es gan krievu laikos gāju skolā) lasījām latviešu tautas pasaku par saimniekdēlu, kurš mācījās (mēģināja) kalēja amatu guļot smēdē novietotā gultā un skatoties. Gadsimti iet, bet tās lietas nemainās. 7 Link to comment Share on other sites More sharing options...
usver Aprīlis 28, 2016 Share Aprīlis 28, 2016 Es ticu pareizai pieejai programmēšanai.Ja reiz C un C++ stiprā puse ir atmiņas menedžments, tad ar to arī jāsāk. asm vispār visu menedžē kā vien grib, kamēr C/C++ nervozi pīpē maliņā. ar asm var pat cpu reģistrus menedžēt. pie tam visādu bibliotēku-šmibliotēku mazāk, nekādu tur idiotiem paredzētu printf(), izpildāmie faili tik minimāli, cik vien var būt, pilna kontrole pār izpildāmo kodu, nekādu jūzerfriendly mājsaimniecēm paredzētu abstrakciju kā if() else(), switch(), un ja pastāsti, ka programmē asmā, tad ciemā pačots, visas meitenes tavējās un C programmētāji tev uzreiz klanās un alu pienes.. 1 Link to comment Share on other sites More sharing options...
Inspektors Caps Aprīlis 28, 2016 Share Aprīlis 28, 2016 (labots) Inspektors Caps, ko tu domā par Rust valodu? Ar Rust neko darījis neesmu. Cik ir skatīta ziņkāres pēc, tad liekas, ka varētu būt jēdzīga. Mani gan mulsina viņu "no null pointers". Kas ir vietā un kā tad sanāk ar C, C++, ASM un galu galā hardware savietojamību? Bet jebkurā gadījumā, ja arī valoda izrādīsies veiksmīga, līdz plašam pielietojumam low-level paies ilgi gadi, jo C/C++ šajā ziņā piemīt īpašība "good enough". Godīgi sakot, arī man, lai vai gribētos C dažas lietas kā tur nav, tas nekādi nav vērā ņemams šķērslis radīt jebko, ko vajag vai vēlos. Nepareizi, Javā viss ir pass-by-reference, neskaitot primitīvus. OK, tad viens mīnuss mazāk. Varu gan uzdot nākošo jautājumu - kā tur galu galā ar struktūrām? Es nedomāju nezināma izmēra un izvietojuma menedžētus objektus, bet reālas precīzas datu struktūras, ko var izmantot par, piemēram, IPv4 paketes header. Nespēju piekļūt dzelžiem un kompilēt native kodu tas gan nekādi neatceļ, tā kā šīs valodas funkcionāli nekādi nevar būt vienādas... @@usver, ļoti labs piemērs. Bez sarkasma, tiešām! Davai, objektīvi apkopojam to, kas mums pa abiem ir sanācis. Visi mūsu varianti ir bitu bīdīšanas cikla bāzēti un Tavā ASM piemērā redzam, ka tā cikla apkalpošana prasa 4 instrukcijas. Atliek paanalizēt cikla iterācijas "saturu" un pieskaitīt šo konstanti. Tavs optimizētais ASM. 2 vienkāršas instrukcijas + cikla 4 = 6. Mans normālais C. 4 vienkāršas instrukcijas + cikla 4 = 8. Tavs "čerez ž" deoptimizētais C. Tu tur izmanto pow(), kas ir izvirzījuma rinda jeb cikls ar katrā iterācijā vismaz saskaitīšanu, divām reizināšanām dalīšanu - 4 instrukcijas. Teiksim, ciklā ir desmit iterācijas - 40. Tā kā tās ir float (patiesībā pat double) instrukcijas un tur ir arī dalīšana, tad tas jau būs vismaz 10reiz lēnāk - 400 analoģisku vienkāršo instrukciju laiks. Tad vēl pow() Tu esi pamanījies izsaukt divreiz un ir vēl citi sīkumi, kas kopā, rupji rēķinot, būs jau ~1000. Paņemsim manu variantu par 100%. Redzam, ka Tavs ASM ir par 25% ātrāks. Super, man ar to problēmu nav! Daudz kur šāds uzlabojums nebūs būtisks, bet priekš kritiskām vietām tas ir saprātīgi ieguldīts vairāk darba, kas ir devis būtisku uzlabojumu. Un tagad paskatāmies uz Tavu "čerez ž" C. Tas ir tikai "nieka" 125 reizes jeb 12500% lēnāks! Vienkārši WTF? Bet tas vēl nav viss un te mēs nonākam pie galvenā - tas kods priekš sava uzdevuma ir arī nevajadzīgi sarežģīts un sabakstīts no stulbām operācijām. T.i. tas ir algoritmiski idiotisks. Pretstatā mans piemērs ir supervienkāršs. Tajā ir vismazāk koda teksta, vismazāk jādomā un tas ir visātrāk uzrakstāmais. Ja uzdevums ir apmainīt vietām bitus, tad pirmais, kas ienāk prātā normālam programmētājam, ir.. pārbīdīt bitus! Galvenā runa nav par tā piemēra dumjo kodu, bet gan par prātā notiekošajiem procesiem, kas tādu kodu rada! Ir jābūt pamatīgi sačakarētai domāšanai, lai ienāktu prātā tāds kāpināšanu murgs, kā Tu uzrakstīji. Tādēļ šis piemērs tikai lieliski apstiprina manu pausto tēzi, ka Java un vispār high-level ilgtermiņā atrofē domāšanu. Dzelža definīciju studijā. Datortehnikas perifērijas izpratnē dzelzis ir elektroniska ierīce ar elektroniskiem reģistriem, kuros procesors var ierakstīt vērtības. Attiecīgi dzelžu programmēšana ir šo reģistru vērtību mainīšana. Vēl par dzelžu programmēšanu var uzskatīt "runāšanu" ar draiveriem vai kādu zema līmeņa bibliotēku, kas implementē tieši šo reģistru funkcijas. Savukārt, augsta līmeņa bibliotēkas jau implementē pavisam citādākas funkcijas. Tas, ka vairāk standarta veikalā nopērkamiem produktiem neesi redzējis, nenozīmē, kad tagad esi baigais eksperts. Vēlreiz uzveru, ka cilvēks, kurš nekad programmēšanas kantorī pat degunu iebāzis, pat teorētiski nevar saukt citus par debiliem. Nu nav tu programmētājs, bet fanātisks tips un apsēsts ar cilvēku apkakāšanu. Acīmredzot atejā par ilgu sēdējis. Teica čeku printeru un kodu skeneru pa COM portu pavēlnieks... Manā pasaulē programmējamie objekti ir no 1 Mhz 8-bit Atmel līdz Intel Xeon, kamēr Tavā līdz tam pašam, bet sākas tikai no 1 GHz 32-bit Atom. Bet vispār skatos, ka esi izpratis sevi. Viens jautājums - vai tiesības apmelot un kakāt uz galvas tiem, kuri perfekto lielvadoni atļaujas arī kritizēt, dod būšana par administratoru? Labots Aprīlis 28, 2016 - Inspektors Caps Link to comment Share on other sites More sharing options...
Raimonds1 Aprīlis 28, 2016 Author Share Aprīlis 28, 2016 Varbūt tas ir naivi, bet varbūt kādam pēc ši topika uzrodas interese laiku pa laikam uzrakstit kādu NEEFEKTĪVU, PAT DUBLĒTU kodu, kas toties būtu noderīgs iesācējiem. Varbūt kādam rodas interese uzlabot tieši savas tēmas skaidrošanas prasmes. asm vispār visu menedžē kā vien grib, kamēr C/C++ nervozi pīpē maliņā. ar asm var pat cpu reģistrus menedžēt. pie tam visādu bibliotēku-šmibliotēku mazāk, nekādu tur idiotiem paredzētu printf(), izpildāmie faili tik minimāli, cik vien var būt, pilna kontrole pār izpildāmo kodu, nekādu jūzerfriendly mājsaimniecēm paredzētu abstrakciju kā if() else(), switch(), Par to tiek domāts. Ar vādu neefektīvs kods tiek saprasts kods, kas strādā, bet nav pārāk īss vai garš vai tā nooptimizēts, ka nespeciālists tur ilgi var meklet to briljanto ideju un skaistumu. Derīgs būtu kods, kas SECĪGI ATAINO programmētāja domašanu, izvēles, kāpēc tā un ne šitā un to visu attēlo koda rindās un to skaidrojumos un turpat vienā pierakstā blakus. Link to comment Share on other sites More sharing options...
Inspektors Caps Aprīlis 28, 2016 Share Aprīlis 28, 2016 (labots) Redzi, laiki ir citi un dzelži ir citi. Tie laiki, kad ZX (48 Kb, 2,5 MHz) bija sapņu virsotne, ir pagājuši. Pat 8086 (640 Kb, 8MHz) laiki, par kuru Bils izteicās, ka vairāk atmiņas nebūs vajadzīgs nekad, arī ir prom. Nekas nekur nav prom, mainās tikai forma, jo pielietojums vienmēr ir visam jaudas spektram. https://en.wikipedia.org/wiki/Atmel_AVR_ATtiny_comparison_chart https://en.wikipedia.org/wiki/STM32#STM32_F0 Tu domā, ka modernā OS tie skaitļi ir reāli? Lai arī OSā tās nav reālas adreses dzelža līmenī, tās var uzskatīt par it kā reālām konkrētas user space programmas kontekstā. Jā jā, sinhronizācija ir piņķerīga. Par paralēli izpildāmu MapReduce esi dzirdējis ? Ja ir gana daudz ievades datu, tad tas viss atmaksājas. Savukārt Tu par context switch un cache esi dzirdējis? Un paskaties (tabā "Features") cik taktis tas aizņem pat mazam RTOS, plus cik vispār aizņem OS lietas tabos "Performance" un "Memory Requirements". https://www.arm.com/products/tools/software-tools/mdk-arm/middleware-libraries/rtx-real-time-operating-system.php no reālas programmēšanas viņam ir patālu Es pa gabalu varu pateikt, kurš var fiziski to darīt Vienīgais, ko Tu vari, ir pa gabalu dēļ admina tiesībām citiem taisīt uz galvas tēmā, kurā pats nedarbojies (low-level) un ne s*da nejēdz. Reālajā dzīvē jau sen būtu atrāvis pa tablo. Labots Aprīlis 28, 2016 - Inspektors Caps Link to comment Share on other sites More sharing options...
Raimonds1 Aprīlis 28, 2016 Author Share Aprīlis 28, 2016 Paņemsim manu variantu par 100%. Redzam, ka Tavs ASM ir par 25% ātrāks. Super, man ar to problēmu nav! Daudz kur šāds uzlabojums nebūs būtisks, bet priekš kritiskām vietām tas ir saprātīgi ieguldīts vairāk darba, kas ir devis būtisku uzlabojumu. Un tagad paskatāmies uz Tavu "čerez ž" C. Tas ir tikai "nieka" 125 reizes jeb 12500% lēnāks! Vienkārši WTF? Bet tas vēl nav viss un te mēs nonākam pie galvenā - tas kods priekš sava uzdevuma ir arī nevajadzīgi sarežģīts un sabakstīts no stulbām operācijām. T.i. tas ir algoritmiski idiotisks. Pretstatā mans piemērs ir supervienkāršs. Tajā ir vismazāk koda teksta, vismazāk jādomā un tas ir visātrāk uzrakstāmais. Ja uzdevums ir apmainīt vietām bitus, tad pirmais, kas ienāk prātā normālam programmētājam, ir.. pārbīdīt bitus! Galvenā runa nav par tā piemēra dumjo kodu, bet gan par prātā notiekošajiem procesiem, kas tādu kodu rada! Ir jābūt pamatīgi sačakarētai domāšanai, lai ienāktu prātā tāds kāpināšanu murgs, kā Tu uzrakstīji. Tādēļ šis piemērs tikai lieliski apstiprina manu pausto tēzi, ka Java un vispār high-level ilgtermiņā atrofē domāšanu Te varētu palidzēt atcerēšanās, kad tikai pieņemts lēmums vispār pāriet uz C/C++ vai vēl austāka līmeņa valodām vai kādas bija problēmas ASM, kuras tā gribējas risinat ātrāk. Un tad jau arī notika tas domāšanas veida pagrieziens uz to sarežģījumus radošo pusi. Nekā perosniska, tikai pedagoģiska interese, ja izpratīsi, pašam būs labums. nekādu jūzerfriendly mājsaimniecēm paredzētu abstrakciju kā if() else(), switch() Aizdomājos par darbu dalīšanu, ko varētu iemācīt mājsaimniecēm, lai tās atvieglo darbu pamata programmētājam. Link to comment Share on other sites More sharing options...
usver Aprīlis 28, 2016 Share Aprīlis 28, 2016 (labots) datu struktūras, ko var izmantot par, piemēram, IPv4 paketes header. primitīvie datu tipi + palīgklases to ērtākai sapakošanai, piemēram, ByteBuffer [~dinamisks char*]. https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html int (cerams, nav jāskaidro, ar ko tas atšķiras no Integer), byte (cerams, nejaukts ar Byte klasi), short, utml. https://android.googlesource.com/platform/frameworks/base/+/56a2301/core/java/android/net/dhcp/DhcpPacket.java#245 Labots Aprīlis 28, 2016 - usver Link to comment Share on other sites More sharing options...
MarisO Aprīlis 28, 2016 Share Aprīlis 28, 2016 reālas precīzas datu struktūras javā nekā tāda nav, tur pat unsigned int nav. Erlangā gan ir "bitstring" Link to comment Share on other sites More sharing options...
HIGH-Zen Aprīlis 28, 2016 Share Aprīlis 28, 2016 Raimim vajadzētu mest pie malas pointerus un sākt beidzot nodarboties ar kaut ko nopietnāku. Tāds ražīgs treša ģenerators varētu tikt pielietots gadījumos, kur lieto Lorem Ipsum vai vēl labāk e-pasta sarakstēs ar mērķi iznest oponentam smadzenes. 1 Link to comment Share on other sites More sharing options...
nevertell Aprīlis 28, 2016 Share Aprīlis 28, 2016 Savukārt Tu par context switch un cache esi dzirdējis? Un paskaties (tabā "Features") cik taktis tas aizņem pat mazam RTOS, plus cik vispār aizņem OS lietas tabos "Performance" un "Memory Requirements". Paklau, tukšpirdi, zini, kas ir futeksi ? Jebšu, jūzerspeisā implementēti muteksi ? Ja veicam darbības ar Un jā, protams, ja mēs lietojam vairāk thread'us, kā mums ir kodoli, nevis izdalam darbu priekš katra kodola, tad thread'ings nav vajadzīgs. Bet kāpēc lai kāds darītu ko tamlīdzīgu ? Protams, ka multi-thread'ots kods, ko rakstījis bezpoņas Vaņa būs lēnāks, kā pirmkursnieka vienkodolnieks. Tikai tāpēc, ka tev nav izpratnes par to, kā lietot vairākus kodolus un paralelizēt kodu, tas nenozīmē, ka to izdarīt nevar. Un protams nav vērts paralelizēt ciklu, ja cikls tiek izpildīts ~100 reizes un ciklā izpilda ~10 instrukcijas. Link to comment Share on other sites More sharing options...
Raimonds1 Aprīlis 29, 2016 Author Share Aprīlis 29, 2016 (labots) #include<stdio.h> #include<iostream> using namespace std; main() //ievadiisim skaitlus pasi, jaaieklauj paipildus biblioteka { int a20,a22,a24; cout<<"Ievadiet jebkurus 3 skaitlus:\n"; cout<<"Peec katra skaitla ievades nospiediet ENTER:\n"; //EDIT piemirsu 2 strīpas cin>>a20; cin>>a22; cin>>a24; printf ("adress of a20 is %u \n", &a20) ; printf ("adress of a22 is %u \n", &a22) ; printf ("adress of a24 is %u \n", &a24) ; int*p20 = &a20; int*p22 = &a22; int*p24 = &a24; printf (" p20 veertiiba ir %u", p20 ) ; printf (" a20 veertiiba ir %d",*p20 ) ; printf (" p22 veertiiba ir %u", p22 ) ; printf (" a22 veertiiba ir %d",*p22 ) ; printf (" p24 veertiiba ir %u", p24 ) ; printf (" a24 veertiiba ir %d",*p24 ) ; printf (" a20, a22 un a24 summa ir %d", a20 + a22 + a24 ) ; printf (" a20, a22 un a24 summa, atrodot tos atminas adresee ir %d",*p20 + *p22 + *p24) ; Pēc programmas palaišanas, pieprasa ievadīt 3 skaitļus, pēc katra spiest enter, izvada summu un pirms tam skaitļu adreses. Pedagoģiska dilemma, kādā secībā labāk mācīties/mācīt - vai vispirms parādīt(pašam iemācīties, kā), ka iespējama skaitļu ievade no klaviatūras un tam vēl piepīt kaut kādus if else nosacījumus, vai arī turpināt ar atmiņas tēmu un ievadīt un noteikt atmiņas vietas citiem datiem. array, string, malloc virziens vai arī standarta darbības ar skaitļiem. Varbūt if else kombinēt ar pointeriem. Varbūt vajag tagad ciklus? Varbūt to visu teorētiski pārspriest kā būtisku izvēles punktu, kas var noteikt tālākos paradumus?! #include<stdio.h> #include<iostream> main() //ievadiisim array tipa datus { int iar1[12] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; int iar2[12] = {23,24,25,26,27,28,29,30,31,32,33,34};// EDIT izlabots 1 par 2 printf ("iar1 adrese ir %u \n", $iar1); printf ("iar2 adrese ir %u \n", $iar2); if (iar1==iar2) printf ("taas ir vienaadas");//taas ir vienkarshi vienaadas else // taas salīdzinot un elsee -taas nav vienaadas, vienkaarshi saliidzinot printf ("taas nav vienaadas ");//paeksperimentee ar sho attaalumu no vienaadas if (&iar1==&iar2) printf ("taas ir vienaadas, samekleejot dotajaas adresees");//izmantojot pointeri else // un atrodot taas , kur taas paglabaatas printf ("taas nav vienaadas, samekleejot dotajaas adresees");//tas pats - izmantojot pointeri.... } // buutibaa tas ir rakstiits koda saprashanai, viena un taa pati darbiiba tiek veiikta divos veidos PIRMS MAIN VAJAG int. Tātad int main Labots Maijs 17, 2016 - Raimonds1 Link to comment Share on other sites More sharing options...
usver Aprīlis 29, 2016 Share Aprīlis 29, 2016 (labots) int iar1[12] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};int iar1[12] = {23,24,25,26,27,28,29,30,31,32,33,34};Tu mēģini to visu kādreiz arī nokompilēt, vai arī tikai programmē vien - pisaķeļ, a ņe čitaķeļ? cout<<"Ievadiet jebkurus 3 skaitlus:\n"; cout<<"Peec katra skaitla ievades nospiediet ENTER cin>>a20; ko šitais izvada? tev vispār kompilators kāds ir uzinstalēts?printf ("iar1 adrese ir %u \n", $iar1);tu ar php5apache2.dll savu kodu izpildi? Un stdio ir C bibliotēka, kamēr iostream ir C++ piederīga. nevajag izmantot abus kopā, ja vien nav īpaša vajadzība to darīt. cout pats sapratīs, kā mainīgais jāparāda. C++ stila datu izvadīšana: cout <<"kaut kāds teksts " << dajebkads_mainigais << "tekstu turpinām " << vel_viens_mainigais << endl; // endl ir "\n" simbola aizvietotājs jeb "endline" Labots Aprīlis 29, 2016 - usver 1 Link to comment Share on other sites More sharing options...
Raimonds1 Aprīlis 29, 2016 Author Share Aprīlis 29, 2016 (labots) Protams. DevC++ Viss notiek. EDIT - biju piemirsis 2 strīpas pārrakstot Pirmajā es tikai nosaku, vai abi array ir vienādi - salīdzinot pa tiešo un salīdzinot, izmantojot pointerus. Iznākums adress of iar1 is 342949292 adress of iar2 is 342947589 taas nav vienaadas taas nav vienaadas EDIT atrodot taas atminas adresee Otrajā to arī izvada - ievadiet jebkurus 3 skaitlus Peec katra skaitla ievades nospiediet ENTER Ievadam 3 skaitlus, viņš tos arī saskaita. Pirms tam izvada arī šo skaitļu adreses. main() //ievadiisim skaitlus pasi, jaaieklauj papildus biblioteka- arri 2 striipas { // un rindas nobeigumu kolu, striipu, n un peedinas int a20,a22,a24; cout<<"Ievadiet jebkurus 3 skaitlus:\n"; cout<<"Peec katra skaitla ievades nospiediet ENTER:\n"; //EDIT piemirsu 2 strīpas Es tur skatījos no dažādiem resursiem un liku kopā, tāpēc tā sanāca. Un stdio ir C bibliotēka, kamēr iostream ir C++ piederīga. nevajag izmantot abus kopā, ja vien nav īpaša vajadzība to darīt. cout pats sapratīs, kā mainīgais jāparāda. C++ stila datu izvadīšana: Labots Aprīlis 29, 2016 - Raimonds1 Link to comment Share on other sites More sharing options...
Jurkins Aprīlis 29, 2016 Share Aprīlis 29, 2016 Eu, Raimi, paskaidro man kā neprogrammistam, kādas pedagoģijas pēc jāpārbauda, vai diviem tikko nodefinētiem mainīgajiem ir vienādas adreses? Nodefinē trīs, četrus, piecus u.t.t. un pārbaudi divas reizes drošības pēc. Pirmo reizi uzreiz, otro pēc kāda laiciņa. Mainīgie tak nav čigānu tabors, kas vienā čumā dzīvo. Link to comment Share on other sites More sharing options...
AndrisBB Aprīlis 29, 2016 Share Aprīlis 29, 2016 (labots) A kapēc šie ir vienādi? if (*(iar1 + 21)) == 9[iar2]) { printf ("taas ir vienaadas, samekleejot dotajaas adresees\n"); } else { printf ("taas nav vienaadas, samekleejot dotajaas adresees\n"); } Labots Aprīlis 29, 2016 - AndrisBB Link to comment Share on other sites More sharing options...
MarisO Aprīlis 29, 2016 Share Aprīlis 29, 2016 kā tur var būt 2 variābļi ar vienādiem vārdiem Link to comment Share on other sites More sharing options...
Raimonds1 Aprīlis 29, 2016 Author Share Aprīlis 29, 2016 Tā ir kļūda, kuru var ielaist arī speciali, lai mazākzinoši kā Jūs to pamana. Es pārrakstīju ar roku kodu , nevis kopēju nokompilētu kodu. Tadas kļūdas man pagaidāmšad tad gadās. Jā tur jābūt iar1 un iar2. Un stdio ir C bibliotēka, kamēr iostream ir C++ piederīga. nevajag izmantot abus kopā, ja vien nav īpaša vajadzība to darīt. cout pats sapratīs, kā mainīgais jāparāda. C++ stila datu izvadīšana: Usver, negribi savu skaidrojošo koda gabalu, kas seko pēc šī teikuma, kaut kā sadalīt, citādi tas čakarē visu lapas performanci? Ja pieņem, ka pirmās 2 nodarbības ir notikusas, trešajā esmu iecerejis pastāvīgu darbu ar literatūru internetā, personīgi atrodot un piekabinot jau gatavajiem kodiem kaut kādu jaunu funkcionalitāti - kaut vai eksperimentus ar parieziem un nepareiziem identifikatoriem, datu tipiem un to ievadīšanu tajos pierakstos ar skaitļa 10 pakāpēm, kaut kādu konstanšu deklarēšanu un to paglabāšanu zināmās, rezervētās adresēs un izsaukšanu ar pointeri pēc vajadzības. Var paņemties ar char (simbola literālis) kas apzīmē vienu rakstuzīmi burtu, ciparu vai simbolu tā dāžādajas izpausmēs, kamēr kļūst skaidrs, kad tas char ir skaitlis, kad burts. Var arī veikt kaut kādus aritmētiskus aprēķinus, obligāti izmantojot pointerus un atrodot piemerus, kad tas tiešām ir vajadzīgs. Un pāri visam - tas viss atmiņas veidošanas, glabāšanas un izsaukšanas fonā. Tur vēl var kādu if else vai ko citu piekabināt. Jebkurš var nokopēt tos koda gabalus, satasīt katram 20 kopijas un tad mainīt visu ko un saglabāt starprezultātus, lai ir ko pēc tam apskatīt un atcerēties, kā tika pie tā vai citā jēdziena sapratnes. Link to comment Share on other sites More sharing options...
Jurkins Aprīlis 29, 2016 Share Aprīlis 29, 2016 (labots) Indigo bērns, ja Tu gribi vispirms apgūt visas iespējamās kļūdas, tad Tu neko derīgu neuzprogrammēsi nekad. Vienkārši laika nepietiks, uz zārka vāka no iekšpuses turpināsi pointerus skribelēt Te ir arī atbilde uz Tavu jautājumu, kāpēc nav Tev saprotamu mācību līdzekļu. Da nafig nevienam nevajag tādus, kā Tu gribi. Tu esi vienīgais dīvainītis, kas tādā veidā mācās "programmēt". Man, piemēram, pirms kāda laika parādījās hobijs - Atmel kontrolieri. OK, man arī viss nepielec tik ātri kā reiz jaunībā . Bet, ja es ņemtos Tavā stilā, tad pirmo LEDu varētu sākt midžināt (ja davilktu ) kaut kur ap 2030-to gadu Ej labāk šodien ierauj kādu aliņu (vārda svētkos, ja tas ir Tavs īstais vārds) un par meitenēm padomā. Labots Aprīlis 29, 2016 - Jurkins Link to comment Share on other sites More sharing options...
Raimonds1 Aprīlis 29, 2016 Author Share Aprīlis 29, 2016 (labots) Kā jau teicu, mācību metodika arī var būt produkts. Paldies par apsveikumu, ja tas tā bija domāts. Programmēšanas pamatu zināšana, ja arī nekas vairāk nesanāks, arī var noderēt, lai saprastu, kādus citu veidotus izstrādājumus pasūtīt. Mana pieeja - sākt ar pointeriem pirmajā nodarbībā ar gatavu kopētu piemēru, pārējo pielasot pēc tam, lai ņemšanās ar sintakses problēmām un koda lasāmību neaizēno galveno uzdevumu. Nākamais koncepts dienaskārtībā array is a pointer http://www.cplusplus.com/forum/articles/10/ https://www.le.ac.uk/users/rjm1/cotter/page_59.htm Tad šis http://www.cprogrammingexpert.com/C/Tutorial/dynamic_memmory_allocation/malloc.aspx Labots Aprīlis 29, 2016 - Raimonds1 Link to comment Share on other sites More sharing options...
Mezavecis Aprīlis 29, 2016 Share Aprīlis 29, 2016 Kam tā metodika domāta? Pilnīgi un noteikti ne programmētājiem vai kas par tādiem taisās kļūt. mācību metodika arī var būt produkts Un paskaiti cik simtiem vai tūkstošiem cilvēku uzkakājis? Tad, kad būsi kaut ko praktisku uzprogrammējis un tiešām parādījis, ka tas dzīvē darbojas, tad parunāsim par to, kurš jēdz vairāk. Ej labāk uz tvnetu, kur tev padodas ar liberastiem bezjēdzīgi karot. Nu jau gūglē var ievadīt tavus citātus un uzreiz atrast, kur un kādos laikos esi atzīmējies. Vienīgais, ko Tu vari, ir pa gabalu dēļ admina tiesībām citiem taisīt uz galvas tēmā, kurā pats nedarbojies (low-level) un ne s*da nejēdz. Reālajā dzīvē jau sen būtu atrāvis pa tablo. Link to comment Share on other sites More sharing options...
Mezavecis Aprīlis 29, 2016 Share Aprīlis 29, 2016 Mūsdienās jau vairāk neko nevajag - izlasīt teoriju un būt kā Caps, kas visus var gudri kakāt uz galvas mācīt Link to comment Share on other sites More sharing options...
Jurkins Aprīlis 29, 2016 Share Aprīlis 29, 2016 Kāds ir galvenais uzdevums? Sačakarēt smadzenes? Link to comment Share on other sites More sharing options...
Raimonds1 Aprīlis 29, 2016 Author Share Aprīlis 29, 2016 (labots) Es domāju, ka arī nezinātājam tie piemēri ieskatu jēdzienos dod gan. Sākumā saprast, kurš ir pointeris, kura ir adrese un kura ir saglabātā vērtība uzskatāmā veidā ir gana labs pasākums. Tur viss ir redzams - te ir 3 vērtības, te trīs adreses un te trīs pointeri, kas uz to norāda. Redzēs, cik viegli ies ar malloc, realloc, pointers are arrays un vēl pāris jēdzieniem. programmēšanas pedagogs, kas nemāk programmēt un nav programmējis Ja es saprotu, es protu arī izskaidrot. Labots Aprīlis 29, 2016 - Raimonds1 Link to comment Share on other sites More sharing options...
Mezavecis Aprīlis 29, 2016 Share Aprīlis 29, 2016 Re kur ir 100x100px attēls. Lūk uztaisi šim te metodiku ar saviem pointeriem, lai iegūtu kvalitatīvu dither ar 1 krāsu. Drīkst izdomāt savu algoritmu un neizmantot nevienu no esošiem. Var pat nerakstīt kodu, bet uzrakstīt kā tu to darīsi Link to comment Share on other sites More sharing options...
nevertell Aprīlis 29, 2016 Share Aprīlis 29, 2016 Ieleja, bet iekš C taču int[] a ir tieši tas pats kas int* a; Link to comment Share on other sites More sharing options...
Inspektors Caps Aprīlis 29, 2016 Share Aprīlis 29, 2016 primitīvie datu tipi + palīgklases to ērtākai sapakošanai, piemēram, ByteBuffer [~dinamisks char*]. Nepūderē smadzenes, tas ir vienkārši dinamisks masīvs. Tas, ka Java tam ir "view buffers" skati uz to kā cita primitīvā tipa masīvu, put/get metodes un vēl kaut kas, ir bullšits, kas C principiāli nav vajadzīgs, jo jebkuru pointeri var cast'ot par pointeri uz jebko citu. javā nekā tāda nav, tur pat unsigned int nav. Ar šo pietiek, lai secinātu, ka konkrētā valoda principā nav lietojama dzelžiem, kur reģistros dažādu izmēru unsigned integeri ir uz katra soļa. Ar to arī ir skaidri pierādīts, ka valodas, piemēram C un Java, funkcionāli nav ar vienādām iespējām. Paklau, tukšpirdi, zini Kaut kāds ar nerviem slimo klubiņš šeit. Aizrādīju par context switch konrētās Raimonda "idejas" sakarā, bet šis jau aizdemagoģējās pavisam citur. Var tikai jautāt - vai Tu spēj sekot tēmai? Lasi: ja kāda info ir nevis 32 vai 64 bitu liela, bet īsāka, piemēram, 8 bitu, vai tiek kodoli var paņemt no tā garā 64 bitu blāķa katrs savu posmu un reizē apstrādāt Raimonds runāja par integeru dalīšanu baitos vai pat bitos, nevis par lielu datu blāķu apstrādi! Un to gan usver jau uzreiz nolika pie vietas, gan es Tev vēlāk atgādināju. Seko, par ko vispār ir runa! Un jā, protams, ja mēs lietojam vairāk thread'us, kā mums ir kodoli, nevis izdalam darbu priekš katra kodola, tad thread'ings nav vajadzīgs. Bet kāpēc lai kāds darītu ko tamlīdzīgu ? Uzreiz redzams, ka neesi izstrādājis nevienu labu programmu ar GUI, perifērijas, failu u.c. lietu paralēlu un sinhronizētu izmantošanu. Redzi, thread'us lieto ne tikai priekš CPU intensīvas datu apstrādes, bet arī paralelizācijai. Gribi piemēru? Konkrēti Windows API programma - viens thread's priekš programmas message loop, otrs griež COM porta datu saņemšanu un trešais Direct3D renderēšanu. Tiem ir dažādas prioritātes, neviens no tiem nenoslogo pat atsevišķu kodolu uz 100% un visi kopā arī pat ne tuvu. Varbūt Tavuprāt šai programmai uz divkodolu procesora nav jēgas no thread'iem? Lai, piemēram, kamēr notiek jauna kadra renderēšana, viss pārējais GUI un COM ports iefrīzo. Uz vienkodola procesoriem tad vispār nevienai programmai nevajadzēja thread'us? Un mikrokontrolieros, kur gandrīz vienmēr ir tikai viens kodols un tikai viena programma, tad vispār OS nemaz nevajag? T.i. visa pasaule ir sarakstījusi neskaitāmus RTOS, bet izrādās, ka tie ir nevajadzīgi. Labi gan, ka Tu mūs, dumiķīšus, apgaismoji! Kaut ko minēji par tukšpiržiem... Tad, kad būsi kaut ko praktisku uzprogrammējis un tiešām parādījis, ka tas dzīvē darbojas, tad parunāsim par to, kurš jēdz vairāk. Visi pārējie jau ir parādījuši? Tu esi parādījis? Kur? Link to comment Share on other sites More sharing options...
Raimonds1 Aprīlis 30, 2016 Author Share Aprīlis 30, 2016 Raimonds1, 29 Apr 2016 - 23:57, teica: pointers are arrays ja tu ko tādu raksti... http://eli.thegreenplace.net/2009/10/21/are-pointers-and-arrays-equivalent-in-c http://stackoverflow.com/questions/4607128/in-c-are-arrays-pointers-or-used-as-pointers https://www.le.ac.uk/users/rjm1/cotter/page_59.htm http://www.cplusplus.com/forum/articles/10/ Kungi, ja tas ir iespējams, šo konceptu iesācējiem saprotami, kur kopīgais, kur atšķirīgais. http://www.tutorialspoint.com/cprogramming/c_pointer_to_an_array.htm http://www.panix.com/~elflord/cpp/gotchas/index.shtml http://www.tutorialspoint.com/cplusplus/cpp_pointers_vs_arrays.htm https://www.ibiblio.org/pub/languages/fortran/append-c.html The K&R method of reducing arrays to pointers http://icecube.wisc.edu/~dglo/c_class/array_ptr.html n Pointers are not, however, the same as arrays This is one of the most confusing parts of C, so here are three different ways of stating the difference between an array a and a pointer p which points to the first element of a :The technical explanation: arrays are accessed using direct addressing, pointers are accessed using indirect addressing The less technical explanation: a is an address, p is an address which holds the address of a The extremely wordy explanation: to retrieve value from a[n], the computer starts at address a, moves n past it and fetches value from there; to retrieve value from p[n], the computer starts at address p, fetches the address stored there and adds n to it, then fetches value from the resulting address Most of the time, however, pointer and array accesses can be treated as acting the same, the major exceptions being:the sizeof operatorsizeof(array) returns the amount of memory used by all elements in array sizeof(pointer) only returns the amount of memory used by the pointer variable itself the & operator&array is an alias for &array[0] and returns the address of the first element in array &pointer returns the address of pointer a string literal initialization of a character arraychar array[] = "abc" sets the first four elements in array to 'a', 'b', 'c', and '\0' char *pointer = "abc" sets pointer to the address of the "abc" string (which may be stored in read-only memory and thus unchangeable) Additionally, an array cannot be resized or reassigned Link to comment Share on other sites More sharing options...
Inspektors Caps Aprīlis 30, 2016 Share Aprīlis 30, 2016 (labots) Runājot par pedagoģisko pusi, nevar nepieminēt mērķauditoriju. Kāda tā ir? Studenti, vidusskola, pamatskola? Piemērs ar 11 printf(), kur dara vienu un to pašu velk drīzāk uz bērnudārzu! Studentiem jāpietiek ar apmēram šādu piemēru: #include <stdio.h> int main(void) { int x, *px; x = 3; px = &x; printf(" x = %d &x = 0x08%X\n", x, &x); printf("*px = %d px = 0x08%X\n", *px, px); return 0; } P.S. Plus tajā bērnudārza piemērā pēdējais mainīgais bija bool datu tipa, kāda C valodā nemaz nav! C failiem paplašinājums ir ".c", bet C++ ir ".cpp". Ja nomainīsi to, tad arī kompilators kodu kompilēs kā attiecīgās valodas. Labots Aprīlis 30, 2016 - Inspektors Caps Link to comment Share on other sites More sharing options...
Raimonds1 Aprīlis 30, 2016 Author Share Aprīlis 30, 2016 (labots) Auditorija varētu būt skolēni, kuriem ieskaidro, ka spīdīgie bling bling risinājumi tikai labi izskatās, iemāca arī elektronikas un fizikas pamatus, C un C++ pamatus, kā arī citu diskusiju pieredzi, nekā tajos priekšmetos, kur viņi aizstāv jebkādu viedokli paša diskutēšanas procesa pēc, lai tik būtu jautri. Tikpat labi pieauguši cilvēki arī var izdomāt, ka grib saprast, kā tas viss darbojas zemākā līmenī un tas viņiem var noderēt. Man pašam savā mācību procesā ir tāda divēja situācija - no vienas puses - varēju tam visam pievērsties daudz agrāk, no otras, tagad ir pieejamas visādas lekcijas, kur visāda kalibra džeki stāsta, kā vajag un kā noteikti nevajag lietot pointerus un atmiņu, kas ir labs stils, kas ir ātrs process un kas ne un tamlīdzīgi. Tā kā es jau sakumā varu paklausīties ko tādu un izlemt - nē, šitā es šo problēmu nerisināšu, sameklēšu ko labāku. youtube.com/watch?v=sWgDk-o-6ZE 19.46 sek cik kas aizņem laiku youtube.com/watch?v=CSVRA4_xOkw Plus tajā bērnudārza piemērā pēdējais mainīgais bija bool datu tipa, kāda C valodā nemaz nav! C failiem paplašinājums ir ".c", bet C++ ir ".cpp". Ja nomainīsi to, tad arī kompilators kodu kompilēs kā attiecīgās valodas. Problēma ir tur, ka es, meklējot labāko skaidrojumu un piemērojot to viszemākajam sākuma izpratnes līmenim, reizēm to atrodu C un reizēm C++ valodas jūtūba video, tutoriāļos vai forumu diskusijās. Tad nu, liekot to visu kopā, sanāk sakombinēt gan C gan C++. Man izprast traucē nevis tas, ka es nesaprastu ideju, bet gan īsās sintakses formas un iemaņu trūkums simbolos to visu saskatīt. Tāpēc atkārtotās rindas ar vienu un to pašu, nomainot tik mainīgos. Labots Aprīlis 30, 2016 - Raimonds1 Link to comment Share on other sites More sharing options...
Jurkins Aprīlis 30, 2016 Share Aprīlis 30, 2016 Man izprast traucē nevis tas, ka es nesaprastu ideju, bet gan īsās sintakses formas un iemaņu trūkums simbolos to visu saskatīt. Sliktam dejotājam olas traucē. Pavisam sliktam... svešas. Ja kaut kādā fantastiskā veidā par Tavu mērķauditoriju kļūdu skolēns - mans bērns, es Tevi nošautu , ņefig bojāt bērniem smadzenes. 4 Link to comment Share on other sites More sharing options...
Jurkins Aprīlis 30, 2016 Share Aprīlis 30, 2016 Ar kaķeni pa olām - viegli miesas bojājumi :D:D Man aizvien vairāk šķiet, ka šis tomēr nav īsti vesels ar galvu. Nē, nu ok, ja čakarētu sevi pats priekš sevis, bet, ja sākas runas par pedagoģiju un mērķauditoriju, tad šis var kļut sabiedrībai bīstams . Link to comment Share on other sites More sharing options...
Raimonds1 Maijs 1, 2016 Author Share Maijs 1, 2016 (labots) Palasi tās lekcijas, kur džeki stāsta, kā nevajag programmēt, apieties ar pointeriem, atmiņu un algoritmu implementāciju. Es tās lekcijas klausos un ņemu vērā, kad izvēlos, kam pievērst uzmanību jau pašā savu mācību sākumā. Kad būs, tad būs kaut kāds materiālu apkopojums, tad tā būs maza vai ne tik maza grāmatiņa vai kaut kāds datu blāķis internetā, tipa, kā es mācījos programmēt vai sākuma pamati un grūtības C/C++ apgūšanā, klātienē nevienu mācīt netaisos. Ar ko, lūdzu ir slikta pieeja kā pirmo pasākumu izvēleties gatavu piemēru ar pointeriem un pārējo skaidrojumu pēc tam, sevišķi izvairoties to pārlieku ātras "gatavu projektu" veidošanas, pirms apgūtas svarīgas pamatzināšanas. Šajā gadījumā - pirms lietosim tos kaut kā veidošanai, apgūsim ka nu to pointers are arrays konceptu - kad tie ir viens un tas pats un kad nav. Ar praktiskiem piemēriem un kļūdu analīzi. Tur augstāk ir pāris adreses adreses par tēmu - arrays is a pointers or not. Neesmu pārliecināts, ka tur viss ir saprotams gan man, gan 99% foruma auditorijas. Par tēmu, ja var. Labots Maijs 1, 2016 - Raimonds1 Link to comment Share on other sites More sharing options...
camel Maijs 1, 2016 Share Maijs 1, 2016 (labots) Te ir grāmatu sērija For Dummies. Izskatās, ka tu gribi rakstīt For Idiots. Labots Maijs 1, 2016 - camel Link to comment Share on other sites More sharing options...
Jurkins Maijs 1, 2016 Share Maijs 1, 2016 tad tā būs maza vai ne tik maza grāmatiņa vai kaut kāds datu blāķis internetā Grāmatiņa??? Jā, nu pašvērtējums Tev ir līmenī. Ja nemaldos te bija tādi, kuri solīja savu OS uzrakstīt. Nu nav jau labi par smagi slimu cilvēku smieties, pedagogs nedataisītais! Bet blāķis internetā gan var sanākt. Par to nav šaubu. Internets lēni bet pamatīgi pārvēršas par miskasti. Pateicoties tādiem speciālistiem un pedagogiem kā Tev. Klātienē Tu nemaz nevarētu mācīt. Ja nu vienīgi kādā reliģiskā sektā vai attiecīgā palātā. Neesmu pārliecināts, ka tur viss ir saprotams gan man, gan 99% foruma auditorijas. Es gan esmu pārliecināts, ka Tu esi vienīgais no 100% auditorijas, kuram kaut kas nepielec. Tev pat vēl nav pielecis (gada laikā!!!), nafig tos pointerus vispār vajag. Nu nav pielecis! Izskatās, ka tu gribi rakstīt For Idiots. For Raimonds only especially! 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!