Jump to content

Rekursīvs rindas summas aprēķins


GUNIS95
 Share

Recommended Posts

 

 

Nu tagad esmu uztaisījis šādi, bet atkal ir problēma. kad palaižu programmu parādās exit code 207: invalid floating point operation.

 

 Problēma būs ar nulltās pakāpes aprēķinu, jo Ln(0) nav definēts.

Iesaku funkcijā ielikt ifu: IF pakape=0 then Power:=1 else ...

 

 



function Power(skaitlis:real; pakape:integer):real;
begin
Power:= Exp(pakape*Ln(skaitlis));
end;

Link to comment
Share on other sites

> Bet nez kāpēc pēdējā laikā tiek spiests uz interpretējamām valodām (PHP, java) un nevajag definēt mainīgos.

 

Java galīgi nav interpretējamā valoda. Iemeti ar PHP vienā maisā it kā būtu līdzīgas valodas... :)

Link to comment
Share on other sites

 

 

Java galīgi nav interpretējamā valoda.

 

Nav? Palasi uzmanīgāk par java!

 

Jā, java nav klasisks interpretators, izejas kods tiek "kompilēts". Tomēr no "kompilētā" koda var atpakaļ dabūt source kodu, tiesa bez formatējuma un pazaudējot mainīgo nosaukumus.  

Link to comment
Share on other sites

daGrevis, var mēģināt, bet diemžēl neko citu kā asambleru tur neiegūt....

Link to comment
Share on other sites

Леший

Nē, runa bija par to, ka pieskaitīšana un palielināšana procesoram ir divas dažādas instrukcijas. Un nekas tur nav labi. Procesors un programmas to vien dara kā maina vienu un to pašu reģistru un RAM adrešu vērtības, un tieši to mums reālajā dzīvē arī vajag.

 

Runa bija tieši par to, ka matemātikā nav tāda jēdziena kā x = x + 1. Un absolūti nav svarīgi, kā tu to pieraksti, ar +1 vai ++. Problēma šeit ir tāda, ka imperatīvas valodas izmanto nosaukumu "mainīgais" priekš var a = 1; a = a + 1, bet tas noteikti nav tas pats, kā mainīgais matemātikā. Reālajā dzīvē tas izskatītos tā: tev ir naudas summa, teiksim x = 100 euro. Tu palielini to naudas summu par 1 euro, tas ir y = x + 1, un šī ir pilnvērtīga funkcija. Savukārt, ja mēs mēģinam izteikt "imperatīvi", caur x, mēs dabūsim, ka mūsu naudas summa ir mūsu naudas summa plus viens (x = x +1), bet x ir nodefinēts, kā x + 1, un šeit sanāk bezgalīga rekursija, jo katru reizi tev vajag x vietā ierakstīt x + 1:

x = x+ 1; x = (x + 1) + 1; x = ((x + 1) + 1) + 1 utt

Bet imperatīvās valodās tā nenotiek, un tev ir jāadoptējas šim nedabiskam konceptam. Ja vien nezini c vai asm, un nezini, ka "mainīgais" imperatīvās valodās ir vienkārši atsauce uz adresi atmiņā (bet to jau neviens neskaidro, kad pasniedz pascal).

Kad skolā pasniedza programmēšanu (pascal, protams), man šo konceptu bija grūti saprast, ņēmot verā, ka paraleli mums mācīja mat. anālizes pamatus matemātikā.

 

Patiesībā, deklaratīvas valodas, tādas, kā haskell, atbalsta šādu rekursivo datu veidošanu, piemēram:

fib = 0 : scanl (+) 1 fib
Link to comment
Share on other sites

Inspektors Caps

@@MarisO,
Multithreading iekš Java ir ļoti ierobežots un vēl realizēts slimā "viss objektos" domāšanā. Un pat to nekur īsti nemāca. Kaut kādi web sistēmu smērētāji uz mani vispār neiedarbojas...

 

Tas, ka Linux kernelis un citas lielas lietas nav rakstītas Pascal bet C, Tev nedod nekādas tiesības nolikt Pascal kā tam nederīgu, jo funkcionāli tās ir viena līmeņa un faktiski gandrīz vienādas valodas. Vienkārši Pascal sintakse ir vairāk piemērota iesācēju izpratnei, bet C sintakse profesionālam darbam, un tādēļ viss arī tiek rakstīts tajā. Bet, kā jau teicu, pārslēgties no vienas uz otru ir viens spļāviens, tādēļ iesācējiem sākumā labāk mācīt pat Pascal.

 

Polimorfisms, mantošana, īpaši immutable variables, un vēl citi ir tikai brīnumi, par kuriem Tu domā, ka tie kaut ko uzlabo un "visu atrisina", bet reāli tie tikai sajāj gan mācīšanos, gan reālu izstrādi.

 

Deklaratīvā un funkcionālā programmēšana tomēr ir smagi limitētam pielietojumam. Vēl vienmēr ir atrodami arī "speciālisti", kuri praksē pielieto visādus murgus. Ne velti Tu nosauci tikai web lapas, kas, salīdzinot ar programmatūru, pati par sevi jau ir funkcionāli šausmīgi ierobežota vide. Matemātika, web lapas, SQL un treniņu "cietie rieksti" arī ir tās programmēšanas pielietojums. Uzprogrammē deklaratīvā stilā asinhronu seriālu datu pakešu parseri, kas streamā meklē headera sākumu, rēķina kontrolsummas, ir momentā apstādināms (cancel), neizmanto visādus debīlus sleep-poll taimautus un jā - saglabā stāvokli, jo ienākošo datu porcijas nav noteiktas un pakete var sastāvēt no daudz porcijām, kuras vispār vēl nav pienākušas vai pat izsūtītas, un nav iespējas uzkrāt visu paketi! Ja pamēģināsi, varbūt vismaz sapratīsi kādā alā pats dzīvo.

 

Lai lietotu OOP valodā, kur ir pointeri, nekas tur diži nav jāimplementē. Pietiek ar viena papildus pointera padošanu vajadzīgajās funkcijās un normālu koda strukturēšanu. VISS! Polimorfisms, mantošana un citi brīnumi OOP nav ne obligāti, ne parasti arī vajadzīgi, tāpat kā īpašs atbalsts kompilatora līmenī. Problēma ir tikai tā, ka Tev tas nepielec, jo Tev domāšana ir sačakarēta Java kastē.

 

Runa bija tieši par to, ka matemātikā nav tāda jēdziena kā x = x + 1. ... Problēma šeit ir tāda, ..., bet tas noteikti nav tas pats, kā mainīgais matemātikā.

OK, tad pārpratu. Bet tādā gadījumā problēma ir tikai tajā, ka nav izskaidrots, kas ir dators un ko tas dara. Pirmās lietas, ko skaidro programmēšanā, ir, ka tās ir instrukcijas, ko izpilda pa diskrētiem soļiem no augšas uz leju, un, ka mainīgie ir "kastītes", kuros var ierakstīt vērtības. Ja tas nav izdarīts, tad vaina ir skolotājā, ne programmēšanas valodā. Pie tam, starpcitu, tieši Pascal piešķiršanas operators taču ir ":=", kas tāds ir tieši tādēļ, lai norādītu uz piešķiršanu nevis vienādību, kas ir vēl viens iemesls, kādēļ tā ir laba mācību valoda.

 

 

 

Bet imperatīvās valodās tā nenotiek, un tev ir jāadoptējas šim nedabiskam konceptam.

Nedabisks tas ir matemātikas mājas darbam, bet programmēšanai tas ir dabiskākais, kāds ir. Ja grib labi programmēt, tad jāpiemēro ir nevis programmēšanas valoda, bet gan domāšana. Kā jau teici - jāadoptējas. Tiesa mūsdienās modernie "tolerantie" liekuļi domā, ka pasaulei ir jāpiemērojas viņiem...

 

 

 

Kad skolā pasniedza programmēšanu (pascal, protams), man šo konceptu bija grūti saprast

Man kaut kādā agrīnā brīdī bija grūti saprast ciklu konceptu, bet es tādēļ te nedeklamēju, ka no programmēšanas valodām ir jāizņem cikli!

Link to comment
Share on other sites

Леший

 

 

Deklaratīvā un funkcionālā programmēšana tomēr ir smagi limitētam pielietojumam.

Teiksim, ar funkcionālām valodām var risināt tikai tos uzdevumus, kurus var izteikt matemātiski. Tas ir, visus iespējamus uzdevumus.

 

 

 

Uzprogrammē deklaratīvā stilā asinhronu seriālu datu pakešu parseri, kas streamā meklē headera sākumu, rēķina kontrolsummas, ir momentā apstādināms (cancel), neizmanto visādus debīlus sleep-poll taimautus un jā - saglabā stāvokli, jo ienākošo datu porcijas nav noteiktas un pakete var sastāvēt no daudz porcijām, kuras vispār vēl nav pienākušas vai pat izsūtītas, un nav iespējas uzkrāt visu paketi! Ja pamēģināsi, varbūt vismaz sapratīsi kādā alā pats dzīvo.

Man ir pieredze līdzīgu kodu veidošanā ar deklaratīvām valodām. Nekas grūts nav.

 

 

 

Pirmās lietas, ko skaidro programmēšanā, ir, ka tās ir instrukcijas, ko izpilda pa diskrētiem soļiem no augšas uz leju, un, ka mainīgie ir "kastītes", kuros var ierakstīt vērtības.

Tas viss ir imperatīvās valodās, un tev ir jāadoptējas šiem abiem konceptiem, kas patiesībā ir viens - state. Deklaratīvas valodas tāpēc aŗī ir dabiskākas, jo nekas tāds nav jāapgūst, tām nav state. IMHO, fakts ir tāds: deklaratīvas valodas ir grūtas tikai tiem, kam jau ir pieredze imperatīvās valodās.

Link to comment
Share on other sites

 

 

IMHO, fakts ir tāds: deklaratīvas valodas ir grūtas tikai tiem, kam jau ir pieredze imperatīvās valodās.

IMHO "IMHO" un "fakts" nu nekādi neiet kopā. Fakts vai nu ir, vai nu nav, un tas nav atkarīgs no viena vai otra tipa necilā viedokļa.

 

Par to, ka kāda valoda ir dabiskāka vai mazāk dabiska, nevajadzētu diskutēt - neviena programmēšanas valoda nav dabiska. Dabisks ir koks, zāle, debesis, bet ne programmēšanas valoda. Piemērotāks jēdziens būtu "intiutīvs", taču tas ir kaut kas tik ļoti subjektīvs, ka būtu attiecināms uz "programmētājs, valoda" pāri, nevis uz valodu kopumā.

Link to comment
Share on other sites

Леший

binary, deklaratīvas valodas ir ļoti tuvas matemātikai, savukārt, matemātika tiek izmantota, lai aprakstītu dabas procesus.

Imperatīvas valodas tika izveidotas, jo tā strādā mūsdienu dators.

Link to comment
Share on other sites

 

 

Imperatīvas valodas tika izveidotas, jo tā strādā mūsdienu dators.

What? :D

  • Patīk 1
Link to comment
Share on other sites

Kautkad mēģināju lasīt par to haskell cerībā, ka tas varētu noderēt, piemēram, biznesa plāna modelēšanai (excel vietā). Bez tā, ka nevarēju norīt to konceptu par nemainīgiem mainīgajiem, man tomēr radās iespaids, ka haskell nebūs tik deklaratīvs, lai vēlamā rezultāta iegūšanai pietiktu ar formulu sarakstīšanu. Ja @Леший nodemonstrētu kā tas haskelī darāms, tas būtu ļoti vērtīgi.

Labots - camel
Link to comment
Share on other sites

Леший

camel, koncepts ir vienkaršs. Aplikācijas pamatkods ir tīrs un drošs (safe & pure), bet tu komunicē ar nedrosām daļām (IO, State) ar dažādu rīku palīdzību. Pagaidām daudz maz labi izstrādāts man ir šis kods https://github.com/ivanovsaleksejs/Xn_pls/blob/master/Bot/Messaging.hs#L58Links ved tieši uz funkciju, kas veido imperatīvo ķēdi ar bind funkciju (>>=). Turpat tiek izmantotas funkcijas get un put, lai mainītu stāvokli. Šajā funkcijā notiek viss nedrošs kods, bet pamatkods ir sadalīts vairākās funkcijās, kas ir pure.

Rezultātā, mums ir viena funkcija, kas nodrošina saiti starp skaistu, drošu pamatkodu un ļaunu nedrošu ārpasauli.

 

 

 

What?

Procesoram ir IP (instruction pointer), kas norāda uz to, kurā vietā pašlaik notiek koda izpilde. Kods tiek sarakstīts atmiņā, kā komandu ķēde. Tas ir 100% imperatīvi. Kas tevi mulsina?

Labots - Леший
  • Patīk 1
Link to comment
Share on other sites

Lai nu kā, bet nemainīgi "mainīgi" datora vidē ir pilnīgs sviests! Elementārs piemērs - mainīgajā glabājas peles kursora koordinātes - tad ko kustinot peli katru reizi cits mainīgais jāieved... Sviests kaut kāds! 

Link to comment
Share on other sites

Imperatīvā stila teorētiskais modelis ir tjūringa mašīna,  deklaratīvā - lambda calculus.

Ir pierādīts, ka šie modeļi ir ekvivalenti - ko var ar vienu,  var ar otru.

 

Deklaratīvajās valodās variabļus "maina" tos deklarējot par jaunu,  to var ērti izdarīt ar rekursiju. Iemācīties programmēt deklaratīvi nav nemaz tik grūti,  ja vien tam nepieiet ar attieksmi, kas noliek visu, ko nesaprot.

 

Un nav nekādu problēmu tur uzprogrammēt, ko vien vēlies:  datubāzes  (riak), messaging brokerus (rabbitmq) vai x-windows logu menedžerus (xmonad).

  • Patīk 1
Link to comment
Share on other sites

haskell katrā ziņā programmēšanas inženieriem noderīgāks kā augstākā ķīmija un Pascals. Pamatojums - tas ir minēts DD sludinājumos, bet ķīmija un Pascal - neesmu manījis programmētāju prasmju prasībās.

 

Apmācībai? Java, C++, JS, C# turoriāļi man ir izprotamāki kā milzīga grāmata par TurboPascal.

Link to comment
Share on other sites

 

 

Ja programmētājs nevar nakts vidū paskaidrot kas ir thread, wait function, event, semaphore, mutex, critical section, volatile variable, atomic operation un deadlock, tad no labas un efektīvas programmēšanas viņš nesajēdz pilnīgi neko

 

Labs programmētājs var izskaidrot arī Actor modeli   un pat uzrakstīt kādu actoru iekš erlang  vai scala.  Un erlang ir deklaratīva valoda.

 

Erlang... is designed for concurrency, distribution and scalability, actors are part of the language itself. 

Erlang is a pure functional language, it features single assignment and eager evaluation.

 

https://savanne.be/articles/concurrency-in-erlang-scala/

 

Actors ir labāki nekā threads.

Link to comment
Share on other sites

nevertell

 

Lai nu kā, bet nemainīgi "mainīgi" datora vidē ir pilnīgs sviests! Elementārs piemērs - mainīgajā glabājas peles kursora koordinātes - tad ko kustinot peli katru reizi cits mainīgais jāieved... Sviests kaut kāds! 
 

Nē. Tādā gadījumā tev ir nevis mainīgais, ko tu nolasi, bet funkcija, kas atgriež kursora koordināšu vērtības. 

 

Mairi, uzraksti man grafikas draiveri iekš funkcionālas valodas. 

Tikai tāpēc, ka var visu izdarīt ar vienu vai otru programmēšanas/domāšanas stilu, nenozīmē ka viens vai otrs veids būs labākais visos gadījumos. 

Neviena funkcionāla valoda nespēj piedāvāt tīra C ātrumu. Un Actors ir tikai smuki wrapper'i thread'iem, ko var realizēt arī džavā, cē plus plus un visvisādās valodās. 

Link to comment
Share on other sites

 

 

viens vai otrs veids būs labākais visos gadījumos
 

 

Jā,  protams,  low-level kodu (draiverus, kernel moduļus utml) neviens nerakstīs funkcionālā valodā.  Nekad neesmu teicis , ka viens vai otrs veids ir labāks vienmēr.  :)

Link to comment
Share on other sites

Mezavecis

Varu saderēt, ka to tu pats izdomāji un pasniedz kā vispārzināmu patiesību :) Pilnīgi iespējams, ka cita valoda būs vēl vairāk piemērota iesācējiem, tikai jautājums, kam tieši - iemācīties programmēt, programmēt objektorientēti, piebāzt galvu ar nevajadzīgu teoriju vai vispār saprast kā darbojas programmēšana. Vispār jau arī pasniedzēji ir atbildīgi, ka skrupulozi uzspiež garlaicīgos DOS logus, kas atbaida lielāko daļu potenciālo programmētāju. Es neesmu dzirdējis ne no viena, kas priecātos par Pascal kreatīvismu un atbilstību mūsdienu laikmetam. Jā, 1994. gadā tas bija kaut kas jauns un progresīvs, bet ne jau pēc 20 gadiem malt vienu un to pašu. Un brīnās, ka lielais bars dodas urbt plāno galdiņu...

 

Un tas, ka valoda nav C, nemaz nenozīmē, ka tā nav piemērota profesionālam darbam. Zemi var rakt ar lāpstu, ar ekskavatoru vai stumt ar buldozeru, bet tajā pašā laikā pāļus var iedzīt tikai ar pāļu dzinēju. Tāpēc man nav izprotam tā programmēšanas valodu dalīšana pēc kaut kādiem reliģiskiem uzskatiem. Vai tad mērķis nav galvenais? 

 

 

Vienkārši Pascal sintakse ir vairāk piemērota iesācēju izpratnei, bet C sintakse profesionālam darbam
 
Link to comment
Share on other sites

pasniedzēji ir atbildīgi, ka skrupulozi uzspiež garlaicīgos DOS logus

 

 

Jā,  dīvaini,  ka mācību iestādes algo tādus cilvēkus.  Kāpēc viņu vietā nevar pieņemt darbā kompetentus cilvēkus?   Pasniedzēji taču var mācīt studentiem C  un hackot Linux kerneli.    Tur taču daudzko interesantu var izdarīt un iemācīties.   OS uzbūve  utml.  

 

Var uzkodēt dažādus kernel moduļus,  kas izjoko lietotājus:  

Labots - MarisO
Link to comment
Share on other sites

 

 

Pasniedzēji taču var mācīt studentiem C  un hackot Linux kerneli.

 

Tas domāts ar sarkasmu? Iesācējam mācīt hakot linux kerneli.......

 

Lai nu kā, bet konsoles aplikāciju izstrāde ir labākais veids kā programmēšanas pamatus apgūt. Varam ņemt free lazarus un kompilēt 64 bitu linux konsoles aplikāciju - dos turbo pascal vietā - no tā kaut kas principiāli mainīsies?

 

 

 

Es neesmu dzirdējis ne no viena, kas priecātos par Pascal kreatīvismu un atbilstību mūsdienu laikmetam.  

Jā, tubo paskals ir neglābjami novecojis. Bet ne pascal kā valoda. Delphi izskatā tā turpina dzīvot un attīstīties! Un es neesmu redzējis ērtāku vidi lai biznesam paredzētas win gui aplikācijas taisītu!  

Link to comment
Share on other sites

 

 

Iesācējam mācīt hakot linux kerneli.......
 

 

Ne jau ar to sākt, protams.   Bet tas būtu ļoti noderīgi izglītošanās nolūkos.  Turklāt parasti jau tur ir kautkāds OS kurss.  Bet tam vajadzīga C izpratne, lai tur kautko izdarītu praktiski.   

Link to comment
Share on other sites

 

 

Bet tam vajadzīga C izpratne, lai tur kautko izdarītu praktiski.

wat.

Pāris h sintaksei, manuālis vaļā un dragā. Problēmas sagādas domeina zināšanu prasības ne C.

Praksē tas ir pierādījies atkal un atkal, un atkal, un atkal. Zini vienu valodu, iemācīsies otru, trešo, ..., jebkuru, vērā neņemamā laikā. 

Link to comment
Share on other sites

Леший

 

 

Zini vienu valodu, iemācīsies otru, trešo

Nez cik daudz programmētāju pasaulē zin vairāk, ka vienu valodu, vai patternu, vai paradigmu. Labi, ja 20%.

Link to comment
Share on other sites

Mezavecis

Es gan nebūtu tik pārliecināts par šādu apgalvojumu. Ja sintaksi var apgūt, tad platformu, uz kura balstīta šī valoda, nedēļām vai mēnešiem jāpieslīpē, bet par ekspertu vari saukties tikai pēc gadiem. Kaut kaut piemēram, Java vs C#, kur sintaktiski vienkāršu piemēru (kā tēmā pieminēts) var izveidot nekādām problēmām, bet ja salīdzina ASP vs JSF, tad šīs ir pilnīgi atšķirīgas lietas. Arī Objective C nav tas pats, kas C++/CLI. 

 

Zini vienu valodu, iemācīsies otru, trešo, ..., jebkuru, vērā neņemamā laikā. 
Link to comment
Share on other sites

Mezavecis

japets

Derētu nodefinēt, kas pēc tavām domām ir produktivitāte :) Paralēli mācoties jaunas programmēšanas valodas viņš nevar būt produktīvs, ja vien nestrādā ārpus darba laika vai nodarbojas ar darba imitēšanu darba laikā. Man domāt, ka paņemot pirmoreiz rokā Linux, pilnīgi un noteikti nevar sasniegt kaut kādu produktivitāti īsā termiņa, pat ja esi C guru un uzkodējis n aplikācijas iekš windows, bet no konkrētās platformas neko nejēdz. Ja to var ātri apgūt, parādi man to brīnumlīdzekli. 

Link to comment
Share on other sites

Mezavecis

Un tās domēna zināšanas noveļas no gaisa kopā ar kāda programmēšanas valodas apguvi? 

Link to comment
Share on other sites

ja vien nestrādā ārpus darba laika

 

 

šeit ļoti daudzi strādā ārpus darba laika,  turklāt tas notiek organizēti  (semināru  utml veidā)

man viņi izskaidroja, kā lai kodē iekš clojure un pēc laika es to varēju darīt darbā

 

tur arī kodē haskelī,  bet uz to pāriet nav tik vienkārši  (tas nedarbojas iekš  JVM)

 

 

Java galīgi nav interpretējamā valoda.

 

 

Java kompilējas uz baitkodu,  kurš darbojas tikai iekš intepretatora.   Cita lieta, ka tas intepretators daļu no baitkodiem kompilē uz native code.  Bet to var atslēgt.

 

uzraksti savu intepretatoru:

Labots - MarisO
Link to comment
Share on other sites

Mežaveci, tas ir tieši tas ko es teicu - programmēšanas valodas ir viegli. Domeina zināšanas - ne vienmēr.

Līdz ar to mans apgalvojums joprojām ir: nav svarīgi, ka cilvēks mācās Pascal, svarīgi, ka cilvēks mācās programmēšanu kā tādu. Valodas pārslēgt ir vienkārši.

Link to comment
Share on other sites

Ārprāts. Pascal = viegls? Kura darbavieta meklē Pascal koderus? Kāpēc joprojām spiež mācīties Pascal?

Produktivitāte kā kura izpratnē. Vienam tā būs koda zīmju skaits, ar kuru izdalot algu, iegūtu 0,00001€/zīme vai 0,0001€ / zīme. Otram zīmju skaits minūtē, ko cilvēks spēj ievadīt. Citam citi kritēriji.

Link to comment
Share on other sites

Леший

 

 

programmēšanas valodas ir viegli. Domeina zināšanas - ne vienmēr.

Lūgums precizēt, ko tu domā ar "domein".

Link to comment
Share on other sites

Un Actors ir tikai smuki wrapper'i thread'iem, ko var realizēt arī džavā, cē plus plus un visvisādās valodās.

 

ta jau nemaz naff

 

 different than C/C++ processes, which are OS processes,  erlang's processes are controlled by the erlang vm 

 

 

Polimorfisms, mantošana un citi brīnumi OOP nav ne obligāti, ne parasti arī vajadzīgi

 

 

Kas tad ir OOP ?    "pointera nodošana kautkur"  ?   Tad jau C arī ir objektorientēts.

 

Bez polimorfisma, mantošanas  un  enkapsulācijas  (tie ir 3 OOP "vaļi")  nekāds OOP nav.

Labots - MarisO
  • Patīk 1
Link to comment
Share on other sites

Леший

 

 

Bez polimorfisma, mantošanas un enkapsulācijas (tie ir 3 OOP "vaļi") nekāds OOP nav.

Pilnīgi piekrītu, bet pēdējo laiku ir redzēti kodi, kur cilvēks izmanto OOP tur, kur nevajag. Piemēram, veido klasi, kur pietiktu ar vienu helper funkciju vai tml. Daži pat pieslēdz visādas perversas libas, kas ļauj veidot klases pārlūka JS.

Sanāk, ka cilvēks izmanto OOP OOP dēļ.

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...