• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Matura 2017 cz. 2 Zadanie 6 Piksele

Cloud VPS
0 głosów
1,076 wizyt
pytanie zadane 6 stycznia 2019 w Java przez krawiecki Początkujący (490 p.)
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Zadanie6_2 {

    public static void main(String[] args) {

        BufferedReader bf = null;
        String nameOfFile = "dane.txt";

        List<Integer> data = new ArrayList<>();

// wczytywanie liczb z pliku

        try {
            String line = null;
            bf = new BufferedReader(new FileReader(nameOfFile));

            do {
                line = bf.readLine();
                if (line != null) {
                    for (String l : line.split(" ")) {
                        data.add(Integer.valueOf(l));  // dodawanie osobno wszystkich liczb do listy
                    }
                }
            } while (line != null);
        } catch (IOException ex) {
            ex.getMessage();
        }

// zad 6.2
        int iterator;
        int p;
        int counter = 0;
        boolean t;

        for (int i = 0; i < data.size(); i += 320) {

            t = true;
            iterator = i + 320;
            p = iterator ;

            for (int j = i; j < iterator; j++) {

                p--;

                if (data.get(j) != data.get(p)) {
                    t = false;
                    break;
                }

            }

            if (!t) counter++;
        }

        System.out.println(counter);
    }
}

Tu jest mój kod do zadania 6.2

 

TREŚĆ 

W pliku dane.txt znajduje się 200 wierszy. Każdy wiersz zawiera 320 liczb naturalnych zprzedziału od 0 do 255, oddzielonych znakami pojedynczego odstępu (spacjami). Przedstawiają one jasności kolejnych pikseli czarno-białego obrazu o wymiarach 320 na 200 pikseli (od 0 – czarny do 255 – biały).

Napisz program(y), który(e) da(dzą) odpowiedzi do poniższych zadań. Odpowiedzi zapisz w pliku wyniki6.txt, a każdą odpowiedź poprzedź numerem oznaczającym odpowiednie zadanie.

Uwaga: plik przyklad.txt zawiera dane przykładowe spełniające warunki zadania (obraz ma takie same rozmiary). Odpowiedzi dla danych z pliku przyklad.txt są podane pod poleceniami.

ZAD 6.2

Podaj, ile wynosi najmniejsza liczba wierszy, które należy usunąć, żeby obraz miał pionową ośsymetrii. Obraz ma pionową oś symetrii, jeśli w każdym wierszu i-ty piksel od lewej strony przyjmuje tę samą wartość, co i-ty piksel od prawej strony, dla dowolnego 1 ≤ i ≤ 320.

Dla danych z pliku przyklad.txt wynikiem jest 3.

 

Nie mogę znaleźć błędu w tym rozwiązaniu, wczytałem wszystkie liczby jako osobne elementy tablicy, jeden wiersz to 320 liczb czyli porównywałem zerowy element tablicy z 319 i jeżeli będzie on różny wyłamywałem się z wewnętrznej pętli, zwiększając iterator zewnętrznej pętli o 320 i tak do końca, nie wiem czy pomysł jest dobry, w każdym razie nie działa, ponieważ wypisuje wynik 190 a powinien 3.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 1,043 wizyt
0 głosów
1 odpowiedź 1,448 wizyt
pytanie zadane 25 lutego 2019 w C i C++ przez Dorian Bajorek Dyskutant (7,920 p.)
0 głosów
1 odpowiedź 788 wizyt
pytanie zadane 29 kwietnia 2018 w C i C++ przez Seyn Początkujący (300 p.)

93,468 zapytań

142,404 odpowiedzi

322,706 komentarzy

62,852 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...