402 lines
No EOL
9.6 KiB
Markdown
402 lines
No EOL
9.6 KiB
Markdown
# 📚 **BASIC LEARNING EXAMPLES - FORMAT Function**
|
|
|
|
## 🎯 **EXAMPLE 1: BASIC CONCEPT OF FORMAT FUNCTION**
|
|
|
|
```
|
|
**BASIC CONCEPT:**
|
|
FORMAT FUNCTION - Value formatting
|
|
|
|
**LEVEL:**
|
|
☒ Beginner ☐ Intermediate ☐ Advanced
|
|
|
|
**LEARNING OBJECTIVE:**
|
|
Understand how to format numbers, dates, and text
|
|
|
|
**CODE EXAMPLE:**
|
|
```basic
|
|
10 NUMBER = 1234.56
|
|
20 TEXT$ = "John"
|
|
30 DATE$ = "2024-03-15 14:30:00"
|
|
40
|
|
50 PRINT FORMAT(NUMBER, "n") ' 1234.56
|
|
60 PRINT FORMAT(NUMBER, "F") ' 1234.56
|
|
70 PRINT FORMAT(TEXT$, "Hello @!") ' Hello John!
|
|
80 PRINT FORMAT(DATE$, "dd/MM/yyyy") ' 15/03/2024
|
|
```
|
|
|
|
**SPECIFIC QUESTIONS:**
|
|
- What's the difference between "n" and "F"?
|
|
- What does "@" mean in text?
|
|
- How to format dates in Brazilian format?
|
|
|
|
**PROJECT CONTEXT:**
|
|
I need to display data in a nicer way
|
|
|
|
**EXPECTED RESULT:**
|
|
Values formatted according to the pattern
|
|
|
|
**PARTS I DON'T UNDERSTAND:**
|
|
- When to use each type of formatting
|
|
- How it works internally
|
|
```
|
|
|
|
---
|
|
|
|
## 🛠️ **EXAMPLE 2: NUMERIC FORMATTING**
|
|
|
|
```
|
|
**BASIC CONCEPT:**
|
|
NUMBER FORMATTING
|
|
|
|
**LEVEL:**
|
|
☒ Beginner ☐ Intermediate ☐ Advanced
|
|
|
|
**LEARNING OBJECTIVE:**
|
|
Learn to format numbers as currency and with separators
|
|
|
|
**CODE EXAMPLE:**
|
|
```basic
|
|
10 VALUE = 1234567.89
|
|
20
|
|
30 PRINT "Standard: "; FORMAT(VALUE, "n") ' 1234567.89
|
|
40 PRINT "Decimal: "; FORMAT(VALUE, "F") ' 1234567.89
|
|
45 PRINT "Integer: "; FORMAT(VALUE, "f") ' 1234567
|
|
50 PRINT "Percentage: "; FORMAT(0.856, "0%") ' 86%
|
|
60
|
|
70 ' Formatting with locale
|
|
80 PRINT "Dollar: "; FORMAT(VALUE, "C2[en]") ' $1,234,567.89
|
|
90 PRINT "Real: "; FORMAT(VALUE, "C2[pt]") ' R$ 1.234.567,89
|
|
100 PRINT "Euro: "; FORMAT(VALUE, "C2[fr]") ' €1,234,567.89
|
|
```
|
|
|
|
**SPECIFIC QUESTIONS:**
|
|
- What does "C2[pt]" mean?
|
|
- How to change decimal places?
|
|
- Which locales are available?
|
|
|
|
**PROJECT CONTEXT:**
|
|
Multi-currency financial system
|
|
|
|
**EXPECTED RESULT:**
|
|
Numbers formatted according to regional standards
|
|
|
|
**PARTS I DON'T UNDERSTAND:**
|
|
- Syntax of complex patterns
|
|
- Differences between locales
|
|
```
|
|
|
|
---
|
|
|
|
## 📖 **EXAMPLE 3: EXPLAINING FORMAT COMMAND**
|
|
|
|
```
|
|
**COMMAND:**
|
|
FORMAT - Formats values
|
|
|
|
**SYNTAX:**
|
|
```basic
|
|
RESULT$ = FORMAT(VALUE, PATTERN$)
|
|
```
|
|
|
|
**PARAMETERS:**
|
|
- VALUE: Number, date or text to format
|
|
- PATTERN$: String with formatting pattern
|
|
|
|
**SIMPLE EXAMPLE:**
|
|
```basic
|
|
10 PRINT FORMAT(123.45, "n") ' 123.45
|
|
20 PRINT FORMAT("Mary", "Ms. @") ' Ms. Mary
|
|
```
|
|
|
|
**PRACTICAL EXAMPLE:**
|
|
```basic
|
|
10 INPUT "Name: "; NAME$
|
|
20 INPUT "Salary: "; SALARY
|
|
30 INPUT "Birth date: "; BIRTH_DATE$
|
|
40
|
|
50 PRINT "Record:"
|
|
60 PRINT "Name: "; FORMAT(NAME$, "!") ' UPPERCASE
|
|
70 PRINT "Salary: "; FORMAT(SALARY, "C2[en]") ' $1,234.56
|
|
80 PRINT "Birth: "; FORMAT(BIRTH_DATE$, "MM/dd/yyyy")
|
|
```
|
|
|
|
**COMMON ERRORS:**
|
|
- Using wrong pattern for data type
|
|
- Forgetting it returns string
|
|
- Formatting date without correct format
|
|
|
|
**BEGINNER TIP:**
|
|
Test each pattern separately before using in project
|
|
|
|
**SUGGESTED EXERCISE:**
|
|
Create a bank statement with professional formatting
|
|
```
|
|
|
|
---
|
|
|
|
## 🎨 **EXAMPLE 4: DATE AND TIME FORMATTING**
|
|
|
|
```
|
|
**BASIC CONCEPT:**
|
|
DATE AND TIME FORMATTING
|
|
|
|
**LEVEL:**
|
|
☐ Beginner ☒ Intermediate ☐ Advanced
|
|
|
|
**LEARNING OBJECTIVE:**
|
|
Learn all date formatting patterns
|
|
|
|
**CODE EXAMPLE:**
|
|
```basic
|
|
10 DATE$ = "2024-03-15 14:30:25"
|
|
20
|
|
30 PRINT "Brazilian: "; FORMAT(DATE$, "dd/MM/yyyy") ' 15/03/2024
|
|
40 PRINT "Complete: "; FORMAT(DATE$, "dd/MM/yyyy HH:mm") ' 15/03/2024 14:30
|
|
50 PRINT "US: "; FORMAT(DATE$, "MM/dd/yyyy") ' 03/15/2024
|
|
60 PRINT "International: "; FORMAT(DATE$, "yyyy-MM-dd") ' 2024-03-15
|
|
70
|
|
80 PRINT "24h Time: "; FORMAT(DATE$, "HH:mm:ss") ' 14:30:25
|
|
90 PRINT "12h Time: "; FORMAT(DATE$, "hh:mm:ss tt") ' 02:30:25 PM
|
|
100 PRINT "Long date: "; FORMAT(DATE$, "dd 'of' MMMM 'of' yyyy")
|
|
```
|
|
|
|
**SPECIFIC QUESTIONS:**
|
|
- What's the difference between HH and hh?
|
|
- How to show month name?
|
|
- What is "tt"?
|
|
|
|
**PROJECT CONTEXT:**
|
|
Scheduling system and reports
|
|
|
|
**EXPECTED RESULT:**
|
|
Dates formatted according to needs
|
|
|
|
**PARTS I DON'T UNDERSTAND:**
|
|
- All formatting codes
|
|
- How milliseconds work
|
|
```
|
|
|
|
---
|
|
|
|
## 🏆 **EXAMPLE 5: COMPLETE PROJECT - BANK STATEMENT**
|
|
|
|
```
|
|
# BASIC PROJECT: FORMATTED BANK STATEMENT
|
|
|
|
## 📝 DESCRIPTION
|
|
System that generates bank statement with professional formatting
|
|
|
|
## 🎨 FEATURES
|
|
- [x] Currency formatting
|
|
- [x] Date formatting
|
|
- [x] Value alignment
|
|
|
|
## 🧩 CODE STRUCTURE
|
|
```basic
|
|
10 ' Customer data
|
|
20 NAME$ = "Carlos Silva"
|
|
30 BALANCE = 12567.89
|
|
40
|
|
50 ' Transactions
|
|
60 DIM DATES$(3), DESCRIPTIONS$(3), AMOUNTS(3)
|
|
70 DATES$(1) = "2024-03-10 09:15:00" : DESCRIPTIONS$(1) = "Deposit" : AMOUNTS(1) = 2000
|
|
80 DATES$(2) = "2024-03-12 14:20:00" : DESCRIPTIONS$(2) = "Withdrawal" : AMOUNTS(2) = -500
|
|
90 DATES$(3) = "2024-03-14 11:30:00" : DESCRIPTIONS$(3) = "Transfer" : AMOUNTS(3) = -150.50
|
|
100
|
|
110 ' Header
|
|
120 PRINT FORMAT("BANK STATEMENT", "!")
|
|
130 PRINT "Customer: "; FORMAT(NAME$, "&")
|
|
140 PRINT "Date: "; FORMAT("2024-03-15 08:00:00", "dd/MM/yyyy HH:mm")
|
|
150 PRINT STRING$(40, "-")
|
|
160
|
|
170 ' Transactions
|
|
180 FOR I = 1 TO 3
|
|
190 FORMATTED_DATE$ = FORMAT(DATES$(I), "dd/MM HH:mm")
|
|
200 FORMATTED_AMOUNT$ = FORMAT(AMOUNTS(I), "C2[en]")
|
|
210
|
|
220 PRINT FORMATTED_DATE$; " - ";
|
|
230 PRINT DESCRIPTIONS$(I);
|
|
240 PRINT TAB(30); FORMATTED_AMOUNT$
|
|
250 NEXT I
|
|
260
|
|
270 ' Balance
|
|
280 PRINT STRING$(40, "-")
|
|
290 PRINT "Balance: "; TAB(30); FORMAT(BALANCE, "C2[en]")
|
|
```
|
|
|
|
## 🎯 LEARNINGS
|
|
- Currency formatting with locale
|
|
- Date formatting
|
|
- Composition of multiple formats
|
|
|
|
## ❓ QUESTIONS TO EVOLVE
|
|
- How to perfectly align columns?
|
|
- How to format negative numbers in red?
|
|
- How to add more locales?
|
|
```
|
|
|
|
---
|
|
|
|
## 🛠️ **EXAMPLE 6: TEXT FORMATTING**
|
|
|
|
```
|
|
**BASIC CONCEPT:**
|
|
STRING/TEXT FORMATTING
|
|
|
|
**LEVEL:**
|
|
☒ Beginner ☐ Intermediate ☐ Advanced
|
|
|
|
**LEARNING OBJECTIVE:**
|
|
Learn to use placeholders in text
|
|
|
|
**CODE EXAMPLE:**
|
|
```basic
|
|
10 NAME$ = "Mary"
|
|
20 CITY$ = "são paulo"
|
|
21 COUNTRY$ = "BRAZIL"
|
|
22 AGE = 25
|
|
30
|
|
40 PRINT FORMAT(NAME$, "Hello @!") ' Hello Mary!
|
|
50 PRINT FORMAT(NAME$, "Welcome, @") ' Welcome, Mary
|
|
60 PRINT FORMAT(CITY$, "City: !") ' City: SÃO PAULO
|
|
70 PRINT FORMAT(CITY$, "City: &") ' City: são paulo
|
|
80 PRINT FORMAT(COUNTRY$, "Country: &") ' Country: brazil
|
|
90
|
|
100 ' Combining with numbers
|
|
110 PRINT FORMAT(NAME$, "@ is ") + FORMAT(AGE, "n") + " years old"
|
|
120 ' Mary is 25 years old
|
|
```
|
|
|
|
**SPECIFIC QUESTIONS:**
|
|
- What's the difference between @, ! and &?
|
|
- Can I use multiple placeholders?
|
|
- How to escape special characters?
|
|
|
|
**PROJECT CONTEXT:**
|
|
Personalized report generation
|
|
|
|
**EXPECTED RESULT:**
|
|
Dynamic texts formatted automatically
|
|
|
|
**PARTS I DON'T UNDERSTAND:**
|
|
- Placeholder limitations
|
|
- How to mix different types
|
|
```
|
|
|
|
---
|
|
|
|
## 📚 **EXAMPLE 7: PRACTICAL EXERCISES**
|
|
|
|
```
|
|
# EXERCISES: PRACTICING WITH FORMAT
|
|
|
|
## 🎯 EXERCISE 1 - BASIC
|
|
Create a program that formats product prices.
|
|
|
|
**SOLUTION:**
|
|
```basic
|
|
10 DIM PRODUCTS$(3), PRICES(3)
|
|
20 PRODUCTS$(1) = "Laptop" : PRICES(1) = 2500.99
|
|
30 PRODUCTS$(2) = "Mouse" : PRICES(2) = 45.5
|
|
40 PRODUCTS$(3) = "Keyboard" : PRICES(3) = 120.75
|
|
50
|
|
60 FOR I = 1 TO 3
|
|
70 PRINT FORMAT(PRODUCTS$(I), "@: ") + FORMAT(PRICES(I), "C2[en]")
|
|
80 NEXT I
|
|
```
|
|
|
|
## 🎯 EXERCISE 2 - INTERMEDIATE
|
|
Make a program that shows dates in different formats.
|
|
|
|
**SOLUTION:**
|
|
```basic
|
|
10 DATE$ = "2024-12-25 20:00:00"
|
|
20
|
|
30 PRINT "Christmas: "; FORMAT(DATE$, "dd/MM/yyyy")
|
|
40 PRINT "US: "; FORMAT(DATE$, "MM/dd/yyyy")
|
|
50 PRINT "Dinner: "; FORMAT(DATE$, "HH'h'mm")
|
|
60 PRINT "Formatted: "; FORMAT(DATE$, "dd 'of' MMMM 'of' yyyy 'at' HH:mm")
|
|
```
|
|
|
|
## 🎯 EXERCISE 3 - ADVANCED
|
|
Create a school report card system with formatting.
|
|
|
|
**SOLUTION:**
|
|
```basic
|
|
10 NAME$ = "ana silva"
|
|
20 AVERAGE = 8.75
|
|
21 ATTENDANCE = 0.92
|
|
30 REPORT_DATE$ = "2024-03-15 10:00:00"
|
|
40
|
|
50 PRINT FORMAT("SCHOOL REPORT CARD", "!")
|
|
60 PRINT "Student: "; FORMAT(NAME$, "&")
|
|
70 PRINT "Date: "; FORMAT(REPORT_DATE$, "dd/MM/yyyy")
|
|
80 PRINT "Average: "; FORMAT(AVERAGE, "n")
|
|
90 PRINT "Attendance: "; FORMAT(ATTENDANCE, "0%")
|
|
```
|
|
|
|
## 💡 TIPS
|
|
- Always test patterns before using
|
|
- Use PRINT to see each formatting result
|
|
- Combine simple formats to create complex ones
|
|
```
|
|
|
|
---
|
|
|
|
## 🎨 **EXAMPLE 8: COMPLETE REFERENCE GUIDE**
|
|
|
|
```markdown
|
|
# FORMAT FUNCTION - COMPLETE GUIDE
|
|
|
|
## 🎯 OBJECTIVE
|
|
Format numbers, dates and text professionally
|
|
|
|
## 📋 SYNTAX
|
|
```basic
|
|
RESULT$ = FORMAT(VALUE, PATTERN$)
|
|
```
|
|
|
|
## 🔢 NUMERIC FORMATTING
|
|
| Pattern | Example | Result |
|
|
|---------|---------|--------|
|
|
| "n" | `FORMAT(1234.5, "n")` | 1234.50 |
|
|
| "F" | `FORMAT(1234.5, "F")` | 1234.50 |
|
|
| "f" | `FORMAT(1234.5, "f")` | 1234 |
|
|
| "0%" | `FORMAT(0.85, "0%")` | 85% |
|
|
| "C2[en]" | `FORMAT(1234.5, "C2[en]")` | $1,234.50 |
|
|
| "C2[pt]" | `FORMAT(1234.5, "C2[pt]")` | R$ 1.234,50 |
|
|
|
|
## 📅 DATE FORMATTING
|
|
| Code | Meaning | Example |
|
|
|------|---------|---------|
|
|
| yyyy | 4-digit year | 2024 |
|
|
| yy | 2-digit year | 24 |
|
|
| MM | 2-digit month | 03 |
|
|
| M | 1-2 digit month | 3 |
|
|
| dd | 2-digit day | 05 |
|
|
| d | 1-2 digit day | 5 |
|
|
| HH | 24h hour 2-digit | 14 |
|
|
| H | 24h hour 1-2 digit | 14 |
|
|
| hh | 12h hour 2-digit | 02 |
|
|
| h | 12h hour 1-2 digit | 2 |
|
|
| mm | 2-digit minute | 05 |
|
|
| m | 1-2 digit minute | 5 |
|
|
| ss | 2-digit second | 09 |
|
|
| s | 1-2 digit second | 9 |
|
|
| tt | AM/PM | PM |
|
|
| t | A/P | P |
|
|
|
|
## 📝 TEXT FORMATTING
|
|
| Placeholder | Function | Example |
|
|
|-------------|----------|---------|
|
|
| @ | Insert original text | `FORMAT("John", "@")` → John |
|
|
| ! | Text in UPPERCASE | `FORMAT("John", "!")` → JOHN |
|
|
| & | Text in lowercase | `FORMAT("John", "&")` → john |
|
|
|
|
## ⚠️ LIMITATIONS
|
|
- Dates must be in "YYYY-MM-DD HH:MM:SS" format
|
|
- Very large numbers may have issues
|
|
- Supported locales: en, pt, fr, de, es, it
|
|
```
|
|
|
|
These examples cover from basic to advanced applications of the FORMAT function! 🚀 |