Kezdőoldal » Számítástechnika » Programozás » Java emelt érettségi feladatme...

Java emelt érettségi feladatmegoldásban gondom akadt?

Figyelt kérdés

Sziasztok gondom akadt feladat megoldásban először csak az első 4-5 feladatot kellene megoldanom. eljutottam a 2, feladatig (9.-es tanuló vagyok) de a hármasnál teljesen elakadtam.

ez a feladat: [link]



Itt a kódom:


public static void main(String[] args)throws IOException {

// TODO code application logic here

File f=new File("kep.txt");

Scanner be=new Scanner(f);


int t[][]=new int [50*50][3];


for (int i = 0; i < 50*50; i++) {

for (int j = 0; j < 3; j++) {

t[i][j]=be.nextInt();

// System.out.print(t[i][j]+" ");

}

//System.out.println("");

}

System.out.println("2.Feladat: ");

be.close();

int r,g,b;

Scanner b1=new Scanner(System.in);

System.out.print("Kérlek add meg az R-t: "+"\n");

r=b1.nextInt();

System.out.print("Kérlek add meg az G-t: "+"\n");

g=b1.nextInt();

System.out.print("Kérlek add meg az B-t: "+"\n");

b=b1.nextInt();


//System.out.println("R:"+r+" G:"+g+" B:"+b);


boolean k=false;

for (int i = 0; i < 50*50; i++) {

for (int j = 0; j < 3; j++) {

if(t[i][j]==r){

if(t[i][j+1]==g){

if(t[i][j+2]==b){

k=true;

}

}

}

}

}


if(k==true){

System.out.println("Van találat");

}else{

System.out.println("Nincs találat");

}



}



2017. okt. 16. 16:03
 1/4 A kérdező kommentje:
A kettes feladatot javítottam mert rossz volt a [j][j+1][j+2] helyére csak simán az indexeket kell írni
2017. okt. 16. 16:24
 2/4 anonim ***** válasza:

1. Javaslom, használj a két dimenziós helyett három dimenziós tömböt, és a semmit mondó t helyett nevezd el kep-nek.

int kep[][][] = new int [50][50][3];

Egyik dimenzió a sor, másik dimenzió az oszlop, harmadik dimenzió meg az RGB értékek.

Könnyebb lesz navigálni benne.


2. A 3. feladathoz:

* hozz létre egy sorTalal egész változót, 0 kezdőértékkel, melyben eltárolod a sorban talált értékeket.

* hozz létre egy oszlopTalal egész változót, 0 kezdőértékkel, melyben eltárolod az oszlopban talált értékeket.

* egy ciklusban számolj el 0-tól 50-ig, a ciklusmagon belül meg ellenőrizd, hogy:

- a 35. sor, i. oszlopának, 0. színe (kep[35][i][0]) megegyezik-e a 35. sor, 8. oszlopának, 0. színével (kep[35][8][0]); ÉS (&&) a 35. sor, i. oszlopának, 1. színe megegyezik-e a 35. sor, 8. oszlopának, 1. színével; ÉS (&&) a 35. sor, i. oszlopának, 2. színe megegyezik-e a 35. sor, 8. oszlopának, 2. színével -> ha mindezek fennállnak, növeld a sorTalal értékét 1-el (sorTalal++)

- az i. sor, 8. oszlopának, 0. színe (kep[i][8][0]) megegyezik-e a 35. sor, 8. oszlopának, 0. színével; ÉS (&&) az i. sor, 8. oszlopának, 1. színe megegyezik-e a 35. sor, 8. oszlopának, 1. színével; ÉS (&&) az i. sor, 8. oszlopának, 2. színe megegyezik-e a 35. sor, 8. oszlopának, 2. színével -> ha mindezek fennállnak, növeld az oszlopTalal értékét 1-el (oszlopTalal++)

2017. okt. 16. 21:03
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

"Egyik dimenzió a sor, másik dimenzió az oszlop, harmadik dimenzió meg az RGB értékek."


Mivel az RGB értékek komponenseit külön-külön sehol nem kell használni, így az akár string is maradhat, és egy

String[50][50]-es tömböt is lehet használni.

2017. okt. 16. 21:27
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:

Nos eddig itt tartok, van pár módosítás hisz az egyik nagy hiba hogy 50*(50*3)-as tömb kell mivel egy rgb kód 3 tagú! A sorokat sikerült megszámlálnom, az oszlopokhoz nagyon este van már ott még keresem mit hibáztam, itt a forrás, a további segítséget is köszi <3 :D


public static void main(String[] args)throws IOException {

// TODO code application logic here

File f=new File("kep.txt");

Scanner be=new Scanner(f);


int t[][]=new int [50][150];


for (int i = 0; i < 50; i++) {

for (int j = 0; j < 150; j++) {

t[i][j]=be.nextInt();

// System.out.print(t[i][j]+" ");

}

// System.out.println("");

}

/* System.out.println("2.Feladat: ");

be.close();

int r,g,b;

b = 0;

g=0;

r=0;

Scanner b1=new Scanner(System.in);

System.out.print("Kérlek add meg az R-t: "+"\n");

r=b1.nextInt();

System.out.print("Kérlek add meg az G-t: "+"\n");

g=b1.nextInt();

System.out.print("Kérlek add meg az B-t: "+"\n");

b=b1.nextInt();


//System.out.println("R:"+r+" G:"+g+" B:"+b);


boolean k=false;

for (int i = 0; i < 50; i++) {

for (int j = 0; j < 150; j++) {

if(t[i][0]==r&& t[i][1]==g && t[i][2]==b){

k=true;

}

}

}


if(k==true){

System.out.println("Van találat");

}else{

System.out.println("Nincs találat");

}

*/

System.out.println("3. feladat: ");

int p[]=new int [3];

p[0]=t[35][8*3];

p[1]=t[35][25];

p[2]=t[35][26];

int s[]=new int [3];

s[0]=t[0][12*3];

s[1]=t[1][37];

s[2]=t[2][38];



for (int i = 0; i < 3; i++) {

//System.out.print(p[i]+" ");

}


int sor[]=new int [150];

int o=0;

for (int i = 0; i < 150; i++) {

sor[i]=t[35][i];

// System.out.print(sor[i]);

}


for (int i = 0; i < 150; i++) {

if(sor[i]==p[0]&&sor[i+1]==p[1]&&sor[i+2]==p[2]){

o++;

}

}

System.out.println("Sorban: "+o);


System.out.println(s[0]+" "+s[1]+" "+s[2]);


int oszlop[]=new int[50];

int o1=0;

for (int i = 0; i < 50; i++) {

oszlop[i]=t[0][i];

//System.out.println(oszlop[i]);

}

for (int i = 0; i < 48; i++) {

if(oszlop[i]==s[0]&&oszlop[i+1]==s[1]&&oszlop[i+2]==s[2]){

o1++;

}

}


System.out.println("Oszlop: "+o1);



}

2017. okt. 16. 21:55

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!