![]() |
ϣ�� ����� ��������� ����� 9. 7. 2004. |
---|
����������� �� ������ Java ����� ����� �� ������ ������:
Sring
�� ������ a*x^
k, ��� �� a � k ��������� ���������� ������.
Sring
�� ������ a*exp(
b*x)
, ��� �� a � b ��������� ���������� �������������� �������.
String
�� ������ (
fun)+…+(
fun)
, ��� �� fun ��������� ��������� �������� ��������� ������� � ��� String
.
��������� �� ������ Java ����� �� ������� ��������� ��� ������� ����� ���� ������� ���������� ��� �� ����� ��� ��������� ������� ��������, ����� �������� ������� ������ �������� ������� ����� ������� �����, ������ ������� ���� ������� � ����� ����� � ����� ���� ���������� ��������� ����� ������� � ������� ������ �� ����� xmin≤x≤xCitaj
� ��������� ������ ��� ������ ��������� ������ �� ������ ���� ����������� ������ ��������.
�������� ���������� �� ������ ������:
�) ��� � ���� �������� ����������� final
�� (�) ���, (�) ������, (�) �����?
�) �������� ����� ���������� (����������������) ������ ������� � ����.
�) ���� ���������� � ������� ��������� i8086 �� ���� ������ ������ ����������? ��� �� ��������� �024:012B ������� �� ������ N, ������� ���������� ������ ������ �������.
��������� ���������� �� ����������� ��������� ������ �� IBM-PC �� ������ ��������� ��������� ���� 16-������ ����� ������, �. �� ������ ����� �������� �� ��������, ������ �� ������������ ���.
��������� ������ ������� �� ����������� ��������� ������ �� IBM-PC ��� ������ ��������� ���������� �� ����� ������� ��������. ������ �������� � ����������� ��������� ������ �� ��������� ���� � ������ ���������.
��������� ���������� �� ����������� ��������� ������ �� IBM-PC, ��� ���� �� �� ������ �� �������� ������� �� ������ C, �� ����������� ��������� ���� 16-������ ����� ������ �� �������� ����������� � ����� ��� (��������� �������� ����� ���������� �� �������� ����). ��������� ����� ��������� ����� (������ ������ � ������ ����������).
// Fun.java package funkcije; public interface Fun { double vr(double x); Fun izv(); } // Monom.java package funkcije; public class Monom implements Fun { private double a; private int k; public Monom () { a = k = 1; } public Monom (double aa, int kk ) { a = aa ; k = kk; } public double vr (double x) { return a * Math.pow (x, k); } public Fun izv () { return k!=0 ? new Monom (a*k,k-1) : new Monom (0,0); } public String toString() { return a + "*x^" + k; } } // Ekspon.java package funkcije; public class Ekspon implements Fun { private double a, b; public Ekspon () { a = b = 1; } public Ekspon (double aa, double bb) {a=aa; b=bb;} public double vr (double x) { return a * Math.exp (b * x); } public Fun izv () { return new Ekspon (a*b, b); } public String toString () { return a + "*exp(" + b + "*x)"; } } // ZbirFun.java package funkcije; public class ZbirFun implements Fun { private Fun[] niz; private int n; public ZbirFun (int k) { niz = new Fun [k]; } public ZbirFun () { this (2); } public ZbirFun dodaj (Fun f) throws GZbirFunPun { if (n == niz.length) throw new GZbirFunPun (); niz[n++] = f; return this; } public double vr (double x) { double s = 0; for (int i=0; i<n; s+=niz[i++].vr(x)); return s; } public Fun izv () { ZbirFun rez = new ZbirFun (niz.length); for (int i=0; i<n; i++) rez.niz[i]=niz[i].izv(); rez.n = n; return rez; } public String toString () { String s = ""; for (int i=0; i<n; i++) { if (i > 0) s += "+"; s += "(" + niz[i] + ")"; } return s; } } // GZbirFunPun.java package funkcije; public class GZbirFunPun extends Exception { GZbirFunPun () { super ("Zbir funkcija je pun"); } } // Test.java import funkcije.*; public class Test { public static void main (String[] varg) { ZbirFun zbir = new ZbirFun (Integer.parseInt (varg[0])); try { for (boolean dalje=true; dalje; ) { Fun f = null; System.out.print ("Vrsta (M,E,*)? "); switch (Citaj.Char ()) { case 'M': case 'm': System.out.print ("a,k? "); zbir.dodaj (new Monom (Citaj.Double(), Citaj.Int())); break; case 'E': case 'e': System.out.print ("a,b? "); zbir.dodaj (new Ekspon (Citaj.Double(), Citaj.Double())); break; case '*': dalje = false; break; default: throw new Exception ("Nedozvoljeni izbor!"); } } } catch (Exception g) { System.out.println(g); } Fun izv = zbir.izv (); System.out.println ("Fun: " + zbir); System.out.println ("Izv: " + izv); System.out.print ("xmin,xmax,dx? "); double xmin = Citaj.Double (), xmax = Citaj.Double (), dx = Citaj.Double (); for (double x=xmin; x<=xmax; x+=dx) System.out.println (x + "\t" + zbir.vr(x) + "\t" + izv.vr(x)); } }
; obrni.asm ; si==&niz cx==n prog segment para public 'code' assume cs:prog public obrni obrni proc near push si push di push ax push dx mov di,si add di,cx add di,cx opet: sub di,2 cmp si,di jge kraj mov ax,[si] mov dx,[di] mov [di],ax mov [si],dx add si,2 jmp opet kraj: pop dx pop ax pop di pop si retn obrni endp prog ends end ; ubacit.asm extrn ubaci:near, exit_f:far podat segment para public 'data' niz dw 30 dup (?) n dw ? podat ends prog segment para public 'code' assume cs:prog, ds:podat pocet:mov ax, podat mov ds, ax ;;;; Citanje podataka. mov si,offset niz mov cx, n call obrni ;;;; Prikaz rezultata. call exit_f prog ends stek segment para stack 'stack' dw 64 dup (?) stek ends end pocet
; void razvrst (short *a, short *m, short *b, short *n) ; razvrst_text segment para public 'code' assume cs:razvrst_text public _razvrst a equ 6 m equ 8 b equ 10 n equ 12 _razvrst proc far push bp mov bp, sp push si push di mov bx,[bp].m mov cx,[bx] mov si,[bp].a mov di,si mov bx,[bp].b jcxz kraj cld opet: lods test ax,1 je par mov [bx],ax add bx,2 jmp dalje par: stos dalje:loop opet sub di,[bp].a shr di,1 mov si,[bp].m mov [si],di kraj: sub bx,[bp].b shr bx,1 mov si,[bp].n mov [si],bx pop di pop si pop bp ret _razvrst endp pomeri_text ends end(⇒ �������)
Copyright © 2004, Laslo Kraus
������� �������: 8.7.2004.