arrow_back Powrót do aplikacji

Dzielenie pisemne

WPROWADZENIE

Program generuje 10 działań dzielenia wraz z odpowiedziami:

dzielna : dzielnik = iloraz

  • Zadeklaruj minimalną i maksymalną wartość dzielnej
  • Zadeklaruj minimalną i maksymalną wartość dzielnika

PRZYKŁAD

Minimalna wartość dzielnej: 3000
Maksymalna wartość dzielnej: 4000

Wylosowane zostanie 10 liczb z przedziału od 3000 do 4000

Minimalna wartość dzielnika: 90
Maksymalna wartość dzielnika: 200

Wylosowane zostanie 10 liczb z przedziału od 90 do 200

Przykładowy wynik:

Tu ma być grafika: https://mat.przemek.edu.pl/wp-content/uploads/2024/08/image-2-1024x794.png

Na dole każdej strony można dodać własny podpis.


KOD W JĘZYKU PYTHON

pip install reportlab

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from reportlab.lib.units import inch
from random import randrange
import string

while True:
   try:
       min_dividend = int(input("Podaj minimalną wartość dla dzielnej (liczba całkowita): "))
       max_dividend = int(input("Podaj maksymalną wartość dla dzielnej (liczba całkowita większa lub równa poprzedniej): "))
       min_divisor = int(input("Podaj minimalną wartość dla dzielnika (liczba całkowita większa od 1): "))
       max_divisor = int(input("Podaj maksymalną wartość dla dzielnika (liczba całkowita większa lub równa poprzedniej): "))
       if min_dividend >= max_dividend or min_divisor >= max_divisor or min_divisor < 2:
           print("Wprowadzone wartości są nieprawidłowe. WPROWADŹ JESZCZE RAZ WSZYSTKIE PONOWNIE:\n")
           continue
       break
   except ValueError:
       print("Wprowadzono nieprawidłowe dane. Spróbuj ponownie.")

examples = []
for i in range(10):
   dividend = randrange(min_dividend, max_dividend + 1) 
   divisor = randrange(min_divisor, max_divisor + 1)     
   quotient = dividend // divisor 
   remainder = dividend % divisor 
   example = f"{string.ascii_uppercase[i]}) {dividend} ÷ {divisor} ="
   if remainder == 0:
       examples.append((example, str(quotient)))
   else:
       examples.append((example, f"{quotient} r {remainder}"))


napis = str(input('Wpisz tekst, który zostanie dodany na dole każdej strony w pliku PDF  '))

c = canvas.Canvas("cwiczenia.pdf", pagesize=letter)


# pierwsza strona PDF
c.setFont("Helvetica", 14)
c.drawString(inch, 10 * inch, "Wykonaj obliczenia:")
x = 1.5 * inch
y = 9.5 * inch
for i, (example, _) in enumerate(examples):
   if i % 1 == 0 and i != 0:
       x = 1.5 * inch
       y -= 0.8 * inch
   c.drawString(x, y, example)
   x += 1.5 * inch
c.drawCentredString(letter[0] / 2, 0.5 * inch, napis)


# druga strona
c.showPage()
c.setFont("Helvetica", 14)
c.drawString(inch, 10 * inch, "Odpowiedzi:")
x = 1.5 * inch
y = 9.5 * inch
for i, (_, answer) in enumerate(examples):
   if i % 1 == 0 and i != 0:
       x = 1.5 * inch
       y -= 0.8 * inch
   c.drawString(x, y, f"{string.ascii_uppercase[i]}) {answer}")
   x += 1.5 * inch
c.drawCentredString(letter[0] / 2, 0.5 * inch, napis)

c.save()
print('\n\n   PLIK O NAZWIE cwiczenia.pdf ZOSTAŁ WYGENEROWANY')

⬆️⬆️⬆️ Zobacz w Google Colaboratory


JAK DZIAŁA PROGRAM?

  1. instalacja biblioteki do eksportu PDF
  2. Importowanie modułów
  3. Utworzenie pętli, która pobiera minimalną i maksymalną wartość dla dzielnej i dzielnika od użytkownika.
  4. Upewnienie się, że minimalna wartość dzielnej jest mniejsza niż maksymalna wartość dzielnej, minimalna wartość dzielnika jest większa niż 1, a minimalna wartość dzielnika jest mniejsza niż maksymalna wartość dzielnika. 
  5. Jeśli którykolwiek z tych warunków nie jest spełniony, użytkownik jest proszony o ponowne wprowadzenie danych.
  6. Wygenerowanie 10 przykładów dzielenia całkowitego z wykorzystaniem funkcji randrange z przedziałów minimalnych i maksymalnych wartości dzielnej i dzielnika, a następnie przypisanie wyników do zmiennej examples jako listy krotek zawierających przykład i odpowiedź.
  7. Zapytanie użytkownika o tekst, który ma zostać dodany na dole każdej strony pliku PDF.
  8. Utworzenie obiektu canvas i wybranie rozmiaru strony jako letter.
  9. Na pierwszej stronie PDF:
    • ustawienie czcionki Helvetica o rozmiarze 14 i wyświetlenie tekstu „Wykonaj obliczenia:”. 
    • Następnie, dla każdego przykładu, wyświetlenie numeru przykładu, dzielnej, dzielnika i znaku równości. 
    • Przykłady są wyświetlane w dwóch kolumnach, zaczynając od lewej strony, a następnie przesuwając w dół do kolejnego wiersza, gdy pierwszy wiersz zostanie wypełniony. 
    • Na końcu strony dodawany jest tekst wprowadzony przez użytkownika.
  10. Druga strona jest wypełniona odpowiedziami dla każdego przykładu, numerem przykładu i odpowiedzią.
  11. Wyświetlanie odbywa się w ten sam sposób, co na pierwszej stronie.
  12. Na końcu strony dodawany jest tekst wprowadzony przez użytkownika.
  13. Zapisanie pliku pdf o nazwie cwiczenia.pdf.
  14. Wyświetlenie komunikatu informującego, że plik został wygenerowany.
arrow_back Powrót do aplikacji