Zadanie 3. Skażone produkty

Produkty w magazynie zakładu chemii gospodarczej w Dolinie Bajtowej przechowywane są na regale, na którym mieści się 15 000 artykułów ustawionych obok siebie. Każde miejsce na regale oznaczone jest liczbą całkowitą – zaczynając od 1, kończąc na 15 000. Produkty określa identyfikator złożony z trzech cyfr (liczby całkowitej z przedziału [ 100 , 999 ] ). Zakład dba o to, aby artykuły były posortowane zgodnie z identyfikatorami, w kolejności niemalejącej.

Plik produkty.txt zawiera 15 000 wierszy z posortowanymi identyfikatorami produktów – liczby całkowite z przedziału [ 100,999 ] .

Przykładowe dane z pliku:

100

229

853

Rb3h7tSprg8bS

Przycisk umożliwiający pobranie pliku TXT z treścią zadania.

produkty.txt
Plik TXT o rozmiarze 73.24 KB w języku polskim

W procesie produkcji jednego z artykułów wkradł się błąd, co spowodowało, że nie nadaje się on do sprzedaży. Ponadto okazało się, że produkt ten, stojąc w magazynie, mógł doprowadzić do skażenia innych produktów znajdujących się w jego sąsiedztwie.

Po wykonaniu analiz udało się zidentyfikować produkt, który powinien zostać usunięty z magazynu. Był to artykuł o identyfikatorze 229. Ustalono także, że dla bezpieczeństwa należy zutylizować 20 produktów stojących na lewo oraz 20 produktów stojących na prawo od źródła skażenia.

Mając do dyspozycji spis identyfikatorów produktów znajdujących się na regale w magazynie (produkty są posortowane), napisz program, który znajdzie miejsca na regale, z których artykuły powinny trafić do utylizacji, a dokładnie miejsce pierwszego oraz miejsce ostatniego zutylizowanego produktu, a następnie zapisze je do pliku utylizacja.txt.

Do sprawdzenia swojego programu możesz wykorzystać ćwiczenia, w których umieszczono fragment danych zawartych w pliku produkty.txt. W tym wypadku przyjmij, że regał magazynu ma 50 miejsc. Liczby będące odpowiedzią do zadania wypisz, oddzielając znakiem nowej linii.

Do oceny oddajesz:

  • plik utylizacja.txt zawierający odpowiedź (miejsce pierwszego oraz miejsce ostatniego zutylizowanego produktu)

  • plik(i) z komputerową realizacją zadania (kodem programu)

Praca domowa

Przedstaw rozwiązanie zadania, pisząc program w języku C++, Java lub Python. Zadbaj o prawidłowe wczytanie danych z pliku tekstowego. Rozwiązanie zadania znajduje się pod sekcją ćwiczeń.

11
Pokaż ćwiczenia:
1

C++

21
Ćwiczenie 1
RdlcT6sHc6Odj
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.

Twoje zadanie: Napisz program odnajdujący pierwsze i ostatnie miejsce produktów, które należy zutylizować.

Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny. Linia 2. using namespace std średnik. Linia 4. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy. Linia 5. int produkty otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 100 przecinek 100 przecinek 101 przecinek 101 przecinek 113 przecinek 114 przecinek 114 przecinek 120 przecinek 126 przecinek 126 przecinek 126 przecinek 126 przecinek 126 przecinek 134 przecinek 180 przecinek 180 przecinek 182 przecinek 196 przecinek 197 przecinek 205 przecinek 210 przecinek 210 przecinek 210 przecinek 229 przecinek 229 przecinek 229 przecinek 246 przecinek 248 przecinek 255 przecinek 286 przecinek 295 przecinek 299 przecinek 318 przecinek 361 przecinek 373 przecinek 373 przecinek 378 przecinek 389 przecinek 401 przecinek 407 przecinek 412 przecinek 436 przecinek 540 przecinek 560 przecinek 587 przecinek 596 przecinek 603 przecinek 610 przecinek 626 przecinek 701 zamknij nawias klamrowy średnik. Linia 6. int dlugoscProdukty znak równości 50 średnik. Linia 7. int identyfikator znak równości 229 średnik. Linia 9. prawy ukośnik prawy ukośnik Miejsce na twój kod. Linia 11. return 0 średnik. Linia 12. zamknij nawias klamrowy. Linia 13. at at at. Linia 14. language znak równości cpp17. Linia 15. at at at. Linia 16. Napisz program odnajdujący pierwsze i ostatnie miejsce produktów przecinek które należy zutylizować kropka. Linia 17. at at at. Linia 18. at at at. Linia 19. at at at. Linia 20. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7. Linia 21. import sys. Linia 22. podkreślnik podkreślnik TF znak równości open otwórz nawias okrągły 3 przecinek apostrof w apostrof zamknij nawias okrągły. Linia 23. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek. Linia 24. print otwórz nawias okrągły str otwórz nawias okrągły t zamknij nawias okrągły przecinek file znak równości podkreślnik podkreślnik TF zamknij nawias okrągły. Linia 26. if sys kropka stdin kropka read otwórz nawias okrągły zamknij nawias okrągły kropka strip otwórz nawias okrągły zamknij nawias okrągły znak równości znak równości cudzysłów cudzysłów cudzysłów 4. Linia 27. 46 cudzysłów cudzysłów cudzysłów dwukropek. Linia 28. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.
1

Java

21
Ćwiczenie 2
RFVOr3a0XMdhe
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.

Twoje zadanie: Napisz program odnajdujący pierwsze i ostatnie miejsce produktów, które należy zutylizować.

Linia 1. public class Main otwórz nawias klamrowy. Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 3. int otwórz nawias kwadratowy zamknij nawias kwadratowy produkty znak równości otwórz nawias klamrowy 100 przecinek 100 przecinek 101 przecinek 101 przecinek 113 przecinek 114 przecinek 114 przecinek 120 przecinek 126 przecinek 126 przecinek 126 przecinek 126 przecinek 126 przecinek 134 przecinek 180 przecinek 180 przecinek 182 przecinek 196 przecinek 197 przecinek 205 przecinek 210 przecinek 210 przecinek 210 przecinek 229 przecinek 229 przecinek 229 przecinek 246 przecinek 248 przecinek 255 przecinek 286 przecinek 295 przecinek 299 przecinek 318 przecinek 361 przecinek 373 przecinek 373 przecinek 378 przecinek 389 przecinek 401 przecinek 407 przecinek 412 przecinek 436 przecinek 540 przecinek 560 przecinek 587 przecinek 596 przecinek 603 przecinek 610 przecinek 626 przecinek 701 zamknij nawias klamrowy średnik. Linia 4. int dlugoscProdukty znak równości 50 średnik. Linia 5. int identyfikator znak równości 229 średnik. Linia 7. prawy ukośnik prawy ukośnik Miejsce na twój kod. Linia 8. zamknij nawias klamrowy. Linia 9. zamknij nawias klamrowy. Linia 10. at at at. Linia 11. language znak równości java11. Linia 12. at at at. Linia 13. Napisz program odnajdujący pierwsze i ostatnie miejsce produktów przecinek które należy zutylizować kropka. Linia 14. at at at. Linia 15. at at at. Linia 16. at at at. Linia 17. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7. Linia 18. import sys. Linia 20. podkreślnik podkreślnik TF znak równości open otwórz nawias okrągły 3 przecinek apostrof w apostrof zamknij nawias okrągły. Linia 23. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek. Linia 24. print otwórz nawias okrągły str otwórz nawias okrągły t zamknij nawias okrągły przecinek file znak równości podkreślnik podkreślnik TF zamknij nawias okrągły. Linia 27. expected podkreślnik output znak równości cudzysłów cudzysłów cudzysłów 4. Linia 28. 46 cudzysłów cudzysłów cudzysłów. Linia 29. input znak równości sys kropka stdin kropka read otwórz nawias okrągły zamknij nawias okrągły kropka strip otwórz nawias okrągły zamknij nawias okrągły. Linia 30. if input znak równości znak równości expected podkreślnik output kropka strip otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 31. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.
1

Python

21
Ćwiczenie 3
RRBNqKd0QmZVC
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.

Twoje zadanie: Napisz program odnajdujący pierwsze i ostatnie miejsce produktów, które należy zutylizować.

Linia 1. produkty znak równości otwórz nawias kwadratowy 100 przecinek 100 przecinek 101 przecinek 101 przecinek 113 przecinek 114 przecinek 114 przecinek 120 przecinek 126 przecinek 126 przecinek 126 przecinek 126 przecinek 126 przecinek 134 przecinek 180 przecinek 180 przecinek 182 przecinek 196 przecinek 197 przecinek 205 przecinek 210 przecinek 210 przecinek 210 przecinek 229 przecinek 229 przecinek 229 przecinek 246 przecinek 248 przecinek 255 przecinek 286 przecinek 295 przecinek 299 przecinek 318 przecinek 361 przecinek 373 przecinek 373 przecinek 378 przecinek 389 przecinek 401 przecinek 407 przecinek 412 przecinek 436 przecinek 540 przecinek 560 przecinek 587 przecinek 596 przecinek 603 przecinek 610 przecinek 626 przecinek 701 zamknij nawias kwadratowy. Linia 2. dlugosc podkreślnik produkty znak równości 50. Linia 3. identyfikator znak równości 229. Linia 5. kratka Miejsce na twój kod. Linia 6. at at at. Linia 7. language znak równości python37. Linia 8. at at at. Linia 9. Napisz program odnajdujący pierwsze i ostatnie miejsce produktów przecinek które należy zutylizować kropka. Linia 10. at at at. Linia 11. at at at. Linia 12. at at at. Linia 13. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7. Linia 14. import sys. Linia 16. podkreślnik podkreślnik TF znak równości open otwórz nawias okrągły 3 przecinek apostrof w apostrof zamknij nawias okrągły. Linia 17. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek. Linia 18. print otwórz nawias okrągły str otwórz nawias okrągły t zamknij nawias okrągły przecinek file znak równości podkreślnik podkreślnik TF zamknij nawias okrągły. Linia 21. expected podkreślnik output znak równości cudzysłów cudzysłów cudzysłów 4. Linia 22. 46 cudzysłów cudzysłów cudzysłów. Linia 23. input znak równości sys kropka stdin kropka read otwórz nawias okrągły zamknij nawias okrągły kropka strip otwórz nawias okrągły zamknij nawias okrągły. Linia 24. if input znak równości znak równości expected podkreślnik output kropka strip otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 25. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.

Odpowiedź do zadania

Rozwiązanie dla danych zawartych w pliku tekstowym produkty.txt:

RZrAcBSrTvytu

Przycisk umożliwiający pobranie pliku TXT z odpowiedzią do zadania.

Plik TXT o rozmiarze 9.00 B w języku polskim