Komputeralgebra Rendszerek

Hasonló dokumentumok
Komputeralgebra rendszerek

Komputeralgebra rendszerek

Komputeralgebra Rendszerek

Komputeralgebra Rendszerek

Java II. I A Java programozási nyelv alapelemei

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Komputeralgebra Rendszerek

Komputeralgebra Rendszerek

Lekérdezések az SQL SELECT utasítással

Komputeralgebra Rendszerek

Kifejezések. Kozsik Tamás. December 11, 2016

Komputeralgebra Rendszerek

Komputeralgebra Rendszerek

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Komputeralgebrai Algoritmusok

Szkriptnyelvek. 1. UNIX shell

BASH script programozás II. Vezérlési szerkezetek

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Java II. I A Java programozási nyelv alapelemei

Az R nyelv. Jeszenszky Péter Debreceni Egyetem, Informatikai Kar június 12.

A C# programozási nyelv alapjai

Programok értelmezése

Lekérdezések az SQL-ben 1.rész

Kifejezések. Kozsik Tamás. December 11, 2016

Komputeralgebra Rendszerek

Lekérdezések az SQL-ben 1.rész

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

Lekérdezések az SQL SELECT utasítással. Copyright 2004, Oracle. All rights reserved.

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Komputeralgebra rendszerek

Forráskód formázási szabályok

Feladat Nézzük meg a súgóban (help és doc) a sin parancs használatáról olvasható információt! Próbáljuk ki a kirajzoltató utasítást.

Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás

Készítette: Nagy Tibor István

Vektorok. Octave: alapok. A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István

Házi feladatok megoldása. Nyelvek használata adatszerkezetek, képek leírására

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér

Feladat Nézzük meg a súgóban (help és doc) a sin parancs használatáról olvasható információt! Próbáljuk ki a kirajzoltató utasítást.

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli. A versenyzők figyelmébe:

SZÁMÍTÁSOK A TÁBLÁZATBAN

LEGO robotok. XII. rész

Relációs algebra 1.rész alapok

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek

Diszkrét matematika 1. estis képzés

Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26

Occam 1. Készítette: Szabó Éva

Formális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar

Logika es sz am ıt aselm elet I. r esz Logika Harmadik el oad as 1/33

2018, Diszkrét matematika

Hálózatok építése és üzemeltetése

Elsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1

Komputeralgebra rendszerek

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Maple. Maple. Dr. Tóth László egyetemi docens Pécsi Tudományegyetem, 2007

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Kiterjesztések sek szemantikája

PYTHON. Avagy hosszú az út a BioPythonig

5.3. Logika a relációkhoz

FUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Programozás alapjai. 5. előadás

2018, Funkcionális programozás

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

2016, Funkcionális programozás

AWK programozás Bevezetés

Rekurzió. Dr. Iványi Péter

A legfontosabb DOS parancsok

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Oktatási segédlet 2014

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás

Elsőrendű logika. Mesterséges intelligencia március 28.

1. Egészítsük ki az alábbi Python függvényt úgy, hogy a függvény meghatározza, egy listába, az első n szám faktoriális értékét:

Szoftvertechnológia alapjai Java előadások

2018, Diszkre t matematika. 10. elo ada s

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek II. 4. előadás Dr. Bécsi Tamás

OOP #14 (referencia-elv)

Operációs Rendszerek II. labor. 2. alkalom

Excel 2010 függvények

Absztrakt adattípus - algebrai specifikáció - Lists (paraméteres) module imports end exports parameters variables sorts operations equations

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

Szerver oldali Java programozás /II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése.

Információs rendszerek elméleti alapjai. Információelmélet

Microsoft Excel 2010

Számítógépes Modellezés 3. Limesz, Derivált, Integrál. Direkt (normál) értékadás (=) p legyen a 6. Chebysev polinom.

GYAKORLATIAS JAVA MINTA

Maple: Bevezetés. A Maple alapjai

A számok kiíratásának formátuma

Adatok szűrése, rendezése

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Átírás:

Komputeralgebra Rendszerek Konstansok, változók, típusok Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék 2015. február 24. TARTALOMJEGYZÉK 1 of 110

TARTALOMJEGYZÉK I 1 TARTALOMJEGYZÉK 2 Nevek kezelése Nevek a MAPLE -ben Alapvető információk Speciális karakterek Nevek levédése Nevek a SAGE -ben 3 Szimbolikus konstansok kezelése A konstansok a MAPLE ban A konstansok a SAGE -ben 4 Változók A MAPLE változói Változók fajtái Egyenlőség, egyenlet, értékadás Indexelt nevek Konkatenált nevek On-line Help a névkezeléshez A SAGE változó-kezelése 5 Kifejezések kiértékelése TARTALOMJEGYZÉK 2 of 110

TARTALOMJEGYZÉK II Kiértékelés a MAPLE -ben Teljes kiértékelés Kiértékelési trükkök Speciális szimbólumok Kiértékelés a SAGE -ben 6 Adattípusok kezelése Adattípusok kezelése a MAPLE -ben Surface és nested Attribútumok Matematikai feltételek Típuskezelés a SAGE -ben A SAGE hozzáállása 7 Matematikai feltételek 8 További példák TARTALOMJEGYZÉK 3 of 110

Nevek kezelése 4 of 110 ALAPVETŐ INFORMÁCIÓK MAPLE terminológia: változó,konstans név (name). Majdnem minden karaktersorozat lehet. Célszerű betartani: betűvel vagy aláhúzással kezdődik, tetszőleges számú, betű, számjegy, aláhúzás követheti

Nevek kezelése 5 of 110 ALAPVETŐ INFORMÁCIÓK MAPLE terminológia: változó,konstans név (name). Majdnem minden karaktersorozat lehet. Célszerű betartani: betűvel vagy aláhúzással kezdődik, tetszőleges számú, betű, számjegy, aláhúzás követheti kisbetű/nagybetű érzékeny

Nevek kezelése 6 of 110 ALAPVETŐ INFORMÁCIÓK MAPLE terminológia: változó,konstans név (name). Majdnem minden karaktersorozat lehet. Célszerű betartani: betűvel vagy aláhúzással kezdődik, tetszőleges számú, betű, számjegy, aláhúzás követheti kisbetű/nagybetű érzékeny Kerülendő dolgok

Nevek kezelése 7 of 110 ALAPVETŐ INFORMÁCIÓK MAPLE terminológia: változó,konstans név (name). Majdnem minden karaktersorozat lehet. Célszerű betartani: betűvel vagy aláhúzással kezdődik, tetszőleges számú, betű, számjegy, aláhúzás követheti kisbetű/nagybetű érzékeny Kerülendő dolgok Az _Z típusú változók speciális belső változók

Nevek kezelése 8 of 110 ALAPVETŐ INFORMÁCIÓK MAPLE terminológia: változó,konstans név (name). Majdnem minden karaktersorozat lehet. Célszerű betartani: betűvel vagy aláhúzással kezdődik, tetszőleges számú, betű, számjegy, aláhúzás követheti kisbetű/nagybetű érzékeny Kerülendő dolgok Az _Z típusú változók speciális belső változók A kulcsszavak:?keywords

Nevek kezelése 9 of 110 ALAPVETŐ INFORMÁCIÓK MAPLE terminológia: változó,konstans név (name). Majdnem minden karaktersorozat lehet. Célszerű betartani: betűvel vagy aláhúzással kezdődik, tetszőleges számú, betű, számjegy, aláhúzás követheti kisbetű/nagybetű érzékeny Kerülendő dolgok Az _Z típusú változók speciális belső változók A kulcsszavak:?keywords A kezdetben ismert nevek:?ininames

Nevek kezelése 10 of 110 ALAPVETŐ INFORMÁCIÓK MAPLE terminológia: változó,konstans név (name). Majdnem minden karaktersorozat lehet. Célszerű betartani: betűvel vagy aláhúzással kezdődik, tetszőleges számú, betű, számjegy, aláhúzás követheti kisbetű/nagybetű érzékeny Kerülendő dolgok Az _Z típusú változók speciális belső változók A kulcsszavak:?keywords A kezdetben ismert nevek:?ininames A kezdetben ismert függvénynevek:?inifcn

Nevek kezelése 11 of 110 SPECIÁLIS KARAKTEREK A görög ábécé

Nevek kezelése 12 of 110 SPECIÁLIS KARAKTEREK A görög ábécé Kisbetűk: alpha, beta,...

Nevek kezelése 13 of 110 SPECIÁLIS KARAKTEREK A görög ábécé Kisbetűk: alpha, beta,... nagybetűk: Alpha, Beta

Nevek kezelése 14 of 110 SPECIÁLIS KARAKTEREK A görög ábécé Kisbetűk: alpha, beta,... nagybetűk: Alpha, Beta Vigyázat: Pi, pi, PI

Nevek kezelése 15 of 110 SPECIÁLIS KARAKTEREK A görög ábécé Kisbetűk: alpha, beta,... nagybetűk: Alpha, Beta Vigyázat: Pi, pi, PI Kivételek: CHI, ZETA

Nevek kezelése 16 of 110 SPECIÁLIS KARAKTEREK A görög ábécé Kisbetűk: alpha, beta,... nagybetűk: Alpha, Beta Vigyázat: Pi, pi, PI Kivételek: CHI, ZETA GAMMA függvény

Nevek kezelése 17 of 110 SPECIÁLIS KARAKTEREK A görög ábécé Kisbetűk: alpha, beta,... nagybetűk: Alpha, Beta Vigyázat: Pi, pi, PI Kivételek: CHI, ZETA GAMMA függvény Nem értéket, csak más írásformát jelent!

Nevek kezelése 18 of 110 SPECIÁLIS KARAKTEREK A görög ábécé Kisbetűk: alpha, beta,... nagybetűk: Alpha, Beta Vigyázat: Pi, pi, PI Kivételek: CHI, ZETA GAMMA függvény Nem értéket, csak más írásformát jelent! Egzotikus nevek A... idézőjelek között lévő név tartalmazhat lényegében minden karaktert. Nagymértékben megnehezíti a kód olvashatóságát. A MAPLE sok belső függvénye ilyen, például a simplify/ tipusú mögöttes függvények.

Nevek kezelése 19 of 110 NEVEK LEVÉDÉSE A protect utasítás A konstansok értéke védett, nem működik Pi := 3.14

Nevek kezelése 20 of 110 NEVEK LEVÉDÉSE A protect utasítás A konstansok értéke védett, nem működik Pi := 3.14 protect(...), unprotect(...)

Nevek kezelése 21 of 110 NEVEK LEVÉDÉSE A protect utasítás A konstansok értéke védett, nem működik Pi := 3.14 protect(...), unprotect(...) macro(név=kif)

Nevek kezelése 22 of 110 NEVEK LEVÉDÉSE A protect utasítás A konstansok értéke védett, nem működik Pi := 3.14 protect(...), unprotect(...) macro(név=kif) Példa protect( e ): macro(e=exp(1)):

Nevek kezelése 23 of 110 NEVEK A SAGE -BEN A SAGE -ben a változókat az x kivételével kötelező a var kulcsszóval definiálni Ez felülírható a automatic_names(true) utasítással.

Nevek kezelése 24 of 110 NEVEK A SAGE -BEN A SAGE -ben a változókat az x kivételével kötelező a var kulcsszóval definiálni Ez felülírható a automatic_names(true) utasítással. kisbetű/nagybetű érzékeny

Nevek kezelése 25 of 110 NEVEK A SAGE -BEN A SAGE -ben a változókat az x kivételével kötelező a var kulcsszóval definiálni Ez felülírható a automatic_names(true) utasítással. kisbetű/nagybetű érzékeny A változónév a szokásos: betűvel vagy aláhúzással kezdődő alfanumerikus (aláhúzás is) karaktersorozat.

Nevek kezelése 26 of 110 NEVEK A SAGE -BEN A SAGE -ben a változókat az x kivételével kötelező a var kulcsszóval definiálni Ez felülírható a automatic_names(true) utasítással. kisbetű/nagybetű érzékeny A változónév a szokásos: betűvel vagy aláhúzással kezdődő alfanumerikus (aláhúzás is) karaktersorozat. Kerülendő a dupla aláhúzással kezdődő név

Nevek kezelése 27 of 110 NEVEK A SAGE -BEN A SAGE -ben a változókat az x kivételével kötelező a var kulcsszóval definiálni Ez felülírható a automatic_names(true) utasítással. kisbetű/nagybetű érzékeny A változónév a szokásos: betűvel vagy aláhúzással kezdődő alfanumerikus (aláhúzás is) karaktersorozat. Kerülendő a dupla aláhúzással kezdődő név Majdnem minden felülírható!

Szimbolikus konstansok kezelése 28 of 110 A MAPLE KONSTANSAI A MAPLE konstansai

Szimbolikus konstansok kezelése 29 of 110 A MAPLE KONSTANSAI A MAPLE konstansai π, MAPLE -ben: Pi; az e-szám: exp(1)

Szimbolikus konstansok kezelése 30 of 110 A MAPLE KONSTANSAI A MAPLE konstansai π, MAPLE -ben: Pi; az e-szám: exp(1) Logikai értékek: true, false, FAIL

Szimbolikus konstansok kezelése 31 of 110 A MAPLE KONSTANSAI A MAPLE konstansai π, MAPLE -ben: Pi; az e-szám: exp(1) Logikai értékek: true, false, FAIL : infinity, azaz végtelen; előjeles

Szimbolikus konstansok kezelése 32 of 110 A MAPLE KONSTANSAI A MAPLE konstansai π, MAPLE -ben: Pi; az e-szám: exp(1) Logikai értékek: true, false, FAIL : infinity, azaz végtelen; előjeles Az imaginárius egység: I; felülírható: interface(imaginaryunit=más)

Szimbolikus konstansok kezelése 33 of 110 A MAPLE KONSTANSAI A MAPLE konstansai π, MAPLE -ben: Pi; az e-szám: exp(1) Logikai értékek: true, false, FAIL : infinity, azaz végtelen; előjeles Az imaginárius egység: I; felülírható: interface(imaginaryunit=más) A Catalan konstans: C = ( 1) n /(2n + 1) 2 n=0

Szimbolikus konstansok kezelése 34 of 110 A MAPLE KONSTANSAI A MAPLE konstansai π, MAPLE -ben: Pi; az e-szám: exp(1) Logikai értékek: true, false, FAIL : infinity, azaz végtelen; előjeles Az imaginárius egység: I; felülírható: interface(imaginaryunit=más) A Catalan konstans: C = Euler Mascheroni konstans: ( 1) n /(2n + 1) 2 n=0 n γ = lim (( 1/k) ln(n)) n > k=1

Szimbolikus konstansok kezelése 35 of 110 A SAGE KONSTANSAI A Sage konstansai

Szimbolikus konstansok kezelése 36 of 110 A SAGE KONSTANSAI A Sage konstansai A π: Pi, pi és az az e-szám: E, e

Szimbolikus konstansok kezelése 37 of 110 A SAGE KONSTANSAI A Sage konstansai A π: Pi, pi és az az e-szám: E, e Logika értékek:true, True, false, False

Szimbolikus konstansok kezelése 38 of 110 A SAGE KONSTANSAI A Sage konstansai A π: Pi, pi és az az e-szám: E, e Logika értékek:true, True, false, False : Infinity, infinity előjelesen, vagy oo

Szimbolikus konstansok kezelése 39 of 110 A SAGE KONSTANSAI A Sage konstansai A π: Pi, pi és az az e-szám: E, e Logika értékek:true, True, false, False : Infinity, infinity előjelesen, vagy oo A 2 természetes logaritmusa: log2

Változók 40 of 110 VÁLTOZÓK FAJTÁI Szabad és kötött változók)

Változók 41 of 110 VÁLTOZÓK FAJTÁI Szabad és kötött változók) Szabad változók (unassigned variables) Azok a változók, melyeknek nincs értéke. (matematikai változók, matematikai szimbólumok, matematikai ismeretlenek, stb). Önmagát reprezentálja.

Változók 42 of 110 VÁLTOZÓK FAJTÁI Szabad és kötött változók) Szabad változók (unassigned variables) Azok a változók, melyeknek nincs értéke. (matematikai változók, matematikai szimbólumok, matematikai ismeretlenek, stb). Önmagát reprezentálja. Kötött változók (assigned variables) Értékkel rendelkező változók (programváltozók)

Változók 43 of 110 VÁLTOZÓK FAJTÁI Szabad és kötött változók) Szabad változók (unassigned variables) Azok a változók, melyeknek nincs értéke. (matematikai változók, matematikai szimbólumok, matematikai ismeretlenek, stb). Önmagát reprezentálja. Kötött változók (assigned variables) Értékkel rendelkező változók (programváltozók) Információ a változók állapotáról:

Változók 44 of 110 VÁLTOZÓK FAJTÁI Szabad és kötött változók) Szabad változók (unassigned variables) Azok a változók, melyeknek nincs értéke. (matematikai változók, matematikai szimbólumok, matematikai ismeretlenek, stb). Önmagát reprezentálja. Kötött változók (assigned variables) Értékkel rendelkező változók (programváltozók) Információ a változók állapotáról: anames a kötött változók nevei

Változók 45 of 110 VÁLTOZÓK FAJTÁI Szabad és kötött változók) Szabad változók (unassigned variables) Azok a változók, melyeknek nincs értéke. (matematikai változók, matematikai szimbólumok, matematikai ismeretlenek, stb). Önmagát reprezentálja. Kötött változók (assigned variables) Értékkel rendelkező változók (programváltozók) Információ a változók állapotáról: anames a kötött változók nevei unames a szabad változók nevei

Változók 46 of 110 VÁLTOZÓK FAJTÁI Szabad és kötött változók) Szabad változók (unassigned variables) Azok a változók, melyeknek nincs értéke. (matematikai változók, matematikai szimbólumok, matematikai ismeretlenek, stb). Önmagát reprezentálja. Kötött változók (assigned variables) Értékkel rendelkező változók (programváltozók) Információ a változók állapotáról: anames a kötött változók nevei unames a szabad változók nevei assigned van-e értéke a változónak?

Változók 47 of 110 EGYENLŐSÉG, EGYENLET, ÉRTÉKADÁS A := az értékadás, az = az egyenlet a:=b=2

Változók 48 of 110 EGYENLŐSÉG, EGYENLET, ÉRTÉKADÁS A := az értékadás, az = az egyenlet a:=b=2 Ha x szabad változó, hibás a x:=x+1 (interpreter módban)

Változók 49 of 110 EGYENLŐSÉG, EGYENLET, ÉRTÉKADÁS A := az értékadás, az = az egyenlet a:=b=2 Ha x szabad változó, hibás a x:=x+1 (interpreter módban) Érték visszavonása (unassign): x:= x (Avagy: restart).

Változók 50 of 110 EGYENLŐSÉG, EGYENLET, ÉRTÉKADÁS A := az értékadás, az = az egyenlet a:=b=2 Ha x szabad változó, hibás a x:=x+1 (interpreter módban) Érték visszavonása (unassign): x:= x (Avagy: restart). Indexelt változó érték visszavonása: evaln(...)

Változók 51 of 110 EGYENLŐSÉG, EGYENLET, ÉRTÉKADÁS A := az értékadás, az = az egyenlet a:=b=2 Ha x szabad változó, hibás a x:=x+1 (interpreter módban) Érték visszavonása (unassign): x:= x (Avagy: restart). Indexelt változó érték visszavonása: evaln(...) assign(name, expression) Kiértékeli az első argumentumot is

Változók 52 of 110 EGYENLŐSÉG, EGYENLET, ÉRTÉKADÁS A := az értékadás, az = az egyenlet a:=b=2 Ha x szabad változó, hibás a x:=x+1 (interpreter módban) Érték visszavonása (unassign): x:= x (Avagy: restart). Indexelt változó érték visszavonása: evaln(...) assign(name, expression) Kiértékeli az első argumentumot is unassign(...)

Változók 53 of 110 INDEXELT NEVEK Az x n típusú nevek megadására. 2D módban is bevihető: a név után _, majd az index

Változók 54 of 110 INDEXELT NEVEK Az x n típusú nevek megadására. 2D módban is bevihető: a név után _, majd az index x[n] típusú bevitel

Változók 55 of 110 INDEXELT NEVEK Az x n típusú nevek megadására. 2D módban is bevihető: a név után _, majd az index x[n] típusú bevitel x[n]

Változók 56 of 110 INDEXELT NEVEK Az x n típusú nevek megadására. 2D módban is bevihető: a név után _, majd az index x[n] típusú bevitel x[n] x[n][m]

Változók 57 of 110 INDEXELT NEVEK Az x n típusú nevek megadására. 2D módban is bevihető: a név után _, majd az index x[n] típusú bevitel x[n] x[n][m] x[n[m]]

Változók 58 of 110 INDEXELT NEVEK Az x n típusú nevek megadására. 2D módban is bevihető: a név után _, majd az index x[n] típusú bevitel x[n] x[n][m] x[n[m]] a név: header, az index: selector

Változók 59 of 110 KONKATENÁLT NEVEK var1 var2 A MAPLE a jobboldalt értékeli ki csak, a baloldalt névként kezeli. Alkalmazás: Véletlen polinomok generálása

Változók 60 of 110 KONKATENÁLT NEVEK var1 var2 A MAPLE a jobboldalt értékeli ki csak, a baloldalt névként kezeli. Alkalmazás: Véletlen polinomok generálása sok változó készítése

Változók 61 of 110 ON-LINE HELP A NÉVKEZELÉSHEZ Ugyanaz a HELP-lap:?variable,?symbol,?name

Változók 62 of 110 ON-LINE HELP A NÉVKEZELÉSHEZ Ugyanaz a HELP-lap:?variable,?symbol,?name Indexelt változók:?indexed,?selection

Változók 63 of 110 ON-LINE HELP A NÉVKEZELÉSHEZ Ugyanaz a HELP-lap:?variable,?symbol,?name Indexelt változók:?indexed,?selection type(név, name): változó-e "név"

Változók 64 of 110 ON-LINE HELP A NÉVKEZELÉSHEZ Ugyanaz a HELP-lap:?variable,?symbol,?name Indexelt változók:?indexed,?selection type(név, name): változó-e "név"?table,?array,?vector,?matrix

Változók 65 of 110 ON-LINE HELP A NÉVKEZELÉSHEZ Ugyanaz a HELP-lap:?variable,?symbol,?name Indexelt változók:?indexed,?selection type(név, name): változó-e "név"?table,?array,?vector,?matrix?,?cat

Változók 66 of 110 VÁLTOZÓK A SAGE -BEN Itt is léteznek szabad és kötött változók

Változók 67 of 110 VÁLTOZÓK A SAGE -BEN Itt is léteznek szabad és kötött változók A Python miatt itt minden objektum, az objektumhivatkozások a.b alakúak

Változók 68 of 110 VÁLTOZÓK A SAGE -BEN Itt is léteznek szabad és kötött változók A Python miatt itt minden objektum, az objektumhivatkozások a.b alakúak Változó értékének megszüntetése: a var parancs

Változók 69 of 110 VÁLTOZÓK A SAGE -BEN Itt is léteznek szabad és kötött változók A Python miatt itt minden objektum, az objektumhivatkozások a.b alakúak Változó értékének megszüntetése: a var parancs Elállított értékek alaphelyzetbe hozása. reset(vars=none, attached=false)

Változók 70 of 110 VÁLTOZÓK A SAGE -BEN Itt is léteznek szabad és kötött változók A Python miatt itt minden objektum, az objektumhivatkozások a.b alakúak Változó értékének megszüntetése: a var parancs Elállított értékek alaphelyzetbe hozása. reset(vars=none, attached=false) Értékadás: =, reláció (egyenlet): ==

Változók 71 of 110 VÁLTOZÓK A SAGE -BEN Itt is léteznek szabad és kötött változók A Python miatt itt minden objektum, az objektumhivatkozások a.b alakúak Változó értékének megszüntetése: a var parancs Elállított értékek alaphelyzetbe hozása. reset(vars=none, attached=false) Értékadás: =, reláció (egyenlet): == Nincsenek a MAPLE -nek megfelelő információs függvények

Változók 72 of 110 VÁLTOZÓK A SAGE -BEN Itt is léteznek szabad és kötött változók A Python miatt itt minden objektum, az objektumhivatkozások a.b alakúak Változó értékének megszüntetése: a var parancs Elállított értékek alaphelyzetbe hozása. reset(vars=none, attached=false) Értékadás: =, reláció (egyenlet): == Nincsenek a MAPLE -nek megfelelő információs függvények Indexkezelése: szögletes zárójelezés

Változók 73 of 110 VÁLTOZÓGENERÁLÁS A MAPLE konkatenált neveinek szimulálása: class VariableGenerator(object): def init (self, prefix): self. prefix = prefix @cached_method def getitem (self, key): return SR.var("%s%s"%(self. prefix,key)) g = VariableGenerator( g )

TELJES KIÉRTÉKELÉS name a name b a:=b; b:=c; c:=3; name c intpos 3 Kifejezések kiértékelése 74 of 110

KIÉRTÉKELÉSI TRÜKKÖK Szintek: eval(e,n) - A kifejezés n. hivatkozásának lekérdezése. Függvényen belül nem működik Kifejezések kiértékelése 75 of 110

KIÉRTÉKELÉSI TRÜKKÖK Szintek: eval(e,n) - A kifejezés n. hivatkozásának lekérdezése. Függvényen belül nem működik Késleltetett: Egy utasításnyi időre késleltetjük a kiértékelést: x:=3; y:= x +3; Kifejezések kiértékelése 76 of 110

KIÉRTÉKELÉSI TRÜKKÖK Szintek: eval(e,n) - A kifejezés n. hivatkozásának lekérdezése. Függvényen belül nem működik Késleltetett: Egy utasításnyi időre késleltetjük a kiértékelést: x:=3; y:= x +3; Utolsó név kiértékelés: Ha a kiértékelés függvénydefinícióhoz ér, a függvénynév előtti utolsó névnél megáll a kiértékelés., illetve a linalg adatszerkezeteinél. Kifejezések kiértékelése 77 of 110

SPECIÁLIS SZIMBÓLUMOK Szimbólum Felhasználás speciális karaktert tartalmazó név jelölése késleltetett kiértékelés " " string % hivatkozás az előzőleg kiértékelt kifejezésre %% visszafelé a második kifejezés %%% visszafelé a harmadik kifejezés Kifejezések kiértékelése 78 of 110

A LISTÁK HASZNÁLATA Kiértékelési problémák a listáknál léphetnek föl: a listaműveletek helyben hatnak. Kifejezések kiértékelése 79 of 110

SURFACE ÉS NESTED Surface típus: az adatvektor fejrésze Adattípusok kezelése 80 of 110

SURFACE ÉS NESTED Surface típus: az adatvektor fejrésze számok és stringek Adattípusok kezelése 81 of 110

SURFACE ÉS NESTED Surface típus: az adatvektor fejrésze számok és stringek aritmetikai kifejezések Adattípusok kezelése 82 of 110

SURFACE ÉS NESTED Surface típus: az adatvektor fejrésze számok és stringek aritmetikai kifejezések logikai kifejezések Adattípusok kezelése 83 of 110

SURFACE ÉS NESTED Surface típus: az adatvektor fejrésze számok és stringek aritmetikai kifejezések logikai kifejezések kifejezés sorozat, lista, halmaz, függvényhívás Adattípusok kezelése 84 of 110

SURFACE ÉS NESTED Surface típus: az adatvektor fejrésze számok és stringek aritmetikai kifejezések logikai kifejezések kifejezés sorozat, lista, halmaz, függvényhívás whattype() parancs Adattípusok kezelése 85 of 110

SURFACE ÉS NESTED Surface típus: az adatvektor fejrésze számok és stringek aritmetikai kifejezések logikai kifejezések kifejezés sorozat, lista, halmaz, függvényhívás whattype() parancs Nested típusok: többnyire rekurzíven definiált adatok Adattípusok kezelése 86 of 110

SURFACE ÉS NESTED Surface típus: az adatvektor fejrésze számok és stringek aritmetikai kifejezések logikai kifejezések kifejezés sorozat, lista, halmaz, függvényhívás whattype() parancs Nested típusok: többnyire rekurzíven definiált adatok polinomok Adattípusok kezelése 87 of 110

SURFACE ÉS NESTED Surface típus: az adatvektor fejrésze számok és stringek aritmetikai kifejezések logikai kifejezések kifejezés sorozat, lista, halmaz, függvényhívás whattype() parancs Nested típusok: többnyire rekurzíven definiált adatok polinomok konstansok (!) Adattípusok kezelése 88 of 110

SURFACE ÉS NESTED Surface típus: az adatvektor fejrésze számok és stringek aritmetikai kifejezések logikai kifejezések kifejezés sorozat, lista, halmaz, függvényhívás whattype() parancs Nested típusok: többnyire rekurzíven definiált adatok polinomok konstansok (!) type() parancs Adattípusok kezelése 89 of 110

SURFACE ÉS NESTED Surface típus: az adatvektor fejrésze számok és stringek aritmetikai kifejezések logikai kifejezések kifejezés sorozat, lista, halmaz, függvényhívás whattype() parancs Nested típusok: többnyire rekurzíven definiált adatok polinomok konstansok (!) type() parancs hastype(e, t) - részkifejezést is vizsgál Adattípusok kezelése 90 of 110

SURFACE ÉS NESTED Surface típus: az adatvektor fejrésze számok és stringek aritmetikai kifejezések logikai kifejezések kifejezés sorozat, lista, halmaz, függvényhívás whattype() parancs Nested típusok: többnyire rekurzíven definiált adatok polinomok konstansok (!) type() parancs hastype(e, t) - részkifejezést is vizsgál typematch(e,t) - igaz, ha e típusa pontosan t. Adattípusok kezelése 91 of 110

SURFACE ÉS NESTED Surface típus: az adatvektor fejrésze számok és stringek aritmetikai kifejezések logikai kifejezések kifejezés sorozat, lista, halmaz, függvényhívás whattype() parancs Nested típusok: többnyire rekurzíven definiált adatok polinomok konstansok (!) type() parancs hastype(e, t) - részkifejezést is vizsgál typematch(e,t) - igaz, ha e típusa pontosan t.?type,nested,?typematch Adattípusok kezelése 92 of 110

ATTRIBÚTUMOK Azokhoz a struktúrákhoz, melyek hossza konstans, egy plusz attribútum-mező rendelhető. Az attribútum tetszőleges MAPLE kifejezés lehet. Kezelése: setattribute(e,a) Hozzárendelés, ha a hiányzik, törlés Adattípusok kezelése 93 of 110

ATTRIBÚTUMOK Azokhoz a struktúrákhoz, melyek hossza konstans, egy plusz attribútum-mező rendelhető. Az attribútum tetszőleges MAPLE kifejezés lehet. Kezelése: setattribute(e,a) Hozzárendelés, ha a hiányzik, törlés attributes(e) Lekérdezés Adattípusok kezelése 94 of 110

ATTRIBÚTUMOK Azokhoz a struktúrákhoz, melyek hossza konstans, egy plusz attribútum-mező rendelhető. Az attribútum tetszőleges MAPLE kifejezés lehet. Kezelése: setattribute(e,a) Hozzárendelés, ha a hiányzik, törlés attributes(e) Lekérdezés Vannak fenntartott attribútumok: attributes(diff) Adattípusok kezelése 95 of 110

MATEMATIKAI FELTÉTELEK A assume utasítás Adattípusok kezelése 96 of 110

MATEMATIKAI FELTÉTELEK A assume utasítás interface(showassumed=1) Adattípusok kezelése 97 of 110

MATEMATIKAI FELTÉTELEK A assume utasítás interface(showassumed=1) assume(...) Adattípusok kezelése 98 of 110

MATEMATIKAI FELTÉTELEK A assume utasítás interface(showassumed=1) assume(...) hassassumptions(...) Adattípusok kezelése 99 of 110

MATEMATIKAI FELTÉTELEK A assume utasítás interface(showassumed=1) assume(...) hassassumptions(...) about(...) Adattípusok kezelése 100 of 110

MATEMATIKAI FELTÉTELEK A assume utasítás interface(showassumed=1) assume(...) hassassumptions(...) about(...) additionally(...) Adattípusok kezelése 101 of 110

MATEMATIKAI FELTÉTELEK A assume utasítás interface(showassumed=1) assume(...) hassassumptions(...) about(...) additionally(...) a tulajdonságok visszavonása: assign, változó unassign, program, értékadás. Adattípusok kezelése 102 of 110

MIÉRT IS MÁS? A Sage dinamikusan tipizált, de... létezik a type() függvény, ami precíz információt ad Adattípusok kezelése 103 of 110

MIÉRT IS MÁS? A Sage dinamikusan tipizált, de... létezik a type() függvény, ami precíz információt ad A megközelítés matematika-oldalú: a típus helyét átveszi a matematikai struktúra Adattípusok kezelése 104 of 110

MIÉRT IS MÁS? A Sage dinamikusan tipizált, de... létezik a type() függvény, ami precíz információt ad A megközelítés matematika-oldalú: a típus helyét átveszi a matematikai struktúra.base_ring() a hierearchia legelső struktúrája Adattípusok kezelése 105 of 110

MIÉRT IS MÁS? A Sage dinamikusan tipizált, de... létezik a type() függvény, ami precíz információt ad A megközelítés matematika-oldalú: a típus helyét átveszi a matematikai struktúra.base_ring() a hierearchia legelső struktúrája.parent() ez az aktuális típus Adattípusok kezelése 106 of 110

MIÉRT IS MÁS? A Sage dinamikusan tipizált, de... létezik a type() függvény, ami precíz információt ad A megközelítés matematika-oldalú: a típus helyét átveszi a matematikai struktúra.base_ring() a hierearchia legelső struktúrája.parent() ez az aktuális típus.change_ring() másolat más struktúrában Adattípusok kezelése 107 of 110

MIÉRT IS MÁS? A Sage dinamikusan tipizált, de... létezik a type() függvény, ami precíz információt ad A megközelítés matematika-oldalú: a típus helyét átveszi a matematikai struktúra.base_ring() a hierearchia legelső struktúrája.parent() ez az aktuális típus.change_ring() másolat más struktúrában Típuskonverzió helyett a coercing fogalma: kényszerítés, tulajdonképpen homomorfizmus Adattípusok kezelése 108 of 110

Matematikai feltételek 109 of 110 A A S S U M E A SAGE -BEN assume(x > 0 vagy (x > 0).assume()

Matematikai feltételek 110 of 110 A A S S U M E A SAGE -BEN assume(x > 0 vagy (x > 0).assume() további lehetőségek? assume(x, integet ) vagy assume(x, odd ) formátum

Matematikai feltételek 111 of 110 A A S S U M E A SAGE -BEN assume(x > 0 vagy (x > 0).assume() további lehetőségek? assume(x, integet ) vagy assume(x, odd ) formátum forget()

Matematikai feltételek 112 of 110 A A S S U M E A SAGE -BEN assume(x > 0 vagy (x > 0).assume() további lehetőségek? assume(x, integet ) vagy assume(x, odd ) formátum forget() assumptions()

PÉLDÁK Lásd a munkalapokon! További példák 113 of 110