348 lines
7.1 KiB
Markdown
348 lines
7.1 KiB
Markdown
|
|
# 📚 **BASIC LEARNING EXAMPLES - LAST Function**
|
||
|
|
|
||
|
|
## 🎯 **EXAMPLE 1: BASIC CONCEPT OF LAST FUNCTION**
|
||
|
|
|
||
|
|
```
|
||
|
|
**BASIC CONCEPT:**
|
||
|
|
LAST FUNCTION - Extract last word
|
||
|
|
|
||
|
|
**LEVEL:**
|
||
|
|
☒ Beginner ☐ Intermediate ☐ Advanced
|
||
|
|
|
||
|
|
**LEARNING OBJECTIVE:**
|
||
|
|
Understand how the LAST function extracts the last word from text
|
||
|
|
|
||
|
|
**CODE EXAMPLE:**
|
||
|
|
```basic
|
||
|
|
10 PALAVRA$ = "The mouse chewed the clothes"
|
||
|
|
20 ULTIMA$ = LAST(PALAVRA$)
|
||
|
|
30 PRINT "Last word: "; ULTIMA$
|
||
|
|
```
|
||
|
|
|
||
|
|
**SPECIFIC QUESTIONS:**
|
||
|
|
- How does the function know where the last word ends?
|
||
|
|
- What happens if there are extra spaces?
|
||
|
|
- Can I use it with numeric variables?
|
||
|
|
|
||
|
|
**PROJECT CONTEXT:**
|
||
|
|
I'm creating a program that analyzes sentences
|
||
|
|
|
||
|
|
**EXPECTED RESULT:**
|
||
|
|
Should display: "Last word: clothes"
|
||
|
|
|
||
|
|
**PARTS I DON'T UNDERSTAND:**
|
||
|
|
- Why are parentheses needed?
|
||
|
|
- How does the function work internally?
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🛠️ **EXAMPLE 2: SOLVING ERROR WITH LAST**
|
||
|
|
|
||
|
|
```
|
||
|
|
**BASIC ERROR:**
|
||
|
|
"Syntax error" when using LAST
|
||
|
|
|
||
|
|
**MY CODE:**
|
||
|
|
```basic
|
||
|
|
10 TEXTO$ = "Good day world"
|
||
|
|
20 RESULTADO$ = LAST TEXTO$
|
||
|
|
30 PRINT RESULTADO$
|
||
|
|
```
|
||
|
|
|
||
|
|
**PROBLEM LINE:**
|
||
|
|
Line 20
|
||
|
|
|
||
|
|
**EXPECTED BEHAVIOR:**
|
||
|
|
Show "world" on screen
|
||
|
|
|
||
|
|
**CURRENT BEHAVIOR:**
|
||
|
|
Syntax error
|
||
|
|
|
||
|
|
**WHAT I'VE TRIED:**
|
||
|
|
- Tried without parentheses
|
||
|
|
- Tried with different quotes
|
||
|
|
- Tried changing variable name
|
||
|
|
|
||
|
|
**BASIC VERSION:**
|
||
|
|
QBASIC with Rhai extension
|
||
|
|
|
||
|
|
**CORRECTED SOLUTION:**
|
||
|
|
```basic
|
||
|
|
10 TEXTO$ = "Good day world"
|
||
|
|
20 RESULTADO$ = LAST(TEXTO$)
|
||
|
|
30 PRINT RESULTADO$
|
||
|
|
```
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📖 **EXAMPLE 3: EXPLAINING LAST COMMAND**
|
||
|
|
|
||
|
|
```
|
||
|
|
**COMMAND:**
|
||
|
|
LAST - Extracts last word
|
||
|
|
|
||
|
|
**SYNTAX:**
|
||
|
|
```basic
|
||
|
|
ULTIMA$ = LAST(TEXTO$)
|
||
|
|
```
|
||
|
|
|
||
|
|
**PARAMETERS:**
|
||
|
|
- TEXTO$: String from which to extract the last word
|
||
|
|
|
||
|
|
**SIMPLE EXAMPLE:**
|
||
|
|
```basic
|
||
|
|
10 FRASE$ = "The sun is bright"
|
||
|
|
20 ULTIMA$ = LAST(FRASE$)
|
||
|
|
30 PRINT ULTIMA$ ' Shows: bright
|
||
|
|
```
|
||
|
|
|
||
|
|
**PRACTICAL EXAMPLE:**
|
||
|
|
```basic
|
||
|
|
10 INPUT "Enter your full name: "; NOME$
|
||
|
|
20 SOBRENOME$ = LAST(NOME$)
|
||
|
|
30 PRINT "Hello Mr./Mrs. "; SOBRENOME$
|
||
|
|
```
|
||
|
|
|
||
|
|
**COMMON ERRORS:**
|
||
|
|
- Forgetting parentheses: `LAST TEXTO$` ❌
|
||
|
|
- Using with numbers: `LAST(123)` ❌
|
||
|
|
- Forgetting to assign to a variable
|
||
|
|
|
||
|
|
**BEGINNER TIP:**
|
||
|
|
Always use parentheses and ensure content is text
|
||
|
|
|
||
|
|
**SUGGESTED EXERCISE:**
|
||
|
|
Create a program that asks for a sentence and shows the first and last word
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎨 **EXAMPLE 4: COMPLETE PROJECT WITH LAST**
|
||
|
|
|
||
|
|
```
|
||
|
|
# BASIC PROJECT: SENTENCE ANALYZER
|
||
|
|
|
||
|
|
## 📝 DESCRIPTION
|
||
|
|
Program that analyzes sentences and extracts useful information
|
||
|
|
|
||
|
|
## 🎨 FEATURES
|
||
|
|
- [x] Extract last word
|
||
|
|
- [x] Count words
|
||
|
|
- [x] Show statistics
|
||
|
|
|
||
|
|
## 🧩 CODE STRUCTURE
|
||
|
|
```basic
|
||
|
|
10 PRINT "=== SENTENCE ANALYZER ==="
|
||
|
|
20 INPUT "Enter a sentence: "; FRASE$
|
||
|
|
30
|
||
|
|
40 ' Extract last word
|
||
|
|
50 ULTIMA$ = LAST(FRASE$)
|
||
|
|
60
|
||
|
|
70 ' Count words (simplified)
|
||
|
|
80 PALAVRAS = 1
|
||
|
|
90 FOR I = 1 TO LEN(FRASE$)
|
||
|
|
100 IF MID$(FRASE$, I, 1) = " " THEN PALAVRAS = PALAVRAS + 1
|
||
|
|
110 NEXT I
|
||
|
|
120
|
||
|
|
130 PRINT
|
||
|
|
140 PRINT "Last word: "; ULTIMA$
|
||
|
|
150 PRINT "Total words: "; PALAVRAS
|
||
|
|
160 PRINT "Original sentence: "; FRASE$
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🎯 LEARNINGS
|
||
|
|
- How to use LAST function
|
||
|
|
- How to count words manually
|
||
|
|
- String manipulation in BASIC
|
||
|
|
|
||
|
|
## ❓ QUESTIONS TO EVOLVE
|
||
|
|
- How to extract the first word?
|
||
|
|
- How to handle punctuation?
|
||
|
|
- How to work with multiple sentences?
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🏆 **EXAMPLE 5: SPECIAL CASES AND TESTS**
|
||
|
|
|
||
|
|
```
|
||
|
|
**BASIC CONCEPT:**
|
||
|
|
SPECIAL CASES OF LAST FUNCTION
|
||
|
|
|
||
|
|
**LEVEL:**
|
||
|
|
☐ Beginner ☒ Intermediate ☐ Advanced
|
||
|
|
|
||
|
|
**LEARNING OBJECTIVE:**
|
||
|
|
Understand how LAST behaves in special situations
|
||
|
|
|
||
|
|
**CODE EXAMPLES:**
|
||
|
|
```basic
|
||
|
|
' Case 1: Empty string
|
||
|
|
10 TEXTO$ = ""
|
||
|
|
20 PRINT LAST(TEXTO$) ' Result: ""
|
||
|
|
|
||
|
|
' Case 2: Single word only
|
||
|
|
30 TEXTO$ = "Sun"
|
||
|
|
40 PRINT LAST(TEXTO$) ' Result: "Sun"
|
||
|
|
|
||
|
|
' Case 3: Multiple spaces
|
||
|
|
50 TEXTO$ = "Hello World "
|
||
|
|
60 PRINT LAST(TEXTO$) ' Result: "World"
|
||
|
|
|
||
|
|
' Case 4: With tabs and newlines
|
||
|
|
70 TEXTO$ = "Line1" + CHR$(9) + "Line2" + CHR$(13)
|
||
|
|
80 PRINT LAST(TEXTO$) ' Result: "Line2"
|
||
|
|
```
|
||
|
|
|
||
|
|
**SPECIFIC QUESTIONS:**
|
||
|
|
- What happens with empty strings?
|
||
|
|
- How does it work with special characters?
|
||
|
|
- Is it case-sensitive?
|
||
|
|
|
||
|
|
**PROJECT CONTEXT:**
|
||
|
|
I need to robustly validate user inputs
|
||
|
|
|
||
|
|
**EXPECTED RESULT:**
|
||
|
|
Consistent behavior in all cases
|
||
|
|
|
||
|
|
**PARTS I DON'T UNDERSTAND:**
|
||
|
|
- How the function handles whitespace?
|
||
|
|
- What are CHR$(9) and CHR$(13)?
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🛠️ **EXAMPLE 6: INTEGRATION WITH OTHER FUNCTIONS**
|
||
|
|
|
||
|
|
```
|
||
|
|
**BASIC CONCEPT:**
|
||
|
|
COMBINING LAST WITH OTHER FUNCTIONS
|
||
|
|
|
||
|
|
**LEVEL:**
|
||
|
|
☐ Beginner ☒ Intermediate ☐ Advanced
|
||
|
|
|
||
|
|
**LEARNING OBJECTIVE:**
|
||
|
|
Learn to use LAST in more complex expressions
|
||
|
|
|
||
|
|
**CODE EXAMPLE:**
|
||
|
|
```basic
|
||
|
|
10 ' Example 1: With concatenation
|
||
|
|
20 PARTE1$ = "Programming"
|
||
|
|
30 PARTE2$ = " in BASIC"
|
||
|
|
40 FRASE_COMPLETA$ = PARTE1$ + PARTE2$
|
||
|
|
50 PRINT LAST(FRASE_COMPLETA$) ' Result: "BASIC"
|
||
|
|
|
||
|
|
60 ' Example 2: With string functions
|
||
|
|
70 NOME_COMPLETO$ = "Maria Silva Santos"
|
||
|
|
80 SOBRENOME$ = LAST(NOME_COMPLETO$)
|
||
|
|
90 PRINT "Mr./Mrs. "; SOBRENOME$
|
||
|
|
|
||
|
|
100 ' Example 3: In conditional expressions
|
||
|
|
110 FRASE$ = "The sky is blue"
|
||
|
|
120 IF LAST(FRASE$) = "blue" THEN PRINT "The last word is blue!"
|
||
|
|
```
|
||
|
|
|
||
|
|
**SPECIFIC QUESTIONS:**
|
||
|
|
- Can I use LAST directly in IF?
|
||
|
|
- How to combine with LEFT$, RIGHT$, MID$?
|
||
|
|
- Is there a size limit for the string?
|
||
|
|
|
||
|
|
**PROJECT CONTEXT:**
|
||
|
|
Creating validations and text processing
|
||
|
|
|
||
|
|
**EXPECTED RESULT:**
|
||
|
|
Use LAST flexibly in different contexts
|
||
|
|
|
||
|
|
**PARTS I DON'T UNDERSTAND:**
|
||
|
|
- Expression evaluation order
|
||
|
|
- Performance with very large strings
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📚 **EXAMPLE 7: PRACTICAL EXERCISES**
|
||
|
|
|
||
|
|
```
|
||
|
|
# EXERCISES: PRACTICING WITH LAST
|
||
|
|
|
||
|
|
## 🎯 EXERCISE 1 - BASIC
|
||
|
|
Create a program that asks for the user's full name and greets using only the last name.
|
||
|
|
|
||
|
|
**SOLUTION:**
|
||
|
|
```basic
|
||
|
|
10 INPUT "Enter your full name: "; NOME$
|
||
|
|
20 SOBRENOME$ = LAST(NOME$)
|
||
|
|
30 PRINT "Hello, Mr./Mrs. "; SOBRENOME$; "!"
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🎯 EXERCISE 2 - INTERMEDIATE
|
||
|
|
Make a program that analyzes if the last word of a sentence is "end".
|
||
|
|
|
||
|
|
**SOLUTION:**
|
||
|
|
```basic
|
||
|
|
10 INPUT "Enter a sentence: "; FRASE$
|
||
|
|
20 IF LAST(FRASE$) = "end" THEN PRINT "Sentence ends with 'end'" ELSE PRINT "Sentence doesn't end with 'end'"
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🎯 EXERCISE 3 - ADVANCED
|
||
|
|
Create a program that processes multiple sentences and shows statistics.
|
||
|
|
|
||
|
|
**SOLUTION:**
|
||
|
|
```basic
|
||
|
|
10 DIM FRASES$(3)
|
||
|
|
20 FRASES$(1) = "The sun shines"
|
||
|
|
30 FRASES$(2) = "The rain falls"
|
||
|
|
40 FRASES$(3) = "The wind blows"
|
||
|
|
50
|
||
|
|
60 FOR I = 1 TO 3
|
||
|
|
70 PRINT "Sentence "; I; ": "; FRASES$(I)
|
||
|
|
80 PRINT "Last word: "; LAST(FRASES$(I))
|
||
|
|
90 PRINT
|
||
|
|
100 NEXT I
|
||
|
|
```
|
||
|
|
|
||
|
|
## 💡 TIPS
|
||
|
|
- Always test with different inputs
|
||
|
|
- Use PRINT for debugging
|
||
|
|
- Start with simple examples
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎨 **EXAMPLE 8: MARKDOWN DOCUMENTATION**
|
||
|
|
|
||
|
|
```markdown
|
||
|
|
# LAST FUNCTION - COMPLETE GUIDE
|
||
|
|
|
||
|
|
## 🎯 OBJECTIVE
|
||
|
|
Extract the last word from a string
|
||
|
|
|
||
|
|
## 📋 SYNTAX
|
||
|
|
```basic
|
||
|
|
RESULTADO$ = LAST(TEXTO$)
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🧩 PARAMETERS
|
||
|
|
- `TEXTO$`: Input string
|
||
|
|
|
||
|
|
## 🔍 BEHAVIOR
|
||
|
|
- Splits string by spaces
|
||
|
|
- Returns the last part
|
||
|
|
- Ignores extra spaces at beginning/end
|
||
|
|
|
||
|
|
## 🚀 EXAMPLES
|
||
|
|
```basic
|
||
|
|
10 PRINT LAST("hello world") ' Output: world
|
||
|
|
20 PRINT LAST("one word") ' Output: word
|
||
|
|
30 PRINT LAST(" spaces ") ' Output: spaces
|
||
|
|
```
|
||
|
|
|
||
|
|
## ⚠️ LIMITATIONS
|
||
|
|
- Doesn't work with numbers
|
||
|
|
- Requires parentheses
|
||
|
|
- Considers only spaces as separators
|
||
|
|
```
|
||
|
|
|
||
|
|
These examples cover from the basic concept to practical applications of the LAST function, always focusing on BASIC beginners! 🚀
|