Sunteți pe pagina 1din 7

UNIVERSITATEA DIN PITESTI

FACULTATEA DE ELECTRONICA, COMUNICATII SI CALCULATOARE

INFORMATICA INDUSTRIALA
- PROIECT -

INDRUMATOR: prof.univ.dr. 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: numePiese.txt) 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: numePiese.txt) 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:

piesa1.txt defect
piesa2.txt buna

import javax.swing.*;
import java.util.*;
import java.io.*;
class TestPiesa
{
public static void main(String args[])
{
try
{
int N;
int dimMax;
Scanner sc= new Scanner(System.in);
System.out.println("Dati numarul de piese ");
N=sc.nextInt();
System.out.println("Dati dimensiune maxima defect ");
dimMax=sc.nextInt();
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=bfr0.readLine();
StringTokenizer st0=new StringTokenizer(s0);
nC=st0.countTokens();
for(;;)
{
s0=bfr0.readLine();
nL++;
if(s0==null) break;
}
int m[][]=new int[nL][nC];
bfr0.close();
fr0.close();
//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=bfr.readLine();
if(s==null) break;
StringTokenizer st=new StringTokenizer(s);
for(int j=0;j<nC;j++)
m[i][j]=Integer.parseInt(st.nextToken());
}
//afisare matrice
for(int i=0;i<nL;i++)
{
for(int j=0;j<nC;j++)
System.out.print(m[i][j]+" ");
System.out.println();
}
bfr.close();
fr.close();
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)
System.out.println("Pisa

"+t+"

este

necorespunzatoare");
else
System.out.println("Pisa "+t+" corespunde");
System.out.println("Dimensiune defect pisa "+t+" este
"+dim);
}
}
catch (IOException e)
{
System.out.println("Nu gasesc fisier");
System.exit(1);
}
}