UNIVERSITATEA DIN PITESTI
FACULTATEA DE ELECTRONICA, COMUNICATII SI CALCULATOARE
INFORMATICA INDUSTRIALA
- PROIECT -
INDRUMATOR: [Link]. ENE ALEXANDRU
STUDENT: ANGHEL ANCA MIHAELA
SECPI 1
TEMA PROIECT:
Avem o imagine binara (valori de 0 si 1), a unei piese memorata intr-un fisier
text. Imaginea piesei a fost anterior prelucrata astfel incat valoarea de 1 reprezinta
punctele de fisura din piesa.
Piesa este considerate buna, daca lungimea fisurii nu depaseste o anumita valoare
impusa
Se da un fisier text (ex: [Link]) ce contine numele unor fisiere
txt,cate un nume
pe fiecare linie, ce reprezinta imaginile unor piese (valori binare separate prin
spatii).
Numele fisierului text (in exemplul dat: [Link]) se citeste de la
tastatura.
De asemenea se citeste de la tastatura dimensiunea maxima a unei fisuri orizontale
(daca se gaseste o fisura > dimFisMax, atunci piesa nu e buna)
Sa se afiseze care piese sunt bune si care sunt defecte.
Se va scrie un alt fisier:
[Link] defect
[Link] buna
import [Link].*;
import [Link].*;
import [Link].*;
class TestPiesa
{
public static void main(String args[])
{
try
{
int N;
int dimMax;
Scanner sc= new Scanner([Link]);
[Link]("Dati numarul de piese ");
N=[Link]();
[Link]("Dati dimensiune maxima defect ");
dimMax=[Link]();
for (int t=1;t<=N;t++)
{
//determinarea numarului de linii si de coloane din fisier
FileReader fr0=new FileReader("piesa"+t+".txt");
BufferedReader bfr0=new BufferedReader(fr0);
int nL=0;
int nC=0;
String s0=[Link]();
StringTokenizer st0=new StringTokenizer(s0);
nC=[Link]();
for(;;)
{
s0=[Link]();
nL++;
if(s0==null) break;
}
int m[][]=new int[nL][nC];
[Link]();
[Link]();
//completarea matricii cu elementele din fisier
FileReader fr=new FileReader("piesa"+t+".txt");
BufferedReader bfr=new BufferedReader(fr);
for(int i=0;i<nL;i++)
{
String s=[Link]();
if(s==null) break;
StringTokenizer st=new StringTokenizer(s);
for(int j=0;j<nC;j++)
m[i][j]=[Link]([Link]());
}
//afisare matrice
for(int i=0;i<nL;i++)
{
for(int j=0;j<nC;j++)
[Link](m[i][j]+" ");
[Link]();
}
[Link]();
[Link]();
int dim=0;
//determinare dimensiune maxima pe linie
for (int k=0;k<nL;k++)
for (int i=0;i<nC-1;i++)
if(m[k][i]==1)
for (int j=i+1;j<nC;j++)
{
if (m[k][j]==0)
{
if (dim<j-i) dim=j-i;
break;
}
if (j==nC-1)
{
if (dim<nC-i) dim=nC-i;
break;
}
}
//determinare dimensiune maxima pe coloana
for (int k=0;k<nC;k++)
for (int i=0;i<nL-1;i++)
if(m[i][k]==1)
for (int j=i+1;j<nL;j++)
{
if (m[j][k]==0)
{
if (dim<j-i) dim=j-i;
break;
}
if (j==nL-1)
{
if (dim<nL-i) dim=nL-i;
break;
}
}
if(dim>dimMax)
[Link]("Pisa
"+t+"
este
necorespunzatoare");
else
[Link]("Pisa "+t+" corespunde");
[Link]("Dimensiune defect pisa "+t+" este
"+dim);
}
}
catch (IOException e)
{
[Link]("Nu gasesc fisier");
[Link](1);
}
}