TAP Lab4
TAP Lab4
Raport
Lucrare de laborator Nr.4
Disciplina: Tehnici avansate de programare
Chişinau 2019
1. Tema lucrării:
Crearea excepţiilor
2. Scopul lucrării:
3. Etapele de realizare:
Varianta 8
Se întroduc N parametri de la consolă. Aceşti parametri -sunt elemente ale vectorului
detip double, şi in baza vectorului – se creaza clasa cu obiectul DoubleVector. Apoi,
programul afisiaza la consola valorile vectorului în formă: Vector: 2.3 5.0 7.3.
Program Listingul
import [Link].*;
import [Link].*;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
}else{
throw new MyException("Tabloul este gol");
}
}catch(MyException ex){
[Link]();
[Link]();
[Link](new LineBorder([Link],1));
[Link]([Link]());
}
}
});
[Link](new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
try{
if([Link]().equals("true")){
if([Link]()>0){
String line="";
for(int i=0;i<[Link]();i++){
line+=[Link](i)+" ";
}
[Link](line);
}else throw new MyException("Tablou fara elemente");
}else throw new MyException("Tablou neinitializat");
}catch(MyException ex){
[Link]([Link]());
}
}
});
[Link](new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
try{
if([Link]().equals("true")){
if([Link]()>0){
String line="";
line+=[Link](0)+" ";
[Link](line);
}else throw new MyException("Tablou fara elemente");
}else throw new MyException("Tablou neinitializat");
}catch(MyException ex){
[Link]([Link]());
}
}
});
[Link](new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
try{
if([Link]().equals("true")){
if([Link]()>0){
String line="";
line+=[Link]([Link]()-1)+" ";
[Link](line);
}else throw new MyException("Tablou fara elemente");
}else throw new MyException("Tablou neinitializat");
}catch(MyException ex){
[Link]([Link]());
}
}
});
[Link](new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
try{
if([Link]().equals("true")){
if([Link]()>0){
try{
if([Link]().equals("")||[Link]().contains(" ")||
[Link]().matches("[0-9]+")==false)
throw new Exception("Parametri incorecti");
else if([Link]([Link]())>=[Link]()){
throw new Exception("Index in afara tabloului");
}else if([Link]([Link]())<0){
throw new Exception("Valoare negativa nu se primeste");
}else{
[Link]([Link]([Link]([Link]())));
[Link]();
[Link]();
}
}catch(Exception oe){
[Link]([Link]());
}
}else throw new MyException("Tablou fara elemente");
}else throw new MyException("Tablou neinitializat");
}catch(MyException ex){
[Link]([Link]());
}
}
});
}
public static void main(String[] args) {
[Link](new Runnable() {
public void run() {
[Link](true);
SetWindow();
}
});
}
public void actionPerformed(ActionEvent ae) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of
generated methods, choose Tools | Templates.
}
}
class DoubleVector{
double[] val;
int index;
int maxAdmisible;
void init(int maxSize){
val = new double[maxSize];
maxAdmisible = maxSize;
}
void add(double value){
val[index++]=value;
[Link](val[index-1]);
}
boolean erase(double value){
for(int i=0;i<maxAdmisible;i++){
if(val[i]==value){
for(int j=i;j<index-1;j++){
val[j]=val[j+1];
}
double[] aux=new double[maxAdmisible];
index--;
for(int j=0;j<index;j++){
aux[j]=val[j];
}
val=new double[maxAdmisible];
for(int j=0;j<index;j++){
val[j]=aux[j];
}
return true;
}
}
return false;
}
boolean equals(DoubleVector x) throws MyException{
for(int i=0;i<maxAdmisible;i++){
if(val[i]!=[Link][i])return false;
}
return true;
}
String Show(){
String line =" ";
for(int j = 0;j<index;j++){
line+=[Link](val[j])+"\n ";
}
return line;
}
Concluzie:
In urma efectuarii acestei lucrari am insusit modalitatile de creare si realizare a
exceptiilor in Java, am creat exceptii proprii care m-au ajutat la indeplinirea conditiilor
acestei lucrari.