Scilab programozás alapjai SciNotes Saját függvény definiálása és használata Ciklusok Adatok kiíratása fájlba
Számítógépes modellezés SciNotes SciNotes Beépített szövegszerkesztő A beírt utasítások lefuttathatók a Scilab-ban Elmenthető, újra megnyitható (programkód) Dr. Erdélyi Zoltán Számítógépes modellezés
Számítógépes modellezés SciNotes ide kell írni az utasításokat (programkódot) Dr. Erdélyi Zoltán Számítógépes modellezés
Számítógépes modellezés SciNotes Mentés és végrehajtás x=1:10; plot(x,x.^2) Dr. Erdélyi Zoltán Számítógépes modellezés
Saját függvény definiálása és használata function függvényértékek=függvény_neve(bemeneti_értékek) utasítások endfunction bemeneti értékek: szám, sormátrix függvényértékek (kimeneti értékek): szám, sormátrix több bemeneti érték esetén, azokat vesszővel választjuk el több függvényérték (kimeneti érték) esetén, egy „listába” vagy mátrixba kerülnek Dr. Erdélyi Zoltán Számítógépes modellezés
Saját függvény definiálása és használata példa: SciNotes-ban function y=egyenes(x) y=2*x+3 endfunction A saját függvény hívása a Scilab console-ban -->x=[-2:1:2]; -->egyenes(x) természetesen ábrázolásra is használható -->plot(x,egyenes(x)) Dr. Erdélyi Zoltán Számítógépes modellezés
Saját függvény definiálása és használata két szám összegének és különbségének a kiszámítása, listás megoldás SciNotes-ban function [p,m]=plussz_minusz(a,b) p=a+b m=a-b endfunction Dr. Erdélyi Zoltán Számítógépes modellezés
Saját függvény definiálása és használata plussz_minusz függvény hívása a Console-ban -->[osszeg,kulonbseg]=plussz_minusz(1,2) kulonbseg= -1. osszeg= 3. Dr. Erdélyi Zoltán Számítógépes modellezés
Saját függvény definiálása és használata két szám összegének és különbségének a kiszámítása, mátrixos megoldás SciNotes-ban function PM=plussz_minusz(a,b) PM(1)=a+b PM(2)=a-b endfunction Dr. Erdélyi Zoltán Számítógépes modellezés
Saját függvény definiálása és használata plussz_minusz függvény hívása a Console-ban -->plussz_minusz(1,2) ans= 3. -1. Dr. Erdélyi Zoltán Számítógépes modellezés
Számítógépes modellezés Ciklusok For ciklus előre meghatározott számú alkalommal futtatja le a ciklusba szervezett utasításokat a for … end közé kell írni az utasításokat egy ciklusszámláló paraméter tartja számon a ciklusfutások számát ezt a for szó után adjuk meg, és azt is, hogy milyen értékeket vesz fel a futás során Dr. Erdélyi Zoltán Számítógépes modellezés
Számítógépes modellezés Ciklusok pl. 1-tól 100-ig az egész számok összeadása SciNotes-ban n=0; for i=1:100 n=n+i end disp(n) disp() utasítás kiírja az argumentumba írt változó értékét a Consolban (alapból a SciNotes-ban futtatott kód nem ír ki semmit) Dr. Erdélyi Zoltán Számítógépes modellezés
Számítógépes modellezés Ciklusok While előre nem meghatározott a ciklusba szervezett utasítások lefutásának a száma a while … end közé kell írni az utasításokat egy előre definiált feltétel állítja le a ciklus futását a while szó után írjuk a feltételt a ciklus elején tesztel egyenlő nem egyenlő kisebb nagyobb kisebb vagy egyenlő nagyobb vagy egyenlő == <> < > <= >= Dr. Erdélyi Zoltán Számítógépes modellezés
Számítógépes modellezés Ciklusok pl. véletlen számok /rand() utasítás/ összeadása addig, míg az összeg kisebb, mint 100 SciNotes-ban n=0; while n<100 n=n+rand(); end disp(n) Az eredmény nagyobb lesz, mint 100, mert az elején tesztel! Csak akkor áll le, ha n nagyobb vagy egyenlő 100-zal. Dr. Erdélyi Zoltán Számítógépes modellezés
Számítógépes modellezés Ciklusok Elágaztatás if … then … else … end ha az if után igaz feltétel áll, akkor a then utáni utasítások futnak le, egyébként az else utániak. if … then … elseif … then … else … end ugyanaz, mint az előző, csak többszörös feltételvizsgálatot és elágaztatást tesz lehetővé az elseif rész többszörözhető is Dr. Erdélyi Zoltán Számítógépes modellezés
Számítógépes modellezés Ciklusok 0 és 100 közzé eső véletlen számok páros-páratlan vizsgálata SciNotes-ban n=round(100*rand()); if modulo(n,2)==0 then disp("paros szam ",n) else disp("paratlan szam ",n) end round() utasítás az argumentumba írt értéket kerekíti a legközelebbi egészre Dr. Erdélyi Zoltán Számítógépes modellezés
Adatok kiíratása fájlba Fájl megnyitása írásra [fájl változó neve]=mopen([fájl teljes elérési útja, neve],'wt') Írás a megnyitott fájlba mfprintf([fájl változó neve],”[formátum]”, [változó]); Fájl lezárása mclose([fájl változó neve]) Dr. Erdélyi Zoltán Számítógépes modellezés
Adatok kiíratása fájlba pl. 10 véletlen szám kiíratása fájlba SciNotes-ba fd=mopen("random.txt",'wt'); for i=1:10 szam=rand(); mfprintf(fd,"%g\n",szam) end mclose(fd); nincs elérési út megadva, így a Consolban aktuális könyvtárban hozza létre a random.txt fájlt %g az értéknek megfelelő optimális kiíratási formátumot próbál találni a Scilab; a \n soremelés minden kiírt szám után Dr. Erdélyi Zoltán Számítógépes modellezés
Számítógépes modellezés Utószó Ez csak egy alap bevezető volt a Scilab-ba Javasolt a Scilab oldalán és más internetes oldalakon is fellelhető bevezető segédanyagok áttanulmányozása. A Scilab beépített súgója is hasznos segítség, példakódokat is tartalmaz Dr. Erdélyi Zoltán Számítógépes modellezés