Wikiversity betawikiversity https://beta.wikiversity.org/wiki/Main_Page MediaWiki 1.46.0-wmf.23 first-letter Media Special Talk User User talk Wikiversity Wikiversity talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk TimedText TimedText talk Module Module talk Translations Translations talk Event Event talk Saber computacional III 0 48263 383805 373985 2026-04-11T11:54:26Z Profev 36331 reforma 383805 wikitext text/x-wiki [[File:Babbages Analytical Engine, 1834-1871. (9660574685).jpg|420px|thumb|La màquina analítica del matemàtic Charles Babbage totalment mecànic del 1837]] Aquesta secció desenvolupa el coneixement bàsic dels algorismes per a la resolució de reptes i la seva aplicació a la computació. {|style="border: 1px solid #b85; background:#fed" cellspacing="8" |'''Definició'''. Un ''Algorisme'' és un conjunt estructurat d'instruccions orientades a cercar un objectiu. |} Un cop identificada una necessitat o problemàtica dins un context els objectius d'un algorisme poden ser analitzar, tractar o transformar dades o estats per fer diverses activitats resolutives dels objectius marcats. Ruta del curs segons el BOE: * Diagrames de flux i pseudocodi.(1ESO) * Estructures condicionals.(2ESO) * Bucles.(3ESO) * Recursivitat i funcions.(4ESO-A i 4ESO-B) === La màquina === Des de molt antic s'utilitzen mecanismes per facilitar diverses feines tant militars com religioses, la troballa més impactant és '''el mecanismes d'Anticitera''', 87 a.C., un artefacte grec que preveu estats del moviment estel·lar presumptament seguint registres babilònics que eren coneguts pel seu gran recull registres estel·lars en notació de sexagesimals, però el més fascinant és que aquest mecanisme porta moltes inscripcions i entre elles destaquen festivitats vinculades amb el calendari egipci entre d'altres. {| |[[File:Mechanism of Antikythera, 150-100 BC, NAMA, 191435.jpg|Troballa al fons del mar|290px|thumb]] |[[File:Antikythera mechanism - labelled.svg|Reconstrucció de l'engranatge|130px|thumb]] |} Aquests artefactes antics es poden considerar com a una maquinària capaç de reproduir activitats estàtiques i cícliques, inclús hi ha d'altres que podien interactuar amb l'entorn per prendre decisions mitjançant mecanismes molt curiosos. Què manca doncs als artefactes antics respecte dels actuals? * A l'actualitat hi ha maquinària que encara fa feines semblants però d'altres han introduït als seus mecanismes enginys electrònic que els dota d'autonomia gràcies una programació simple que pot ser des de autòmats fins a sistemes operatius amb diversos programes. [[File:Esquema sistema operativo v01.png|right|200px]] Com s'organitzen els dispositius amb sistema operatiu? * Els dispositius amb sistema operatiu utilitzen diversos programes i aquests programes depenen totalment del sistema operatiu. Els programes per a webs fets amb JavaScript depenen dels navegadors que a la vegada depèn del sistema operatiu. == La programació == {|style="border: 1px solid #b85; background:#fed" cellspacing="8" |'''Definició'''. Un ''programa'' és un conjunt d'ordres que, interpretades per la màquina, efectuen diverses activitats dins de les seves possibilitats. |} En resum els programes són algorismes utilitzats pels dispositius, és a dir, programes que els dispositius poden executar. A la pràctica es diu programa a qualsevol arxiu executable i s'anomena codi a tot el que conté. Per dissenyar programes s'utilitzen diversos esquemes com els '''diagrames de flux''' entre d'altres i per escriure un programa es poden utilitzar diversos llenguatges com '''JavaScript'''. === Diagrames de flux === Un '''diagrama de flux''' és la representació esquemàtica per guardar, interpretar i estudiar l'activitat lògica de les ordres dins d'un programa. Els diagrames de flux ajuden a fer la documentació del funcionament de determinats aspectes d'un programa. Els diagrames de flux per a la programació estan proveïts d'una gran quantitat d'elements visuals de caràcter simbòlic. Per facilitar la comprensió i agilitzar el treball ens centrarem en els elements genèrics més destacats a partir dels quals es poden incloure o substituir per elements visuals més adequats de forma natural. ==== Elements ==== [[File:Diagrama flujo 006.svg|270px|thumb|right|Exemple de passar llista a classe]] Elements d'un diagrama de flux simplificat són: * Un '''inici''' i un '''final''' de programa. * Uns rectangles on s'escriu una llista d'ordres simples. * Uns rombes on s'escriu una condició obrint disjuntives del tipus cert i fals, o sí i no, o 1 i 0 respectivament. * Unes fletxes encadenen tots i cadascun dels diferents elements segons els objectius de l'algorisme. Didàcticament per qüestions de similitud amb un programa escrit; les fletxes majoritàriament avancen de forma descendent (pel centre o l'esquerra) però reculen de forma ascendent (per la dreta). '''Reptes''' 1) Fes un diagrama de flux per demanar un sol d'aquests objectes als companys i detalla les respostes dels companys depenent de cada fet, serà molt semblant al de passar llista a classe: {|width="720" |width="180"| *Un&nbsp;full *Un bolígraf |width="180"| *Una&nbsp;goma *Un llapis |width="180"| *Un&nbsp;regla *Una tisora |width="180"| *Un&nbsp;carregador *Una&nbsp;maquineta |} === JavaScript === {|align="right" bgcolor="#fec" style="border: 1px solid #b90" cellspacing="8" |'''Cronologia dels llenguatges''' 1r. Codi màquina en binari. 2n. Llenguatge d'assemblador. 3r. Llenguatges d'alt nivell: {| | *C. *Fortran. *Smalltalk. *Ada. | *C++. *C#. *Cobol. *Delphi. |valign="top"| *Java. *PHP. |} 4t. Programació orientada a objectes. |} S'utilitzarà el llenguatge JavaScript pel seu us freqüent com a programes dins de pàgines webs, més coneguts com '''scripts''', està molt supervisat i té moltes actualitzacions que innoven i milloren el llenguatge, té similituds amb altres llenguatges més rigorosos. Cada Script té una ràpida execució pel navegador que el fa ideal per fer pràctiques. ==== Sintaxi ==== Per aprendre la sintaxi cal aprendre un lèxic bàsic de JavaScript i sense simplificacions, ja que traeixen la intuïció del principiant. Reduir simplificacions permetrà introduir instruccions resistent als errors. Així sempre posarem '''punt i coma''' per fer salts de línia o per introduir una nova instrucció sense salts. L'ordinador llegeix el codi escrupolosament de dalt a baix i d'esquerra a dreta. Eviteu fer una separació de ordres amb comes ja que segons l'intèrpret pot canviar molt d'un navegador a un altre. ===== Variables i gramàtica ===== [[File:2011 Trampeltier 1528.JPG|250px|<font color="#080">'''var'''</font> elSeuNom="camellet";|thumb]] Les variables, el fonament de la programació, s'encarreguen d'emmagatzemar tot tipus de valors, són com el ciment a la construcció. Hi ha molts tipus de variables i constants però per simplicitat gràcies a la generalització de variables de JavaScript es distingirà preferentment un '''número''' d'un '''text''', és important que aquest darrer sempre ha de portar cometes ja sigui simples o dobles: *Això és un número: 3894.427 *Això és un text: "332.349" o també '4256.771' {|bgcolor="#fdd" style="border: 1px solid #b42" |align="center" width="60px"|[[File:Achtung.png|50px]] |width="500px"| * És obligatori declarar les variables sempre. ::<font color="#080">'''var'''</font> ... |} Es declara una variable escrivint '''var''' davant del nom o etiqueta, es recomana '''no estalviar''' les declaracions de variables. Tota declaració es fa al principi del programa, funció o rutina entera. Així queda establert el tipus de valor o usabilitat de cada variable abans de fer cap operació amb elles. El nom o etiqueta de les variables no poden començar per un número ni tenir espais ni utilitzar '''paraules reservades''' ni símbols diferents de la part del abecedari comuna ni accents ni espais, i per inventar noms diferents es fa servir habitualment el mètode del camell que substitueix els espais per majúscules. '''Exemples''': 1.-Es proposa fer la declaració d'una variable anomenada '''nomDUsuariNou''' amb el text '''"jordi"''', un altre variable anomenada '''nUmeroIdentificador''' amb el número 3349280 i un codi en text que sigui 800245FF-x-40A. :<syntaxhighlight lang="javascript">var nomDUsuariNou = "Jordi"; var nUmeroIdentificador = 3349280; var codiCertificador = "800245FF-x-40A"</syntaxhighlight> 2.-Sintaxi de la declaració d'una variable '''a''' buida, d'una variable '''b''' amb valor numèric inicial de 7,5 on és obligat utilitzar la notació de "punt" per indicar la coma decimal, d'una variable '''c''' amb la cadena de text 7.5, i dues variables '''d''' i '''e''' amb la mateixa cadena de text '''Tr3s' 3s"b''' on les comes simples i dobles són com els parèntesis, una obre i la segona tanca, i la barra '''\''' crea una excepció i desactiva el tancament de les comes per poder escriure el seu símbol: :<syntaxhighlight lang="javascript">var a; var b = 7.5; var c = "7.5"; var d = "Tr3s' 3s\"b"; var e = 'Tr3s\' 3s"b';</syntaxhighlight> L'ordinador guarda un número com un valor en binari per operar directament sense contemplacions i en canvi si és una cadena de text llavors l'ordinador el guarda com una cadena de lletres o símbols numèrics però a dins d'aquesta cadena de text. Les cadenes de text no es poden multiplicar per 2 perquè és com multiplicar una lletra per un número i el navegador no interpreta aquest tipus d'operació totalment fora de context. ===== Comentaris ===== Es pot introduir comentaris acompanyant les ordres del programa, ja sigui per explicar el funcionament de les ordres o per anular ordres sense esborrar-les. Els comentaris s'han d'escriure sense accents ni símbols no reglamentats ja que el programa falla ràpidament. Tenim dos tipus de comentaris, que el navegador no els veu com ordres que formen part del programa(destacats en gris). *Per fer comentaris en tot el que queda de línia de codi farem servir les dues barres '''//''': :<font color="#090">'''var'''</font> a; <font color="#888">//A partir d'aquI Es un comentari fins i tot l'ordre var b = 8;</font> *Per fer comentaris puntuals intempestius utilitzarem com a parèntesi els símbols d'obrir comentari '''/*''' i tancar comentari '''*/''': :<font color="#090">'''var'''</font> a="3"; <font color="#888">/*var b = "213"; */</font> <font color="#090">'''var'''</font> c; ===== Operacions ===== Es poden fer operacions amb nombres, +, -, / i *, i una operació amb cadenes de text, +. S'han de diferenciar bé i no refiar-se de la sort. *Primer posem les variables receptores de valors i després de la igualtat van les operacions que generen el valor a guardar, on poden reaparèixer les mateixes variables sense cap conflicte. ::nouValor = 3+21/5+2*4; ::numeroCreixent = 2*numeroCreixent + 1; *Les operacions al programa respecten les prioritats de les operacions prioritzant els parèntesis. {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" class="mw-collapsible mw-collapsed" data-expandtext="Veure-les" data-collapsetext="Ocultar-les" |- |Sumes amb l'operador '''+''': |- | :a= 3+2; <font color="#888">// suma dos nombres, 3+2, i es guarda dins '''a'''</font> :b= 7+a; <font color="#888">// suma un nombre, 7, i una variable, '''a''', i es guarda dins '''b'''</font> :c= b+8;<font color="#888">// suma una variable, '''b''', i un nombre, 8, i es guarda dins '''c'''</font> :d= a+b;<font color="#888">// suma dues variables, '''a''' i '''b''', i es guarda dins '''d'''</font> :d=d+2;<font color="#888">// augmenta en dues unitats el valor de '''d'''</font> |} {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" class="mw-collapsible mw-collapsed" data-expandtext="Veure-les" data-collapsetext="Ocultar-les" |- |Restes amb l'operador '''-''': |- | :a= 3-2; <font color="#888">// resta dos nombres, 3-2, i es guarda dins '''a'''</font> :b= 7-a; <font color="#888">// resta a un nombre, 7, la variable, '''a''', i es guarda dins '''b'''</font> :c= b-8;<font color="#888">// resta a una variable, '''b''', el nombre, 8, i es guarda dins '''c'''</font> :d= a-b;<font color="#888">// resta dues variables, '''a''' i '''b''', i es guarda dins '''d'''</font> |} {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" class="mw-collapsible mw-collapsed" data-expandtext="Veure-les" data-collapsetext="Ocultar-les" |- |Multiplicacions amb l'operador '''*''': |- | :a= 3*2; <font color="#888">// multiplica dos nombres, 3+2, i es guarda dins '''a'''</font> :b= 7*a; <font color="#888">// multiplica un nombre, 7, i una variable, '''a''', i es guarda dins '''b'''</font> :c= b*8;<font color="#888">// multiplica una variable, '''b''', i un nombre, 8, i es guarda dins '''c'''</font> :d= a*b;<font color="#888">// multiplica dues variables, '''a''' i '''b''', i es guarda dins '''d'''</font> |} {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" class="mw-collapsible mw-collapsed" data-expandtext="Veure-les" data-collapsetext="Ocultar-les" |- |Divisions amb l'operador '''/''': |- | :a= 3/2; <font color="#888">// divideix amb decimals dos nombres, 3 entre 2, i es guarda dins '''a'''</font> :b= 7/a; <font color="#888">// divideix amb decimals un nombre, 7, per la variable, '''a''', i es guarda dins '''b'''</font> :c= b/8;<font color="#888">// divideix amb decimals una variable, '''b''', pel nombre, 8, i es guarda dins '''c'''</font> :d= a/b;<font color="#888">// divideix amb decimals dues variables, '''a''' entre '''b''', i es guarda dins '''d'''</font> |} {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" class="mw-collapsible mw-collapsed" data-expandtext="Veure-les" data-collapsetext="Ocultar-les" |- |Encadena text amb l'operador '''+''': |- |La operació d'encadenar '''+''' es concep com l'acció d'ajuntar, enganxar o adherir dues cadenes de text. :a= "3+2"; <font color="#888">//'''a''' Es el text "3+2", el programa tE prohibit efectuar sumes o la operaciO que sigui.</font> :b= "7"+a; <font color="#888">//7 s'enganxa directament a "3+2", llavors '''b''' Es "73+2" i no veu el signe "+" perquè és la operació d'enganxar.</font> :c= b+"+8";<font color="#888">//'''b''' s'enganxa a "+8", llavors '''c''' Es "73+2+8"</font> :d= a+b;<font color="#888">//'''a''' s'enganxa a '''b''', i es guarda dins '''d''' com "3+273+2"</font> :e= "h"+"o"+"l"+"a";<font color="#888">//llavors '''e''' Es "hola"</font> |} ===== Comparacions ===== Les comparacions apareixen de moltes necessitats centrades principalment en '''preguntar quelcom''' o '''imposar condicions'''. Hi ha 6 comparacions i s'han d'escriure exactament com segueix: :{|class="wikitable" |- !colspan=2|Operadors simples !colspan=2|Operadors oposats |- ! !Significat ! !Significat |- |style="width:45px" align="center"|x<font color="#88f"> < </font>y |style="width:140px"|És x més petit que y ? |style="width:45px" align="center"|x<font color="#88f"> >= </font>y |style="width:190px"|És x més gran o igual que y ? |- |align="center"|x<font color="#88f"> > </font>y||És x més gran que y ? |align="center"|x<font color="#88f"> <= </font>y||És x més petit o igual que y ? |- |align="center"|x<font color="#88f"> == </font>y||És x igual a y ? |align="center"|x<font color="#88f"> != </font>y||És x diferent a y? |} '''Fragments''' destacats de programes: *Demana un número i compara si '''més petit''' que 3, i '''només''' en cas afirmatiu l'escriu: {| |style="width:350px"|<syntaxhighlight lang="javascript">x=demanaUnNombre('Escriu un número','0'); if(x<3){ escriu("El "+x+" és més petit que 3"); }</syntaxhighlight> |style="width:170px" class="mw-collapsible mw-collapsed" data-expandtext="Diagrama" data-collapsetext="Ocultar"|[[File:Diagrama flujo 003.svg|170px]] |} *Demana un número i compara és '''més petit''' que 3, i '''només''' en cas afirmatiu l'escriu i '''només''' en cas negatiu escriu la raó: {| |style="width:370px"|<syntaxhighlight lang="javascript">x=demanaUnNombre('Escriu un número','0'); if(x<3){ escriu("El "+x+" SÍ és més petit que 3"); } else{ escriu("El "+x+" NO és més petit que 3"); }</syntaxhighlight> |style="width:240px" class="mw-collapsible mw-collapsed" data-expandtext="Diagrama" data-collapsetext="Ocultar"|[[File:Diagrama flujo 004.svg|240px]] |} Per fer un '''bucle''', repetir un fragment, introduïm el '''for''' que insisteix mentre succeeixi el '''contrari''' del que s'espera. *Escriurem nombres i fins que no siguin '''més grans''' que 7 no sortirem del programa: {| |style="width:470px"|<syntaxhighlight lang="javascript">x=demanaUnNombre('Quin número és més gran que 7','0'); for(;x<=7;){ x=demanaUnNombre('Quin número és més gran que 7','0'); } escriu("Molt bé");</syntaxhighlight> |style="width:190px" class="mw-collapsible mw-collapsed" data-expandtext="Diagrama" data-collapsetext="Ocultar"|[[File:Diagrama flujo 005.svg|190px]] |} ===== Funcions ===== ==== SVG amb script ==== Per a una programació més lúdica s'ha pensat en la utilització d'escripts incrustats dins d'una imatge del tipus [https://es.wikipedia.org/wiki/Gr%C3%A1ficos_vectoriales_escalables vectorial '''*.svg''']. Exercicis amb un '''algoritme bàsic''' ja preparat per ser modificat i rebre ordres, descarregueu-lo [https://marianov2024.github.io/Tutorial/base.svg d'aquí] i tot seguit obriu-lo amb [https://texteditor.co/ '''aquest editor text''']: {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#fbb" width="100%" class="mw-collapsible mw-collapsed" data-expandtext="Veure algoritme bàsic" data-collapsetext="Ocultar" |- |Alternativa |- |Utilitzant "'''l'editor Llibreta'''", "'''editor de text'''" o bé [https://texteditor.co/ "'''aquest editor text'''"], '''deseu sempre''' l'arxiu amb 3 condicions: ::'''Nom''': rectangleVostreNom.svg ::'''Tipus''': '''tots els arxius''' o equivalent *.* ::'''Codificació''': '''UTF-8'''. Enganxeu sempre tot el codi que apareix al requadre. Les entregues per [https://classroom.google.com/h classroom] es fan adjuntant arxius (icona del clip). <syntaxhighlight lang="javascript" line highlight="7-9"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000" height="2000" font-size="20" stroke="none"> <script><![CDATA[ var xmlns="http://www.w3.org/2000/svg"; var Root=document.documentElement; var salt=30,T,Msg; function programa(){ escriu("Hola món"); } function demanaUnNombre(t1,t2){return parseInt(prompt(t1,t2));} function demanaUnText(t1,t2){return prompt(t1,t2);} function salta(){salt=salt+30;return salt;} function escriu(pat,x=30,y=salta()){ T=document.createElementNS(xmlns,"text"); T.setAttributeNS(null,"x",x); T.setAttributeNS(null,"y",y); Msg=document.createTextNode(pat); T.appendChild(Msg); Root.appendChild(T); } ]]></script> <rect onclick="programa()" x="10.5" rx="5" y="10.5" ry="5" width="80" fill="#edd" height="30" stroke="black"/> </svg> </syntaxhighlight> |} ===== Exercicis ===== {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" |- |colspan=2|1.- Modifica l'algoritme bàsic per fer que escrigui << Hola classe >>. |- |Feina: *Carregar l'arxiu que s'ha descarregat a l'ordinador "base.svg" amb el programa [https://texteditor.co/ "'''aquest editor text'''"] amb l'opció "open file...". *Buscar el lloc on es dona l'ordre d'escriure "Hola món" i fer el canvi per "Hola classe". *Posa un nom nou o sinó afegirà un número per no sobreescriure'l. *Guarda i obrir amb el navegador, per Chromebook s'ha de arrossegar l'arxiu de la carpeta al navegador i l'obre a l'instant. Ha funcionat? |} {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" |- |colspan=2|2.- Modifica l'algoritme bàsic per fer que demani i etiqueti dos nombres, i escrigui la suma d'etiquetes. |- | ::'''Nom''' del programa: operacioVostreNom.svg ::'''Diagrama''' del programa: operacioVostreNom.png |class="mw-collapsible mw-collapsed" data-expandtext="Pista" data-collapsetext="Ocultar"|<syntaxhighlight lang="javascript"> var a; var b; a=demanaUnNombre('Escriu el número a','0'); b=demanaUnNombre('Escriu el número b','0'); escriu("El valor de la operació és a*b = "+(a*b)); </syntaxhighlight> |} {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" class="mw-collapsible mw-collapsed" data-expandtext="Pista" data-collapsetext="Ocultar" |- |3.- Modifica l'algoritme bàsic per fer que demani dos nombres i dos cadenes de text, i tot seguit escrigui la suma dels dos primers i després la suma dels dos últims ordenadament. |- |<syntaxhighlight lang="javascript"> var a; var b; var c; var d; a=demanaUnNombre('Escriu un número','0'); b=demanaUnNombre('Escriu un número','0'); c=demanaUnText('Escriu una paraula','?'); d=demanaUnText('Escriu la segona paraula','?'); escriu("La multiplicació és ="+(a*b)); escriu("Les teves paraules encadenades són ="+d+c); </syntaxhighlight> |} {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" class="mw-collapsible mw-collapsed" data-expandtext="Pista" data-collapsetext="Ocultar" |- |4.- Modifica l'algoritme bàsic per escriure els nombres del 3 al 100 avançant de dos en dos, i finalment escrigui l'últim número on s'ha quedat. |- |<syntaxhighlight lang="javascript"> var x; x=0; for(;x<8;){ x=x+1; escriu(x); } escriu("El comptador ha arribat fins a "+x+" comptant de un en un");</syntaxhighlight> |} {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" class="mw-collapsible mw-collapsed" data-expandtext="Pista" data-collapsetext="Ocultar" |- |5.- Modifica l'algoritme bàsic per escriure els nombres del 4 al 50 de forma creixent i tot seguit de forma decreixent fins a -20. |- |<syntaxhighlight lang="javascript"> var x; x=0; for(;x<8;){ x=x+1; escriu(x); } for(;x>-3;){ x=x-1; escriu(x); } escriu("El comptador ha arribat fins a "+x+" comptant de un en un");</syntaxhighlight> |} ;Exercicis de divisibilitat Un nombre '''p''' és divisible per un altre nombre '''q''', matemàticament s'escriu '''q'''|'''p''', només si en fer la divisió '''p'''/'''q''' dona un nombre enter. Per tant quan es fa la divisió no dona decimals, és a dir, no hi ha residu i per tant '''residu=0'''. La instrucció per demanar el residu de la divisió '''p'''/'''q''' és '''p'''%'''q'''. {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" class="mw-collapsible mw-collapsed" data-expandtext="Pista" data-collapsetext="Ocultar" |- |1.- Modifica l'algoritme bàsic per determinar si és o no divisible per 3 el valor escrit. |- |<syntaxhighlight lang="javascript"> var x; var a; a=2; x=demanaUnNombre('Escriu un número','0'); if(x%a==0){ escriu("El número "+x+" és divisible per "+a); } else{ escriu("El número "+x+" no és divisible per "+a); } </syntaxhighlight> |} {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" class="mw-collapsible mw-collapsed" data-expandtext="Pista" data-collapsetext="Ocultar" |- |2.- Modifica l'algoritme bàsic per determinar el conjunt dels divisors de l'u al 1000 del valor escrit per consola. |- |<syntaxhighlight lang="javascript"> var x; var a; var llista; a=1; llista="{ "; x=demanaUnNombre('Escriu un número','0'); for(;a<10;){ if(x%a==0){ llista=llista+a; a=a+1; for(;a<10;){ if(x%a==0){ llista=llista+", "+a; } a=a+1; } } } llista=llista+" }"; escriu("El número "+x+" és divisible pels valors del conjunt "+llista); </syntaxhighlight> |} ;Exercicis de funcions Concepte matemàtic de funció és suficient per saber interpretar les diferents metàfores que es fan arreu. {| |Direm funció a qualsevol aplicació de un conjunt D en <math>\mathbb{R},</math> llavors per qualsevol element de D li correspon un únic element de <math>\mathbb{R}.</math> |- |align="center"|<math> \begin{array}{rrcl} f : & D & \longrightarrow & \mathbb{R} \\ & x & \mapsto & y = f(x) \end{array} </math> |} {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" class="mw-collapsible mw-collapsed" data-expandtext="Codi del programa" data-collapsetext="Ocultar" |- |1.- Feu el diagrama de flux del programa donat que intenta representar la paràbola donada per la funció <math>f(x)=\frac{x^2}{70}.</math> |- |<syntaxhighlight lang="javascript" line highlight="14,17"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000" height="1000" onload="programa(evt)"> <script><![CDATA[ var xmlns="http://www.w3.org/2000/svg"; var Root=document.documentElement; function programa(evt){ C=document.getElementById("camino"); var x; var y; var d1=0; var d2=200; var p=10; var linia="M"; x=d1; y=x*x/70; linia=linia+x+","+y; for(x=d1;x<=d2;x=x+p){ y=x*x/70; linia=linia+"L"+x+","+y; } C.setAttribute("d",linia); } ]]></script> <path id="camino" d="M" fill="none" stroke-width="0.2" stroke="black"/> </svg> </syntaxhighlight> |} '''Exemples''': {|width=100% style="border: 1px solid #77d; background:#f8f8ff" cellpadding="5" cellspacing="0" |- |valign="top" width=50% style="border: 1px solid #77d; background:#f8f8ff"| {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" class="mw-collapsible mw-collapsed" data-expandtext="Explicació" data-collapsetext="Ocultar" |- |1) Sumador de 2 en 2 i s'atura en sobrepassar 50. |- |El procés s'inicia a '''Inici''', continua en un calaix d'ordres simples on tenim: *A=50, que vol dir que el valor 50 es guarda amb l'etiqueta '''A'''. S'ha afegit una fletxa didàctica supèrflua indicant el moviment del valor. *N=0, que vol dir que el valor 0 es guarda amb l'etiqueta '''N'''. És la forma típica amb la que s'inicia un comptador o sumador de valors. En finalitzar aquest calaix la fletxa ens porta a una disjuntiva amb la pregunta: ¿ És N més petit o igual que A ? *'''Cert''': llavors la fletxa de '''sí''' ens porta al calaix on: suma 2 al valor de '''N''' i aquesta suma es guarda a '''N''' on s'esborra el valor anterior i la fletxa ens porta novament a la disjuntiva. *'''Fals''': llavors la fletxa del '''no''' ens porta al calaix final destinat a escriure el número amb l'etiqueta '''N''' on finalment la fletxa finalitza a '''Fi'''. |} [[File:Diagrama flujo 002.svg|160px]] |valign="top" width=50% style="border: 1px solid #77d; background:#f8f8ff"| {|cellspacing="1" cellpadding="1" style="border: 1px solid #77d; background:#f8f8ff" width="100%" class="mw-collapsible mw-collapsed" data-expandtext="Explicació" data-collapsetext="Ocultar" |- |2) Escriptor una successió del zero fins a sobrepassar 50. |- |El procés s'inicia a '''Inici''', continua en un calaix d'ordres simples on tenim: *A=50, que vol dir que el valor 50 es guarda amb l'etiqueta '''A'''. S'ha afegit una fletxa didàctica supèrflua indicant el moviment del valor. *N=0, que vol dir que el valor 0 es guarda amb l'etiqueta '''N'''. És la forma típica amb la que s'inicia un comptador o sumador de valors. *t=" ", variable text d'un espai i s'etiqueta amb '''t'''. En finalitzar aquest calaix la fletxa ens porta a una disjuntiva amb la pregunta: ¿ És N més petit o igual que A ? *'''Cert''': llavors la fletxa de '''sí''' ens porta al calaix on: :* Concatena el valor de '''N''' a la llista de valors '''t'''. :* suma 1 al valor de '''N''' i aquesta suma es guarda a '''N''' on s'esborra el valor anterior i la fletxa ens porta novament a la disjuntiva. *'''Fals''': llavors la fletxa del '''no''' ens porta al calaix final destinat a: :* Posar un punt i final a la llista de nombres '''t'''. :* Escriure la llista de nombres acumulats a '''t'''. Finalment la fletxa finalitza a '''Fi'''. |} [[File:Diagrama flujo 001.svg|190px]] |} Activitats per construir un diagrama de flux: 1) Dibuixa un diagrama lineal que: * Guardi 50 amb la etiqueta '''A'''. * Guardi 23.7 amb la etiqueta '''B'''. * Guardi la suma de les dues etiquetes amb la etiqueta '''S'''. :Finalment escriu la etiqueta '''S''' per pantalla. 3) Dibuixa un diagrama lineal que: * Guardi 3 amb la etiqueta '''R'''. * Guardi el doble de la etiqueta '''R''' amb la etiqueta '''T'''. * Guardi la etiqueta '''T''' més una unitat amb la etiqueta '''T'''. :Finalment escriu la etiqueta '''T''' per pantalla. 4) Dibuixa un diagrama que: * Guardi un número dins la etiqueta '''A'''. * Pregunti si '''A''' es més petit que 3. :* En cas de ser cert escriu '''A'''<3. :* En cas de ser fals escriu '''A'''>=3. :Finalment finalitza el programa. === Projecte === Mostra 1.- Esbrina què fa el programa. <syntaxhighlight lang="javascript"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" onload="startup()" onmousemove="moure(evt)" onmouseup="apaga(evt)"> <script><![CDATA[ var x=0; function startup(){ C=document.getElementById("C"); } function moure(evt){ if(x==1){ C.setAttributeNS(null,"cx",evt.pageX); C.setAttributeNS(null,"cy",evt.pageY); } } function mouMe(evt){ x=1; } function apaga(evt){ x=0; } ]]></script> <circle cx="60" cy="60" r="40" fill="white" stroke="black" stroke-width="3"/> <circle id="C" onmousedown="mouMe(evt)" cx="60" cy="60" r="22" fill="darkgrey" opacity="0.7" stroke="lightgrey" stroke-width="8"/> </svg> </syntaxhighlight> Mostra 2.-Esbrina què fa el programa i feu que escrigui els quadrats per verificar el teorema de Pitàgores. <syntaxhighlight lang="javascript"><svg width="1500" height="1500" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="startup(evt)"> <script><![CDATA[ var xmlns="http://www.w3.org/2000/svg"; var Root=document.documentElement; var C; var CC; var H; var a,b,c; var sl=0; function startup(evt){ C=document.getElementById("catet1"); CC=document.getElementById("catet2"); H=document.getElementById("hipot"); } function demanaUnNombre(t1,t2){return parseInt(prompt(t1,t2));} function demanaUnText(t1,t2){return prompt(t1,t2);} function cat1(evt){ a=demanaUnNombre("Catet 1","0"); C.firstChild.nodeValue=a; } function cat2(evt){ b=demanaUnNombre("Catet 2","0"); CC.firstChild.nodeValue=b; } function hipo(evt){ c=demanaUnNombre("Hipotenusa","0"); H.firstChild.nodeValue=c; } function prova(){ if(a*a+b*b-c*c==0){ escriu("Sí"); } else{ escriu("NO"); } } function escriu(pat){ T=document.createElementNS(xmlns,"text"); T.setAttributeNS(null,"x",100); T.setAttributeNS(null,"y",20+sl);sl=sl+22; T.setAttributeNS(null,"font-size","20pt"); Msg=document.createTextNode(pat); T.appendChild(Msg); Root.appendChild(T); } ]]></script> <g transform="translate(0.5,0.5)"> <g onmousedown="cat1(evt)"> <path d="M-2,60v-30h30v30z" stroke="#ccf" fill="#fcc" opacity="0.1"/> <text id="catet1" x="6" y="48" font-size="9">C1</text> </g> <g onmousedown="cat2(evt)"> <path d="M32,28v-30h30v30z" stroke="#ccf" fill="#fcc" opacity="0.1"/> <text id="catet2" x="42" y="13" font-size="9">C2</text> </g> <g onmousedown="hipo(evt)"> <path d="M44,66v-30h30v30z" stroke="#ccf" fill="#fcc" opacity="0.1"/> <text id="hipot" x="55" y="53" font-size="9">H</text> </g> <path onmousedown="prova()" d="M20,70v-50h60zM20,20h7v7h-7z" stroke="#000" fill="#ffd"/> </g> </svg> </syntaxhighlight> ==== Categoria lliçó ==== [[Category:Matemàtiques de tercer d'ESO]] [[Category:CA]] k864qq1lgev66tmui2r1xd2dliftk3e Kreheľ (pomenovanie) 0 52739 383804 378378 2026-04-11T10:11:01Z Dušan Kreheľ 45022 /* Významy */ + obsah 383804 wikitext text/x-wiki == Varianty mien == * Krehel * Kreheli * Krehelij * Krechiv * Krechov == Etymológia == *Zložené slovo: ''Kreh''+''eľ''. === Kreh === Odvodené z praindouropského ''*krewh₂'' („krv mimo tela (povrchová krv)“,<ref>[[:wikt:en:Reconstruction:Proto-Slavic/krъxa|*krъxa]]</ref>) z praslovanského ''*krъxa'' (krїcha) znamenajúc ''hrudka''/''kúsok'',<ref>[[:wikt:en:Reconstruction:Proto-Slavic/krъxa|*krъxa]]</ref> súvisiaci s praslovanským ''*krъxa'' (''krehký'', ''fragilný'').<ref>[[:wikt:en:Reconstruction:Reconstruction:Proto-Slavic/krъxa|*krъxa]]</ref> Mimo slovanských jazykov došlo k zmene ''chr-'' na ''kr-''.<ref>{{Cite web | last = Eichler | first = Ernst | title = Slovanské prvky v bývalém německém nářečí města Mimon | url = http://nase-rec.ujc.cas.cz/archiv.php?art=5078 | access-date = 2025-05-15 }}</ref> === -eľ === Z praslovančiny *-ьlъ (prvá význam: „Z prídavných mien alebo príčastí tvoria podstatné mená (zvyčajne zvieratá alebo rastliny)“, druhý význam: „Zo základných koreňov alebo slovies tvorí nástrojové podstatné mená“).<ref>[[:wikt:en:Reconstruction:Proto-Slavic/-ьlъ|Proto-Slavic/-ьlъ]] (po anglicky)</ref> == Významy == Významy (môžu sa vzájomne prelínať): * '''kus(ky)''':<ref>poľsky [[:wikt:pl:kręgiel|kręgiel]] – bowlingová guľa</ref> ** podobné slová: krehký, kryha, krach; ** ''kreheľ'' – v šarišskom nárečí označuje predmet (napr. pri hre), ktorý je určený k spadnutiu,<ref>Slovník slovenských nárečí. I. A – K. Ved. red. I. Ripka. Bratislava: Veda 1994. 936 s. ISBN 80-224-0183-8; heslo [https://slovnik.juls.savba.sk/?w=Krehe%C4%BE kreheľ]</ref> ** český [[:w:cs:Krecht|krecht]], ** chorvátsky ''krhati'',<ref>https://hjp.znanje.hr/index.php?show=search_by_id&id=elhlXRg%3D</ref> *'''slivka''': ** slovinský ''krehelj'',<ref>hrsg. auf Kosten des Hochwürdigsten Herrn Fürstbischofs von Laibach, Anton Alois Wolf ... von M. Cigale: [https://www.digitale-sammlungen.de/de/view/bsb10810722?q=krehel&page=916,917 Deutsch-slovenisches Wörterbuch. 1: 1, A - L]; Laibach : Blasnik, 1860</ref> ** '''kréhelj''', hlja = kreha – ''slovenský'' [[:w:sk:Slivka guľatoplodá ringlotová|slivka guľatoplodá ringlotová]],<ref name="v1894">M. Pletešnik, Slovensko-nemški Slovar, strana 462 ([https://archive.org/stream/slovenskonemkisl01pletuoft#page/462/ online])</ref> * '''sviňa''': ** slovinsky '''krę́helj''', hlja – ''slovensky'' [[:w:sk:Sviňa|sviňa (zviera)]],<ref name="v1894"/> * '''vydáva zvuk''':<ref>aachenská nemčína [https://archive.org/details/dictionnairedt00scheuoft/page/130/mode/2up?q=CR%C3%89CELLE kreckel] – [[:w:sk:Cvrčkovití|cvrček]]</ref><ref>anglické ''[https://www.ancestry.com/name-origin?surname=kreh Krah]'' s nemeckým pôvodom </ref><ref>slovinský [https://archive.org/details/slovenskonemkisl01pletuoft/page/462/mode/2up kreh*]</ref><ref>nemecky [https://slovnik.aktuality.sk/preklad/nemecko-slovensky/?q=kr%C3%A4hen krähen] – vrana</ref><ref>nemecký [https://slovnik.aktuality.sk/preklad/nemecko-slovensky/?q=Kr%C3%A4he vrana]</ref><ref>ukrajinský [[:uk:w:Крех|potápač]] (zvierací rod)</ref> ** podobné slová: krochká, kričí, kráča, chrápe; ** porovnaj: *** kréheljc – po slovensky káčer [[:w:sk:Kačica chrapka|kačice chrapky]]<ref>Slovar slovenskega knjižnega jezika, druga, dopolnjena in deloma prenovljena izdaja, www.fran.si, dostop 27. 12. 2020. ([https://fran.si/133/sskj2-slovar-slovenskega-knjiznega-jezika-2/4488655/kreheljc# online])</ref> *** Krähe – po nemecký ''vrana''.<ref>https://slovnik.aktuality.sk/preklad/nemecko-slovensky/?q=Kr%C3%A4he</ref> *** krähen – po nemecký ''krákať''.<ref>https://slovnik.aktuality.sk/preklad/nemecko-slovensky/?q=kr%C3%A4hen</ref> * '''česať''' (hrebeň) alebo <ref>[[:wikt:en:kreh#Albanian|kreh]] (po anglicky)</ref> '''hrabať''' (zem).<ref>[[:wikt:en:krehër#Albanian|krehër]] (po anglicky)</ref> Termín je odvedený alebo príbuzný od slova '''kráľ''' resp. jeho roly alebo jeho koruny (na hlave). == Referencie == [[Category:SK]] [[Category:SK/Etymológia]] lxuao87ybkg6vi3tdsrfg6ml46opfuj Hnutie Wikipédie na Slovensku 0 53426 383802 383416 2026-04-11T01:37:59Z Dušan Kreheľ 45022 + obsah 383802 wikitext text/x-wiki Vítaj v [[:m:Wikimedia_movement/sk|Hnutí Wikimédie]], týmto listom by som Ti chcel povedať pár slov k používaniu projektov [[:w:sk:Wikimedia Foundation|Nadácie wikimédie]] (ďalej WMF). Najznámejším z nich, čo sa týka Slovenska, je najskôr [[:w:sk|Slovenska Wikipédia]]. V skutočnosti je to len jeden z viacerých projektov, ktoré zastrešuje [[:w:sk:Šablóna:Sesterské projekty|viac projektov]]. {{Upozornenie|V slovenskom priestore sa často „zabúda“, že sú aj iné projekt ako Slovenská Wikipédie. A tam by mohlo byť vhodnejšie niekedy prispievať.}} Ako hlavná idea projektov WMF je dobrý nápad. == Prvé prispievanie == Ak začínaš prispievať, tak vhodne je miesto vytvárania nových článkov začať skôr upravovať existujúce články (typografia, pridávanie referencií) alebo také články obsahovo rozširovať. Ak sa rozhodneš prispievať, zváž aj svoje schopnosti: *spisovná slovenčina,<ref group="Pozn.">Spisovnú slovenčinu môžu kaziť vplyvy ako je ovládanie aj nárečia alebo cudzích jazykov, veľkosť slovnej zásoby alebo taká lenivosť ako je písanie bez diakritických znamienok.</ref> *typografia, *osobnostné vlastnosti: ** tímové prispôsobenie, ** učenie sa, ** vytrvalosť. ** dôslednosť. S použitím umelej inteligencie to už nemusí byť tak náročné (štylizácie, preklad). {{Upozornenie|Projekt Wikipédie nie je pre každého. Niekto radšej píše „eseje“, niekto radšej zhromažďuje dáta, …}} == Vytvoriť účet alebo nie? == Pred prispievaním zváž, či si vytvoríš osobný účet alebo nie. Na výber máš tri možnosti: * nevytvoriť, * vytvoriť: ** s vlastným menom, ** s prezývkou. Najvhodnejšie je si vytvoriť profil. === Anonymné prispievanie === Pri anonymnom prispievaní môžu nastáť problémy, že kto prispieva. Ak vieme, kto prispieva, vieme ho kedykoľvek identifikovať. === S účtom === Ak máme vytvorení účet, vedia nás kedykoľvek identifikovať. Teda vedia ako prispievame a čo môžu od nás očakávať. Môžu nás upozorniť a ľahko skontaktovať, ak majú nejaké výhrady. Ak niekto prispieva pravidelne, tak je zároveň férové, mať aj vytvorený účet. === Nevýhody účtu === Aj keď z pohľadu manažmentu je vhodné, aby prispievatelia mali účet, pre používateľa to môže prináša aj nevýhody. Napr. taká diskusia používateľa môže mať charakteristiku, že je to „kronika chýb“. Vedieť identifikovať úpravy a príspevky používateľa môže vo výsledku u iných vzbudzovať nespokojnosť alebo nesúhlas s ním, a pre používateľa to nemusí byť „prospešne“. {{Upozornenie|Kto nič nerobí, nič nepokazí. — Chceme bezchybných a dokonalých ľudí („snívanie?“), ale ľudia sa v čase vyvíjajú a formujú.}} Na slovenskej Wikipédie je možné pozorovať, že nejaký stály prispievateľ (alebo prispievatelia) prispievajú bez účtu. == Nový článok/preklad == Na Wikipédie sa schválilo pravidlo [[:w:sk:Pomoc:Minimálny článok|Pomoc:Minimálny článok]]. Dodržiavanie toho sa vyžaduje pri písaný nových článkov alebo prekladov. Ak to nemieniš dodržať, tak nebuď prekvapený, že článok bude zamietnutý. A nepomôže Ti, že iné článku (ktoré tam už nejaký čas existujú) to nedodržiavajú. Daj si pozor na významnosť. Na Wikipédie sú tieto pravidla v praktickom podaní dosť voľne, takže dosť záleží na posúdení iných (najmä správcov). Úplne bežným štandardom je, že ak je správca nespokojný, tak najmä u nových článkov volí „rýchle mazanie“. V takom prípade komunita nehlasuje. Ak by tvoju prácu zmazali a ty o ňu nechceš prísť, tak existuje možnosť obnoviť tvoju stránku do tvojho stránkového používateľského priestoru. Ak rád zdieľaš informácie a dať ten obsah na Wikipédiu by mohol byť problém (vlastný výskum, lokálny význam), zváž či nebude vhodnejšie umiestniť svoj obsah na iný projekt, napr. na Wikiversitu alebo na Wikicesty (všetky [[:w:sk:Šablóna:Sesterské projekty|hosťujúce projekty]]. Slovensku Wikipédiu sa dá chápať, mimo odborných termínov a pojmov, ako skôr historickú slovenskú (jazykovú alebo národnú) Wikipédiu. Takže témy, ktoré sa rozsahovo dosť úzko týkajú nejakého mesta a majú slabý národný presah môžu byť adeptmi na zmazanie. == Správcovia == * Sú volení komunitou a prakticky od začiatku už majú doživotným mandátom. Aj keď pracujú s ľuďmi, tak nijako nie sú nijako formovaná (psychológia, sociológia alebo vyhorenie). Robia to voľnom čase. Jednou ich úlohou je chrániť projekt pred vandalskými zmenami. Takže ich dianie môže ovplyvňovať na vnímania sveta na dve póly ''je – nie je'' alebo ''dobrý – zlý''. Všeobecný prehľad, vedomosti, skúsenosti môžu spôsobovať slabú alebo málopočetnú „strednú vrstvu“ skúsených používateľov (najmä u malej wiki). Bremenom pre „slabo-skúseného“ môže by „nepísané pravidla“. Taký používateľ tiež nemusí mať prehľad niekto o odporúčacích pravidiel dohodnutých niekde v nejakej diskusie. Vhodné preto je teda začať prispievať tak, že niečo rozširujem ako sa snažím vytvárať nový článok. Čo sa týka pravidiel, tak správcovia majú silný mandát. Môže ťa kedykoľvek zabánovať.{{Upozornenie|Vhodne by bolo, aby trvalý bán mohli udeľovať iba 2 správcovia, sám jeden môže dať iba časovo limitovaný.}} Pravidla sú definované najmä aspektom funkčnosti najmä pre stranu správcu. Takže je jedno ako formou (napr. výberom slov) uplatňuje nejaký úkon, tak podľa pravidiel si nespokojný zaťať zuby a ignorovať. V tom prípade to proste nebrať tak vážne; ber, že si aspoň skúsil alebo povznes sa cez „nechaj ,deti‘ sa hrať“, či prispeješ do projektu alebo nie, tak svet sa „nezrúti“. A má vyznám, ísť proti niekomu, ak si chtiac-nechtiac vytvorí sám správca svoju sub-komunitu. Takže si daj nováčik pozor, ako sa zapíšeš u správcov. Ber, že správcovia istým spôsobom ťahajú za krajší koniec, nakoľko kvôli otvorenosti (ktokoľvek si môže vytvoriť účet alebo každý môže prispieť), takže ľahko môže robiť „neporiadok“ a to môže trochu aj smutne ladiť správcov. {{Upozornenie|Každý môže prispieť, ale nie každého zmena aj zostane.}} == Bot == Ak sa rozhodneš pracovať s [[:w:sk:Wikipédia:Bot botmi]], vyber si dobrý softvér. Oficiálne neexistuje žiadna oficiálna implementácia bota (v prípade že chceš použiť už nejakú implementáciu) alebo oficiálny dokument popisujúci aktuálny štandard wiki syntaxe používanej na wikipédiách (vrátane rozšírení). Za chyby spôsobené činnosťou bota zodpovedá autor. == Stretnutia Slovenskej komunity == Niekoľko rokov to nebolo žiadne (2018 – 2023) ale poslednú dobu sa to trocha zlepšilo. V rokoch 2024 a 2025 sa uskutočnilo po jednej akcie. ([[:w:sk:Wikipédia:Stretnutia|Viac]]) == Poznámky == <references group="Pozn."/> [[Category:SK]] r1hshelz02fiqq3duc8ow52ihp3a77u User:Diyakannan098 2 55519 383803 2026-04-11T04:40:17Z Diyakannan098 55418 Tamil Jathagam is a Vedic astrology birth chart based on a person’s birth details. It uses elements like Lagna, Rasi, and Nakshatra to understand life patterns and predict events. It is widely used for marriage matching and life guidance, now easily available through online tools. 383803 wikitext text/x-wiki '''Vedic Astrology — Tamil Jathagam Basics''' Tamil Jathagam, also known as a birth chart in Vedic astrology, is a traditional method used to understand an individual’s life path based on planetary positions at the time of birth. It is widely practiced in South India, especially in Tamil culture, where astrology plays an important role in major life decisions such as marriage, career, education, and health. A Tamil Jathagam is prepared using three key details: date of birth, exact time of birth, and place of birth. These inputs are used to calculate the position of celestial bodies like the Sun, Moon, and other planets within the twelve zodiac signs (Rasi) and twelve houses (Bhava). Each house represents different aspects of life, such as personality, wealth, relationships, and profession. One of the most important components of a Jathagam is the Lagna (Ascendant), which is the zodiac sign rising on the eastern horizon at the time of birth. It forms the foundation of the chart and determines how the rest of the houses are arranged. Another crucial factor is the Nakshatra (birth star), which provides deeper insights into a person’s nature, behavior, and emotional tendencies. Tamil astrology also emphasizes the study of planetary periods (Dasha system), particularly the Vimshottari Dasha. This system helps astrologers predict the timing of major life events by analyzing the influence of different planets over specific periods. By understanding these cycles, one can gain clarity about opportunities and challenges in life. Traditionally, Jathagam charts were prepared manually by experienced astrologers using mathematical calculations and almanacs (Panchangam). However, with the advancement of technology, many digital tools now generate Tamil Jathagam charts efficiently while following traditional principles. Tamil Jathagam is also commonly used for compatibility matching, especially in arranged marriages. Factors like Porutham (matching criteria) are analyzed between two charts to assess harmony and long-term compatibility. dlep3l2dt7s3u7wl4zy1750xwe90jb1