{"id":"informatyka-2025-czerwiec-matura-rozszerzona/zad/2.1","paper_id":"informatyka-2025-czerwiec-matura-rozszerzona","number":"2.1","points":4,"ptype":"open","subject":"informatyka","category":"matura","year":2025,"month":"czerwiec","level":"rozszerzona","text":"Zadanie 2.1. (0-4)\nNiech k będzie dodatnią liczbą całkowitą, której zapis dziesiętny składa się z parzystej liczby\ncyfr. Na zapisie dziesiętnym liczby k wykonujemy operację cięcia na połowę. Powstają wtedy\nzapisy dwóch liczb a i b: pierwszy (liczby a), o długości równej połowie długości zapisu k,\nzłożony z cyfr należących do lewej strony tego zapisu, i drugi (liczby b) - złożony z cyfr\nz prawej strony zapisu.\nNapisz w pseudojęzyku lub wybranym języku programowania algorytm, który dla danej\nliczby k, której zapis dziesiętny składa się z parzystej liczby cyfr, obliczy liczby a i b powstałe\npo wykonaniu operacji cięcia na połowę zapisu dziesiętnego liczby k.\nPrzykład.\nDla k = 123456 otrzymamy a = 123 i b = 456\nDla k = 120056 otrzymamy a = 120 i b = 56\nUwaga: Twój algorytm może używać wyłącznie zmiennych przechowujących liczby\ncałkowite oraz może operować wyłącznie na liczbach całkowitych. W zapisie możesz\nwykorzystać tylko operacje arytmetyczne: dodawanie, odejmowanie, mnożenie, dzielenie,\ndzielenie całkowite, resztę z dzielenia oraz porównywanie liczb, instrukcje sterujące,\nprzypisania do zmiennych lub samodzielnie napisane funkcje, wykorzystujące wyżej\nwymienione operacje. Zabronione jest używanie funkcji wbudowanych oraz operatorów\ni typów innych niż wymienione (w tym - tablic i list).\nSpecyfikacja:\nDane\nk - dodatnia liczba całkowita o zapisie dziesiętnym składającym się z parzystej liczby\ncyfr\nWynik\na, b - liczby, powstałe w wyniku cięcia na połowę zapisu liczby k\nMINP-R0_100\nMiejsce na zapis algorytmu\nMINP-R0_100","answer":null,"answer_text":"Zadanie 2.1. (0-4)\nZasady oceniania\n4 pkt - odpowiedź poprawna, w tym:\n3 pkt za otrzymanie liczby b - z prawej części zapisu, w tym:\n1 pkt za obliczenie długości zapisu,\n1 pkt za poprawne pobieranie kolejnych cyfr,\n1 pkt za otrzymanie poprawnej liczby,\n1 pkt za otrzymanie liczby a - z lewej części napisu.\n0 pkt - odpowiedź niepoprawna albo brak rozwiązania.\nPrzykładowe rozwiązania\nRozwiązanie 1 (pseudokod):\ndlugosc ← 0\nx ← k\ndopóki (x > 0)\nx ← x div 10\ndlugosc ← dlugosc + 1\npotega ← 1\nb ← 0\ndla i = 1, 2, …, dlugosc div 2\nb ← b + potega * (k mod 10)\nk ← k div 10\npotega ← potega * 10\na ← k\nRozwiązanie 2 (Python):\ndlugosc = 0\nx = k\nwhile x > 0:\ndlugosc += 1\nx = x//10\nileZer = 1\ni = 0\nwhile i < dlugosc//2:\nileZer = ileZer*10\ni += 1\na = k // ileZer\nb = k % ileZer","solution":null,"image":"img/informatyka-2025-czerwiec-matura-rozszerzona/zad-2.1.webp","solution_image":null,"topics":null,"page_from":6,"source":"ocr","answer_source":null,"answer_text_source":"ocr","solution_source":null,"text_source":"ocr","source_label":"Informatyka · Matura · czerwiec 2025 (rozszerzona)","subject_label":"Informatyka","category_label":"Matura","text_html":"<p>Zadanie 2.1. (0-4)<br>Niech k będzie dodatnią liczbą całkowitą, której zapis dziesiętny składa się z parzystej liczby<br>cyfr. Na zapisie dziesiętnym liczby k wykonujemy operację cięcia na połowę. Powstają wtedy<br>zapisy dwóch liczb a i b: pierwszy (liczby a), o długości równej połowie długości zapisu k,<br>złożony z cyfr należących do lewej strony tego zapisu, i drugi (liczby b) - złożony z cyfr<br>z prawej strony zapisu.<br>Napisz w pseudojęzyku lub wybranym języku programowania algorytm, który dla danej<br>liczby k, której zapis dziesiętny składa się z parzystej liczby cyfr, obliczy liczby a i b powstałe<br>po wykonaniu operacji cięcia na połowę zapisu dziesiętnego liczby k.<br>Przykład.<br>Dla k = 123456 otrzymamy a = 123 i b = 456<br>Dla k = 120056 otrzymamy a = 120 i b = 56<br>Uwaga: Twój algorytm może używać wyłącznie zmiennych przechowujących liczby<br>całkowite oraz może operować wyłącznie na liczbach całkowitych. W zapisie możesz<br>wykorzystać tylko operacje arytmetyczne: dodawanie, odejmowanie, mnożenie, dzielenie,<br>dzielenie całkowite, resztę z dzielenia oraz porównywanie liczb, instrukcje sterujące,<br>przypisania do zmiennych lub samodzielnie napisane funkcje, wykorzystujące wyżej<br>wymienione operacje. Zabronione jest używanie funkcji wbudowanych oraz operatorów<br>i typów innych niż wymienione (w tym - tablic i list).<br>Specyfikacja:<br>Dane<br>k - dodatnia liczba całkowita o zapisie dziesiętnym składającym się z parzystej liczby<br>cyfr<br>Wynik<br>a, b - liczby, powstałe w wyniku cięcia na połowę zapisu liczby k<br>MINP-R0_100<br>Miejsce na zapis algorytmu<br>MINP-R0_100</p>","answer_text_html":"<p>Zadanie 2.1. (0-4)<br>Zasady oceniania<br>4 pkt - odpowiedź poprawna, w tym:<br>3 pkt za otrzymanie liczby b - z prawej części zapisu, w tym:<br>1 pkt za obliczenie długości zapisu,<br>1 pkt za poprawne pobieranie kolejnych cyfr,<br>1 pkt za otrzymanie poprawnej liczby,<br>1 pkt za otrzymanie liczby a - z lewej części napisu.<br>0 pkt - odpowiedź niepoprawna albo brak rozwiązania.<br>Przykładowe rozwiązania<br>Rozwiązanie 1 (pseudokod):<br>dlugosc ← 0<br>x ← k<br>dopóki (x &gt; 0)<br>x ← x div 10<br>dlugosc ← dlugosc + 1<br>potega ← 1<br>b ← 0<br>dla i = 1, 2, …, dlugosc div 2<br>b ← b + potega * (k mod 10)<br>k ← k div 10<br>potega ← potega * 10<br>a ← k<br>Rozwiązanie 2 (Python):<br>dlugosc = 0<br>x = k<br>while x &gt; 0:<br>dlugosc += 1<br>x = x//10<br>ileZer = 1<br>i = 0<br>while i &lt; dlugosc//2:<br>ileZer = ileZer*10<br>i += 1<br>a = k // ileZer<br>b = k % ileZer</p>","solutions":[]}