Java emelt érettségi feladatmegoldásban gondom akadt?
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");
}
}
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++)
"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.
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);
}
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!