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:

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?
- instalacja biblioteki do eksportu PDF
- Importowanie modu艂贸w
- Utworzenie p臋tli, kt贸ra pobiera minimaln膮 i maksymaln膮 warto艣膰 dla dzielnej i dzielnika od u偶ytkownika.
- 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.聽
- Je艣li kt贸rykolwiek z tych warunk贸w nie jest spe艂niony, u偶ytkownik jest proszony o ponowne wprowadzenie danych.
- 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藕.
- Zapytanie u偶ytkownika o tekst, kt贸ry ma zosta膰 dodany na dole ka偶dej strony pliku PDF.
- Utworzenie obiektu canvas i wybranie rozmiaru strony jako letter.
- 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.
- Druga strona jest wype艂niona odpowiedziami dla ka偶dego przyk艂adu, numerem przyk艂adu i odpowiedzi膮.
- Wy艣wietlanie odbywa si臋 w ten sam spos贸b, co na pierwszej stronie.
- Na ko艅cu strony dodawany jest tekst wprowadzony przez u偶ytkownika.
- Zapisanie pliku pdf o nazwie cwiczenia.pdf.
- Wy艣wietlenie komunikatu informuj膮cego, 偶e plik zosta艂 wygenerowany.
Dodaj komentarz