Znajdź błąd: wspólne wiersze

Zadanie 14 z 14 · rozdział 13Trudność: 2 z 3macierzedebugowanielisty

Treść zadania

Program z sekcji Kod startowy miał tworzyć planszę n×m wypełnioną zerami, a następnie wpisywać 1 w k pól podanych na wejściu. Niestety wypisuje zły wynik. Dla przykładu poniżej zamiast oczekiwanej planszy wypisuje:

1 1 0
1 1 0
1 1 0

Znajdź błąd i popraw program tak, aby działał zgodnie z opisem.

Dane wejściowe

  • 1. linia: n m — liczba wierszy i kolumn
  • 2. linia: k — liczba pól do zaznaczenia
  • następnie k linii: r c — numer wiersza i kolumny pola, liczone od 0

Dane wyjściowe

n linii po m liczb 0 lub 1 oddzielonych spacjami — plansza po zaznaczeniu pól.

Ograniczenia

  • 1 ≤ n, m ≤ 10
  • 0 ≤ k ≤ 20; to samo pole może zostać podane kilka razy

Uwagi

  • Uruchom program i sprawdź, które pola zmieniają się po zaznaczeniu tylko jednego pola. Przyjrzyj się linii, która tworzy planszę.
  • Pomocne może być wypisanie plansza[0] is plansza[1] — operator is sprawdza, czy dwie nazwy wskazują na ten sam obiekt w pamięci.

Przykład

Wejście
3 3
2
0 0
2 1
Wyjście
1 0 0
0 0 0
0 1 0
Zasady obowiązujące w rozdziale 13

Zadania w tym rozdziale ćwiczą pracę z listami dwuwymiarowymi (macierzami): tworzenie, wczytywanie, przechodzenie po wierszach i kolumnach oraz przekształcanie.
Każde zadanie (oraz każdy podpunkt) jest osobnym, niezależnym programem: czyta standardowe wejście (stdin) i wypisuje wynik na standardowe wyjście (stdout).

Konwencje wspólne:

  • Dane wczytuj dokładnie w kolejności podanej w sekcji Wejście.
  • Wiersz macierzy na wejściu to jedna linia z liczbami oddzielonymi spacjami — wczytaj całą linię i rozbij ją po spacjach (input().split()).
  • W wyjściu macierzy: każdy wiersz w osobnej linii, elementy oddzielone pojedynczą spacją.
  • Program nie wypisuje komunikatów typu „Podaj liczbę:”.

Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.

Python uruchomi się w przeglądarce przy pierwszym teście.

Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.

Testy

Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.

Test 1

Nie uruchomiono
Wejście
2 2
1
0 1
Oczekiwane wyjście
0 1
0 0

Test 2

Nie uruchomiono
Wejście
1 4
2
0 0
0 3
Oczekiwane wyjście
1 0 0 1

Test 3

Nie uruchomiono
Wejście
3 2
0
Oczekiwane wyjście
0 0
0 0
0 0

Test 4

Nie uruchomiono
Wejście
4 3
3
0 0
1 1
3 2
Oczekiwane wyjście
1 0 0
0 1 0
0 0 0
0 0 1

Test 5

Nie uruchomiono
Wejście
2 3
3
1 2
1 2
0 0
Oczekiwane wyjście
1 0 0
0 0 1

Test 6

Nie uruchomiono
Wejście
3 3
3
0 2
1 2
2 2
Oczekiwane wyjście
0 0 1
0 0 1
0 0 1

Test 7

Nie uruchomiono
Wejście
3 4
2
2 0
0 3
Oczekiwane wyjście
0 0 0 1
0 0 0 0
1 0 0 0
Uruchom z własnymi danymi