Sunteți pe pagina 1din 4

Laboratorul al 8-

8-lea

Funcţii de intrare/ieşire a datelor

Implicit, în Scilab rezultatele apar în fereastra de comandă, iar graficele într-o


fereastră grafică. Sunt situaţii în care rezultatul se doreşte salvat într-un fişier sau să
fie scos la imprimantă, de asemenea datele de intrare se pot prelua dintr-un fişier sau
se pot introduce de la tastatură. In acest capitol se vor descrie modalităţi de intrare
ieşire a diferitelor tipuri de date.
Afişarea variabilelor
Se defineşte variabila urmatoare:
-->a=[%pi,4,%inf]
Tabel 1. Afişarea variabilelor
Modalităţi de afisare Exemplu
Afişare in fereastra de comanda a =
(implicit) 3.1415927 4. Inf
Afişare utilizând disp -->disp(a)
3.1415927 4. Inf
Afişare utilizând print -->print(%io(2),a)
a =
3.1415927 4. Inf
Scrierea valorii variabilei a intr-un -->print('a.txt',a)
fişier, de exemplu, a.txt
Print poate fi folosit pentru a forţa -->function y=g(x); a=2*%pi,
afişarea unei variabile in interiorul unei print(%io(2),a), y=x+a, endfunction
funcţii -->g(2)
a =
6.2831853

Utilizarea interfeţelor grafice


In Scilab există o serie de instrucţiuni pentru ferestre de dialog predefinite, dintre
acestea putem aminti
• x_message;
x_message deschide o ferestră de mesaj
• x_choose;
x_choose deschide o fereastră ce conţine o listă de elemente
• x_dialog;
x_dialog deschide o fereastră de dialog pentru a permite utilizatorului să dea
un răspuns
• x_choices; permite alegerea unei opţiuni dintr-o listă
Exemplul 1

-->x_message(['Ce
-->x_message(['Ce ati vrea';'sa invatati?'])

optiune=x_choose(['Windows','Linux','Alt
optiune=x_choose(['Windows','Linux','Alt sistem de
operare'],'Sisteme de operare')
ObservaŃie
Observa ie:
ie Dacă se alege o opŃiune din listă apare, ca răspuns,
numărul de ordine lin listă a opŃiunii alese
optiune = 2.
-->linux=['Red
-->linux=['Red Hat Linux','Mandriva Linux','Mepis
Linux','Mepis Linux'];
-->l1=list('Sistemul
-->l1=list('Sistemul de operare Linux',1,linux);
-->l2=list('Programe',2,['MuPAD','Scilab','Maxima']);
-->l2=list('Programe',2,['MuPAD','Scilab','Maxima']);
-->x_choices('Linux
-->x_choices('Linux si programe sub Linux',list(l1,l2))
ans = 2. 2.
Se aleg opŃiunile

După ce se aleg opŃiunile se apasă Finish.


Finish
Exemplul 2
In exemplul următor se realizează un script în care se foloseşte o fereastră de dialog
pentru introducerea a patru valori de intrare şi o ferestra de afişare a rezultatului.
text=['no pentru 532';'ne pentru 532';'no pentru 1064';'ne pentru 1064'];
m=x_mdialog('Introduceti valorile indicilor de refractie',text,[' ';' ';' ';' ']);
no1=evstr(m(1));
ne1=evstr(m(2));
no2=evstr(m(3));
ne2=evstr(m(4));
teta=asin(sqrt(abs((no1^(-2)-no2^(-2))/(ne2^(-2)-no2^(-2)))))*180/%pi;
x_message('Unghiul de adaptare de faza este: '+string(teta)+' grade')
Citirea datelor de la tastatura si afisarea rezultatelor folosind ferestre de
dialog:
Citirea unei valori:
valoare=evstr(x_mdialog('Introduceti o valoare: ',['v='],[' ']));
Citirea unui vector:
a=evstr(x_matrix('introduceti elementele unei matrice de dimensiune 1x5: ',zeros(1,5)))
Citirea unei matrice:
a=evstr(x_matrix('introduceti elementele unei matrice de dimensiune 3x3: ',zeros(3,3)))
Afisarea unei matrice:
x_matrix(‘Elementele matricei s sunt’,s)
Exemplu
Să se calculeze suma elementelor unui vector, care sunt cuprinse intre valorile a şi b cu a<b.
Solutie:
v=evstr(x_matrix('introduceti elementele unui vector: ',zeros(1,5)))
a=evstr(x_mdialog('Introduceti o valoare pentru a: ',['a='],[' ']));
b=evstr(x_mdialog('Introduceti o valoare pentru b: ',['b='],[' ']));
s=0;
for i=1:length(v)
if (v(i)>a)&(v(i)<b)
s=s+v(i);
end
end
x_matrix('Valoarea lui s este: ',s)

Observatie: Sa se modifice programul de mai sus astfel incat pentru introducerea


valorilor a si b sa se foloseasca o singura fereastra de dialog

Exercitii:
Sa se rezolve exercitiile de mai jos folosind pentru introducerea si afisarea datelor
ferestre de dialog.
1. Să se calculeze produsul elementelor diferite de zero ale unui vector.
2. Se dă şirul de numere x1, x2, …, xn. Să se determine numărul de elemente pozitive şi să se
calculeze produsul lor.
3. Să se calculeze media aritmetică a elementelor unui vector care sunt mai mari decat o
valoare dată.
4. Sa se determine elementul maxim al unui matrice de numere reale (se va defini o functie
in editorul scilab-ului).
5. Să se calculeze produsul elementelor diferite de zero de pe diagonala principală
(secundară) ale unei matrice.
6. Să se calculeze suma elementelor unei matrice situate deasupra (dedesubtul) diagonalei
principale (secundare).
7. Sa se realizeze un program care calculeaza produsul a doua matrice.
8. Se dau numerele aij , i = 1,2,...,100; j = 1,2,...,50 si b j j = 1,2,...,50 . Sa se realizeze un
50
program care calculeaza: ci = ∑ aij b j , i = 1,2,...,100 .
j =1
9. Să se calculeze suma elementelor unui vector care sunt cuprinse intre valorile a şi b cu
a<b.
10. Să se calculeze produsul elementelor diferite de zero ale unui vector.
11. Se dă şirul de numere x1, x2, …, xn. Să se determine numărul de elemente pozitive şi să se
calculeze produsul lor.
12. Să se calculeze media aritmetică a elementelor unui vector care sunt mai mari decat o
valoare dată.
13. Se dă şirul de numere x1, x2, …, xn. Să se calculeze:
- media aritmetică a numerelor pozitive;
- suma pătratelor numerelor negative
14. Să se ordoneze crescător elementele unui vector.
15. Să se calculeze produsul scalar al vectorilor x = ( x1, x2, …, xn) şi y = (y1, y2, …,yn).
16. Se dau două siruri de câte n numere: a1, a2, …, an şi b1, b2, …, bn. Să se formeze şirul c1,
c2, …, cn în care termenii se obŃin după următorul procedeu: pentru orice i, i = 1, n ,
 a i + bi
 , daca a i ⋅ bi < 0
ci =  2
max{a i , bi }, daca a i ⋅ bi ≥ 0

S-ar putea să vă placă și