Tense worksheets class 8th icse hard questions
tense worksheets class 8 ICSE hard questions grammar
| # | Sentence | Tense |
|---|---|---|
| 1 | She will have been teaching for 20 years by 2030. | Future Perfect Continuous |
| 2 | The committee had been deliberating for hours before a verdict was reached. | Past Perfect Continuous |
| 3 | He has been trying to contact you all day. | Present Perfect Continuous |
| 4 | They had submitted the report before the deadline. | Past Perfect |
| 5 | I shall be travelling to Delhi tomorrow morning. | Future Continuous |
| 6 | The match begins at 7 PM tonight. | Simple Present (used for future) |
| 7 | She has visited that museum before. | Present Perfect |
| 8 | He will have left by the time you reach. | Future Perfect |
Yesterday, I ___(1. go)_ to the market that I ___(2. not/visit)_ for over a year. The shopkeeper, who ___(3. know)_ me for years, immediately ___(4. recognise)_ me. He told me that he ___(5. expand)_ his shop since the last time I ___(6. visit)_. While we ___(7. talk)_, a man ___(8. rush)_ in and announced that someone ___(9. steal)_ his bag. By the time the police ___(10. arrive)_, the thief ___(11. disappear).
Give me pdf only questions
mkdir -p /tmp/workspace/tense-worksheet && ls /tmp/workspace/tense-worksheet/
~/tense-worksheet/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
output_path = "/tmp/workspace/tense-worksheet/Tense_Worksheet_Class8_ICSE.pdf"
doc = SimpleDocTemplate(
output_path,
pagesize=A4,
rightMargin=2*cm,
leftMargin=2*cm,
topMargin=2*cm,
bottomMargin=2*cm
)
styles = getSampleStyleSheet()
# Custom styles
title_style = ParagraphStyle(
'TitleStyle',
parent=styles['Title'],
fontSize=16,
textColor=colors.HexColor('#1a237e'),
spaceAfter=4,
alignment=TA_CENTER,
fontName='Helvetica-Bold'
)
subtitle_style = ParagraphStyle(
'SubtitleStyle',
parent=styles['Normal'],
fontSize=10,
textColor=colors.HexColor('#37474f'),
spaceAfter=2,
alignment=TA_CENTER,
fontName='Helvetica'
)
section_style = ParagraphStyle(
'SectionStyle',
parent=styles['Heading2'],
fontSize=11,
textColor=colors.white,
backColor=colors.HexColor('#1a237e'),
spaceBefore=12,
spaceAfter=6,
leftIndent=-0.3*cm,
rightIndent=-0.3*cm,
leading=16,
fontName='Helvetica-Bold'
)
instruction_style = ParagraphStyle(
'InstructionStyle',
parent=styles['Normal'],
fontSize=9.5,
textColor=colors.HexColor('#b71c1c'),
spaceAfter=6,
fontName='Helvetica-Oblique'
)
q_style = ParagraphStyle(
'QuestionStyle',
parent=styles['Normal'],
fontSize=10,
textColor=colors.HexColor('#212121'),
spaceAfter=10,
leading=16,
fontName='Helvetica'
)
note_style = ParagraphStyle(
'NoteStyle',
parent=styles['Normal'],
fontSize=9,
textColor=colors.HexColor('#4a148c'),
backColor=colors.HexColor('#f3e5f5'),
spaceAfter=6,
leftIndent=0.3*cm,
rightIndent=0.3*cm,
leading=14,
fontName='Helvetica-Oblique'
)
story = []
# ─── HEADER ───────────────────────────────────────────────────────────────────
story.append(Paragraph("TENSE WORKSHEETS", title_style))
story.append(Paragraph("Class 8 ICSE | English Grammar | Hard Level", subtitle_style))
story.append(Spacer(1, 0.1*cm))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#1a237e')))
story.append(Spacer(1, 0.2*cm))
# Info table
info_data = [
["Name: _______________________________", "Class: _____________", "Date: _____________"],
["School: _______________________________", "Roll No.: _____________", "Max. Marks: 50"]
]
info_table = Table(info_data, colWidths=[8.5*cm, 4.5*cm, 4.5*cm])
info_table.setStyle(TableStyle([
('FONTNAME', (0,0), (-1,-1), 'Helvetica'),
('FONTSIZE', (0,0), (-1,-1), 9),
('TEXTCOLOR', (0,0), (-1,-1), colors.HexColor('#37474f')),
('BOTTOMPADDING', (0,0), (-1,-1), 4),
('TOPPADDING', (0,0), (-1,-1), 4),
]))
story.append(info_table)
story.append(Spacer(1, 0.3*cm))
story.append(HRFlowable(width="100%", thickness=0.5, color=colors.HexColor('#90a4ae')))
story.append(Spacer(1, 0.2*cm))
# ─── WORKSHEET 1 ──────────────────────────────────────────────────────────────
story.append(Paragraph(" WORKSHEET 1: Fill in the Blanks (Mixed Tenses) [10 Marks]", section_style))
story.append(Paragraph("Fill in the blanks with the correct tense form of the verbs given in brackets.", instruction_style))
q1 = [
"1. By the time the ambulance arrived, the patient ________________________ (die).",
"2. She ________________________ (not/see) him since they ________________________ (part) ways in 2019.",
"3. The children ________________________ (play) in the garden when it suddenly ________________________ (start) to rain.",
"4. I ________________________ (wait) for two hours before the doctor finally ________________________ (call) me in.",
"5. He ________________________ (work) in this company for ten years when he ________________________ (decide) to resign.",
"6. No sooner ________________________ the bell ________________________ (ring) than the students ________________________ (rush) out.",
"7. I wish I ________________________ (study) harder before the examination.",
"8. By next month, they ________________________ (complete) the construction of the bridge.",
"9. The sun ________________________ (set) in the west. It ________________________ (set) already by the time we reached the hill.",
"10. She ________________________ (read) the novel three times and still ________________________ (find) it interesting.",
]
for q in q1:
story.append(Paragraph(q, q_style))
story.append(Spacer(1, 0.2*cm))
# ─── WORKSHEET 2 ──────────────────────────────────────────────────────────────
story.append(Paragraph(" WORKSHEET 2: Error Correction [8 Marks]", section_style))
story.append(Paragraph("Each sentence contains ONE tense error. Identify the incorrect word/phrase, underline it, and write the correct form in the space provided.", instruction_style))
q2 = [
"1. She has completed her homework before her mother came home.\n Correction: ___________________________",
"2. When I reached the station, the train already left.\n Correction: ___________________________",
"3. He is working on this project since last March.\n Correction: ___________________________",
"4. By the time you will arrive, I will have left.\n Correction: ___________________________",
"5. I am knowing him for over fifteen years.\n Correction: ___________________________",
"6. She was waiting for you since morning.\n Correction: ___________________________",
"7. They have been to Paris three years ago.\n Correction: ___________________________",
"8. No sooner did she enter the hall when everyone started clapping.\n Correction: ___________________________",
]
for q in q2:
story.append(Paragraph(q, q_style))
story.append(Spacer(1, 0.2*cm))
# ─── WORKSHEET 3 ──────────────────────────────────────────────────────────────
story.append(Paragraph(" WORKSHEET 3: Sentence Transformation [10 Marks]", section_style))
story.append(Paragraph("Rewrite the following sentences as directed without changing the meaning.", instruction_style))
q3 = [
'1. He left before I arrived.\n (Use: "By the time...")\n ___________________________________________________________________________',
'2. The last time I saw her was in 2021.\n (Use: "I have not...")\n ___________________________________________________________________________',
'3. She started cooking an hour ago and is still cooking.\n (Use: Present Perfect Continuous)\n ___________________________________________________________________________',
'4. As soon as the match ended, it started raining.\n (Use: "No sooner...than")\n ___________________________________________________________________________',
'5. They began building the flyover six months ago and it is still going on.\n (Use: Past Perfect Continuous)\n ___________________________________________________________________________',
'6. I last visited my grandparents three years ago.\n (Use: "It has been...")\n ___________________________________________________________________________',
'7. The moment the teacher entered, all the students stood up.\n (Use: "Hardly...when")\n ___________________________________________________________________________',
'8. This is the best film I have ever seen.\n (Rewrite using Past Perfect)\n ___________________________________________________________________________',
'9. He said, "I have finished my work."\n (Change to Reported Speech)\n ___________________________________________________________________________',
'10. She has been living in Mumbai since 2015.\n (Frame a question using "How long...")\n ___________________________________________________________________________',
]
for q in q3:
story.append(Paragraph(q, q_style))
story.append(Spacer(1, 0.2*cm))
# ─── WORKSHEET 4 ──────────────────────────────────────────────────────────────
story.append(Paragraph(" WORKSHEET 4: Identify the Tense [8 Marks]", section_style))
story.append(Paragraph("Write the name of the tense used in each sentence.", instruction_style))
table_data = [
["#", "Sentence", "Tense"],
["1", "She will have been teaching for 20 years by 2030.", ""],
["2", "The committee had been deliberating for hours before a verdict was reached.", ""],
["3", "He has been trying to contact you all day.", ""],
["4", "They had submitted the report before the deadline.", ""],
["5", "I shall be travelling to Delhi tomorrow morning.", ""],
["6", "The match begins at 7 PM tonight.", ""],
["7", "She has visited that museum before.", ""],
["8", "No sooner had the siren sounded than everyone ran out.", ""],
]
t = Table(table_data, colWidths=[0.8*cm, 10.5*cm, 6*cm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a237e')),
('TEXTCOLOR', (0,0), (-1,0), colors.white),
('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
('FONTNAME', (0,1), (-1,-1), 'Helvetica'),
('FONTSIZE', (0,0), (-1,-1), 9),
('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#e8eaf6'), colors.white]),
('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#90a4ae')),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('TOPPADDING', (0,0), (-1,-1), 5),
('BOTTOMPADDING', (0,0), (-1,-1), 5),
('LEFTPADDING', (0,0), (-1,-1), 5),
]))
story.append(t)
story.append(Spacer(1, 0.3*cm))
# ─── WORKSHEET 5 ──────────────────────────────────────────────────────────────
story.append(Paragraph(" WORKSHEET 5: Passage-Based Fill in the Blanks [7 Marks]", section_style))
story.append(Paragraph("Read the passage carefully and fill in each numbered blank with the correct tense form of the verb given in brackets.", instruction_style))
passage = (
"Yesterday, I <u>__(1)__</u> (go) to the market that I <u>__(2)__</u> (not/visit) for over a year. "
"The shopkeeper, who <u>__(3)__</u> (know) me for years, immediately <u>__(4)__</u> (recognise) me. "
"He told me that he <u>__(5)__</u> (expand) his shop since the last time I <u>__(6)__</u> (visit). "
"While we <u>__(7)__</u> (talk), a man <u>__(8)__</u> (rush) in and announced that someone "
"<u>__(9)__</u> (steal) his bag. By the time the police <u>__(10)__</u> (arrive), "
"the thief <u>__(11)__</u> (disappear)."
)
passage_style = ParagraphStyle(
'PassageStyle',
parent=styles['Normal'],
fontSize=10,
textColor=colors.HexColor('#212121'),
spaceAfter=10,
leading=18,
fontName='Helvetica',
borderPad=8,
borderColor=colors.HexColor('#7986cb'),
borderWidth=1,
backColor=colors.HexColor('#e8eaf6'),
leftIndent=0.3*cm,
rightIndent=0.3*cm,
)
story.append(Paragraph(passage, passage_style))
story.append(Spacer(1, 0.2*cm))
# ─── WORKSHEET 6 ──────────────────────────────────────────────────────────────
story.append(Paragraph(" WORKSHEET 6: Multiple Choice Questions (MCQ) [7 Marks]", section_style))
story.append(Paragraph("Circle the correct option (a, b, c or d).", instruction_style))
mcqs = [
"1. He ___ here since his childhood.\n a) lives b) has been living c) had lived d) was living",
"2. No sooner ___ the news than she burst into tears.\n a) she heard b) had she heard c) she had heard d) did she hear",
"3. By the time the guests arrive, we ___ dinner.\n a) will finish b) will have finished c) finish d) are finishing",
"4. The train ___ when I reached the platform.\n a) has already left b) had already left c) already left d) was already left",
"5. She ___ for the exam all week and still isn't ready.\n a) studies b) has studied c) has been studying d) was studying",
"6. I wish I ___ more careful yesterday.\n a) was b) am c) had been d) were",
"7. Hardly ___ the door when the phone rang.\n a) I opened b) had I opened c) I had opened d) did I open",
]
for q in mcqs:
story.append(Paragraph(q, q_style))
story.append(Spacer(1, 0.3*cm))
# ─── NOTE ─────────────────────────────────────────────────────────────────────
story.append(HRFlowable(width="100%", thickness=0.5, color=colors.HexColor('#90a4ae')))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
"Note: Answer keys are intentionally not included. These questions are meant for examination practice. "
"Refer to your grammar textbook or teacher for verification.",
note_style
))
# ─── BUILD ────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF generated at: {output_path}")
python /tmp/workspace/tense-worksheet/generate_pdf.py
Tense Worksheet Class8 ICSE
PDF Document · PDF
| Worksheet | Topic | Marks |
|---|---|---|
| 1 | Fill in the Blanks - Mixed Tenses | 10 |
| 2 | Error Correction (1 error per sentence) | 8 |
| 3 | Sentence Transformation | 10 |
| 4 | Identify the Tense (table format) | 8 |
| 5 | Passage-based Fill in the Blanks | 7 |
| 6 | MCQs | 7 |
| Total | 50 |