Informatika1-2012/Gyakorlat2

A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „=== Ismétlés az elõadásról === * matematikai mûveletek: (5 + 6 ** 3) / 6.0 + (26 % 11) * változók definiálása: a = 5 + 6 * szimbólumok deklarálása: (a,b)=…”)
 
 
(egy szerkesztő 8 közbeeső változata nincs mutatva)
12. sor: 12. sor:
 
* saját függvények a def kulcsszóval
 
* saját függvények a def kulcsszóval
 
* plot
 
* plot
 +
* listák: lis = [5, 6.0, 8]
 +
* lista indexelés: lis[1], ez a 6.0
 +
 +
* [[Informatika1-2012/Eloadas1|1. előadás]]
 +
* [[Informatika1-2012/Eloadas2|2. előadás]]
  
  
48. sor: 53. sor:
  
  
* Oldd meg a 2.51''x'' + ''e''*x - ''pi'' = 0 egyenletet a ''solve()''-al, miután ez nem sikerült, oldd meg a ''find_root()''-al!
+
* Oldd meg a ''sin''(''x'') + ''log''(''x'') - ''pi'' = 0 egyenletet a ''solve()''-al, miután ez nem sikerült, oldd meg a ''find_root()''-al (0 és 100 között van egy megoldás)!
 
* Legyen az ''f'' függvény a (2''x'' + 5''y'')^3 ! (Ne felejtsd el felvenni y-t is mint szimbolikus változót.)
 
* Legyen az ''f'' függvény a (2''x'' + 5''y'')^3 ! (Ne felejtsd el felvenni y-t is mint szimbolikus változót.)
 
* Helyettesíts f-be a ''subs()'' függvénnyel, x = 316, y = 276-ot!
 
* Helyettesíts f-be a ''subs()'' függvénnyel, x = 316, y = 276-ot!
* Egészítsd ki a kódot, hogy mûködjön!
+
* Egészítsd ki a kódot, hogy összegre bontsa a kifejezést!
 
  (a, b) = <!>
 
  (a, b) = <!>
 
  ((2 * a - b) ** 3).<!>
 
  ((2 * a - b) ** 3).<!>
57. sor: 62. sor:
  
 
=== Új függvények definiálása ===
 
=== Új függvények definiálása ===
 +
 +
* Egészítsd ki a kódot, hogy olyan sage függvényt kapj, amely két változót kap bemenetként, és True-t ad vissza ha az első osztható a másodikkal, egyébként False-t ad.
 +
def oszthato(a, b):
 +
    return <!>
 +
* Definiálj egy olyan primnap nevű függvényt , amely két változót kap bemenetként (legyenek ezek m és d, mint hónap és nap), és eldönti hogy az m és d által meghatározott nap prímszámadik napja-e az évnek. Az egyszerűség kedvéért tegyük fel hogy minden hónap 30 napos!
 +
* A fenti függvényt meghívva nézd meg hogy prímszámadik napján születtél-e az évnek!
  
 
=== Rajzolás a Sage-el ===
 
=== Rajzolás a Sage-el ===
  
 +
* Egészítsd ki a kódot, hogy cosinus görbét rajzoljon ki 0-tól 4*pi-ig.
 +
plot(<!>, (0, <!>))
 +
* Rajzold ki az (x-2)^2 + 3 másodfokú polinomot -2-től 4-ig, zöld színnel!
 +
* Rajzoljunk kört: cirlce((középpont koordinátái), sugár, egyebek). Az "egyebek" lehetnek: szín, aspect_ratio=True hogy az x és y tengelyek skálázása azonos legyen (különben ellipszist kaphatunk!).
 +
* Rajzold a másodfokú polinomot és a kört egymás mellé a show függvénnyel.
 +
 +
 +
<!--
 +
 +
=== Lista és tuple alapok ===
 +
 +
# Adj meg egy legalább 5 elemű, egész számokat tartalmazó listát, és rendeld az ''L'' változóhoz!
 +
# Írasd  ki a lista második elemét!
 +
# Írasd  ki a lista második, harmadik, és negyedik eleméből álló részlistát (használd a kettőspontot a szögletes zárójelen belül)!
 +
# Írasd  ki a lista első 3 elemét!
 +
# Írasd  ki a lista utolsó elemét (negatív index)!
 +
# Fűzz a lista végére egy új elemet, értéke legyen ugyanaz, mint az első elem! (''append()'')
 +
# Keresd meg hogy egy elem hányadik indexen szerepel a listádban! (''index()'')
 +
# Számold meg, hányszor szerepel az első elem a listában! (''count()'')
 +
# Mennyi a listádban szereplő számok összege? (''sum()'')
 +
# Rendezd a listádat növekvő sorrendbe! (''sort()'')
 +
# Fűzd össze az ''L'' listát az [1,2,3] listával! (használd a ''+'' operátort)
 +
# Készíts listát (''A'' néven) az "abrakadabra" stringből! (''list()'')
 +
# Készíts stringet az ''A'' listából! (''str()'')
 +
# Készíts tuple-t ''T'' néven az ''A'' listából, majd írd ki az utolsó elemét!
 +
# Változtasd meg a ''T'' első elemét!
  
=== Kiegészítendõ feladatok ===
+
=== Vezérlési szerkezetek (if, for, while) ===
 +
* Egészítsd ki a következõ sage függvényt, hogy ha prím számot kap akkor azt a stringet adja vissza hogy "prim", ha nem, akkor a faktorizáltját adja vissza.
 +
def faktor_v_prim(a):
 +
    if <!>(a):
 +
        return "prim"
 +
    else:
 +
        return <!>
  
A kiegészítendõ részek <!> (relációjelek közti felkiáltójellel) vannak jelölve.
 
  
* Egészítsd ki a kódot, hogy a végeredmény True (igaz) legyen!
+
* Definiálj egy Sage függvényt ''elojel'' néven, amelynek egy bemenete van (''a''), és a "pozitiv" karakterláncot (vagyis stringet) írja ki ha a kapott paraméter pozitív, "negativ"-at ad vissza ha a szám negatív, és "nulla"-ta ad ha nulla volt a paraméter értéke.
  (7 + 2 <!> 2 ** 3) > ((27 // 5) <!> (5 <!> 23))
+
* Írj egy Sage függvényt ''primek_szama'' néven, amely bemenetként kap egy számot (''n'') és visszaadja az n-nél kisebb prímek darabszámát!  
 +
* Írj egy függvényt ''elso_primek'' néven, amely bemenetként kap egy számot (''n'') és kiírja az első ''n'' prímszámot!
 +
-->

A lap jelenlegi, 2012. szeptember 19., 11:22-kori változata

Tartalomjegyzék

Ismétlés az elõadásról

  • matematikai mûveletek: (5 + 6 ** 3) / 6.0 + (26 % 11)
  • változók definiálása: a = 5 + 6
  • szimbólumok deklarálása: (a,b)=var(’a,b’)
  • függvények: expand((a+b)**2), 132.factor(), solve, find_root
  • relációk:
    • 5 < 7 (True)
    • 7 == 4 (False)
    • stb.
  • matematikai függvények: sqrt, cos, sin, tan, is_prime, stb.
  • saját függvények a def kulcsszóval
  • plot
  • listák: lis = [5, 6.0, 8]
  • lista indexelés: lis[1], ez a 6.0


Sage - mint számológép

  • Számold ki 2012 3. hatványát!
  • Számold ki pi és e hányadosát!
  • Egészítsd ki a következõket, hogy a # utáni értéket kapd!
    • A kiegészítendõ részek <!> (relációjelek közti felkiáltójellel) vannak jelölve.
5 <!> 8    # 13
27 <!> 3   # 9
29 <!> 3   # 9
29 <!> 3   # 29 / 3
29 <!> 3   # 2


Változók

  • Mentsd az y változóba a születési éved m-be a születési hónapod, d-be a születésed napját.
  • Mentsd a b változóba az y és d összegét


Szimbólumok és beépített függvények, metódusok

  • Az is_prime() függvénnyel határozd meg, hogy a 2011 * 2012 - 1 prím-e!
  • Egészítsd ki a kódot, hogy mûködjön!
a = <!>
<!> = a
b.factor()


  • Határozd meg 2011 * 2012 + 1 gyökét az sqrt() függvénnyel!
  • Egészítsd ki a kódot, hogy mûködjön!
<!> = var('x')
<!>(2 * x ** 2 - 9 * x - 56 == 0, <!>)


  • Oldd meg a sin(x) + log(x) - pi = 0 egyenletet a solve()-al, miután ez nem sikerült, oldd meg a find_root()-al (0 és 100 között van egy megoldás)!
  • Legyen az f függvény a (2x + 5y)^3 ! (Ne felejtsd el felvenni y-t is mint szimbolikus változót.)
  • Helyettesíts f-be a subs() függvénnyel, x = 316, y = 276-ot!
  • Egészítsd ki a kódot, hogy összegre bontsa a kifejezést!
(a, b) = <!>
((2 * a - b) ** 3).<!>


Új függvények definiálása

  • Egészítsd ki a kódot, hogy olyan sage függvényt kapj, amely két változót kap bemenetként, és True-t ad vissza ha az első osztható a másodikkal, egyébként False-t ad.
def oszthato(a, b):
   return <!>
  • Definiálj egy olyan primnap nevű függvényt , amely két változót kap bemenetként (legyenek ezek m és d, mint hónap és nap), és eldönti hogy az m és d által meghatározott nap prímszámadik napja-e az évnek. Az egyszerűség kedvéért tegyük fel hogy minden hónap 30 napos!
  • A fenti függvényt meghívva nézd meg hogy prímszámadik napján születtél-e az évnek!

Rajzolás a Sage-el

  • Egészítsd ki a kódot, hogy cosinus görbét rajzoljon ki 0-tól 4*pi-ig.
plot(<!>, (0, <!>))
  • Rajzold ki az (x-2)^2 + 3 másodfokú polinomot -2-től 4-ig, zöld színnel!
  • Rajzoljunk kört: cirlce((középpont koordinátái), sugár, egyebek). Az "egyebek" lehetnek: szín, aspect_ratio=True hogy az x és y tengelyek skálázása azonos legyen (különben ellipszist kaphatunk!).
  • Rajzold a másodfokú polinomot és a kört egymás mellé a show függvénnyel.


Személyes eszközök