Sprawdź się
Zadanie jest kontynuacją zadania nr 2 z sekcji „Prezentacja multimedialna”.
Zadanie 2.2
Na podstawie danych stacji pogodowej z zadania 2.1 zapisanych w plikach dzien_1.txt, dzien_2.txt, dzien_3.txt, dzien_4.txt oraz dzien_5.txt napisz program, który wygeneruje zestawienie najwyższych zanotowanych temperatur dla danych dni oraz godzin, w których je odnotowano, i zapisze je w pliku z22_wyniki.txt. W sytuacji, gdy najwyższa temperatura została zanotowana w danym dniu kilkukrotnie, należy podać pierwszą godzinę, w której ją zanotowano.
Archiwum zawiera 5 plików tekstowych. W każdym z plików znajdują się 24 liczby naturalne. Każda z liczb zapisana jest w osobnym wierszu.
Przycisk do pobrania pliku ZIP z treścią zadania. Pobierz załącznik
Zestawienia dla każdego dnia zapisane w osobnych wierszach powinno zawierać dzień, temperaturę i godzinę oddzielone znakami odstępu.
Plik przyklad.txt zawiera przykładowe dane.
Przycisk do pobrania pliku RAR z treścią zadania. Pobierz załącznik
Wyniki dla pliku przyklad.txt:
1.DZIEN 33 22
2.DZIEN 37 9
3.DZIEN 33 11
4.DZIEN 37 5
5.DZIEN 33 8Do oceny oddajesz:
plik
z22_wyniki.txtzawierający listę najwyższych temperatur w podanych dniach, dane o każdym dniu zapisane w nowej linii w odpowiednim formacie (dzień, temperatura, godzina),plik(i) z komputerową realizacją zadania (kodem programu).
Rozwiąż zadanie dla kompletnych danych wejściowych zawartych w plikach. Rozwiązanie przedstaw w wybranym języku programowania, dostępnym na egzaminie maturalnym: C++, Java lub Python. Zadbaj o prawidłowe wczytanie danych z pliku tekstowego do programu. Odpowiedź znajdziesz w osobnym pliku umieszczonym pod sekcją ćwiczeń.
Przetestuj działanie programu dla danych podanych w testerkach.
Przykładowe rozwiązanie zadania:
#include <iostream>
using namespace std;
int dane[5][24] = {
{17, 33, 20, 3, 28, 27, 7, 17, 16, 12, 14, 11, 15, 7, 23, 32, 10, 33, 34, 15, 20, 13, 22, 26},
{29, 33, 16, 26, 30, 19, 23, 7, 18, 15, 32, 26, 8, 35, 17, 35, 17, 10, 31, 33, 1, 5, 34, 28},
{11, 18, 30, 13, 24, 18, 32, 1, 8, 31, 29, 33, 1, 14, 10, 24, 7, 19, 33, 15, 3, 31, 27, 12},
{32, 30, 25, 13, 31, 21, 22, 9, 26, 32, 23, 37, 27, 37, 33, 9, 15, 32, 14, 4, 19, 21, 21, 21},
{18, 3, 3, 4, 19, 29, 22, 11, 1, 30, 28, 16, 12, 34, 2, 26, 7, 7, 13, 16, 35, 14, 11, 15}
};
int main() {
int temp_maks[5] = {0, 0, 0, 0, 0};
int godziny[5] = {0, 0, 0, 0, 0};
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 24; j++) {
if (dane[i][j] > temp_maks[i]) {
temp_maks[i] = dane[i][j];
godziny[i] = j;
}
}
}
for (int i = 0; i < 5; i++) {
cout << i+1 << ".DZIEN " << temp_maks[i] << " " << godziny[i] << endl;
}
return 0;
}Przykładowe rozwiązanie zadania:
public class Main {
static int[][] dane = {
{17, 33, 20, 3, 28, 27, 7, 17, 16, 12, 14, 11, 15, 7, 23, 32, 10, 33, 34, 15, 20, 13, 22, 26},
{29, 33, 16, 26, 30, 19, 23, 7, 18, 15, 32, 26, 8, 35, 17, 35, 17, 10, 31, 33, 1, 5, 34, 28},
{11, 18, 30, 13, 24, 18, 32, 1, 8, 31, 29, 33, 1, 14, 10, 24, 7, 19, 33, 15, 3, 31, 27, 12},
{32, 30, 25, 13, 31, 21, 22, 9, 26, 32, 23, 37, 27, 37, 33, 9, 15, 32, 14, 4, 19, 21, 21, 21},
{18, 3, 3, 4, 19, 29, 22, 11, 1, 30, 28, 16, 12, 34, 2, 26, 7, 7, 13, 16, 35, 14, 11, 15}
};
public static void main(String[] args) {
int[] temp_maks = {0, 0, 0, 0, 0};
int[] godziny = {0, 0, 0, 0, 0};
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 24; j++) {
if (dane[i][j] > temp_maks[i]) {
temp_maks[i] = dane[i][j];
godziny[i] = j;
}
}
}
for (int i = 0; i < 5; i++) {
System.out.println(i+1 + ".DZIEN " + temp_maks[i] + " " + godziny[i]);
}
}
}Przykładowe rozwiązanie zadania:
dane = [
[17, 33, 20, 3, 28, 27, 7, 17, 16, 12, 14, 11, 15, 7, 23, 32, 10, 33, 34, 15, 20, 13, 22, 26],
[29, 33, 16, 26, 30, 19, 23, 7, 18, 15, 32, 26, 8, 35, 17, 35, 17, 10, 31, 33, 1, 5, 34, 28],
[11, 18, 30, 13, 24, 18, 32, 1, 8, 31, 29, 33, 1, 14, 10, 24, 7, 19, 33, 15, 3, 31, 27, 12],
[32, 30, 25, 13, 31, 21, 22, 9, 26, 32, 23, 37, 27, 37, 33, 9, 15, 32, 14, 4, 19, 21, 21, 21],
[18, 3, 3, 4, 19, 29, 22, 11, 1, 30, 28, 16, 12, 34, 2, 26, 7, 7, 13, 16, 35, 14, 11, 15]
]
for i, dzien in enumerate(dane):
print (f"{i+1}.DZIEN {max(dzien)} {dzien.index(max(dzien))}")Odpowiedź do zadania:
Poprawne wyniki dla zadania 2.2 znajdują się w pliku:
Przycisk do pobrania pliku TXT z rozwiązaniem zadania. Pobierz załącznik