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:


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.