Construct a structure chart, as well as a flowchart and pseudocode, for the following problem. Assume that each input record contains a taxpayer’s name, the value of a personal property belonging to the taxpayer, and a code defining the type of of personal property owned. Each type of property is taxed at a unique rate. The codes, property types, and tax rates follow:

Code property type tax rate
1 bike 2 percent of value
2 car 4 percent of value
3 truck 5 percent of value

Your program is to compute the tax for each property and to output a line specifying the taxpayer’s name, value of property, and tax. The program should output counts of the numbers of bikes, cars and trucks for which taxes are computed, with appropriate labels. Include a report heading and column headings, as well as a page number on every page, with 55 detail lines per page. Also include an initial IF and a modular design. Output an error message if the input contains an invalid code value. Assume a code of 0 indicates the end of the input file.

To solve this problem, we can follow the steps below:

1. Initialize the count variables for bikes, cars, and trucks to zero.
2. Print the report heading and column headings for the output.
3. Read the input record containing the taxpayer's name, property value, and property code.
4. Check if the code value is valid. If not, print an error message and go to step 3.
5. Check if the code value is zero. If so, go to step 9.
6. Calculate the tax based on the property code and value using the given tax rates.
7. Increment the count variable based on the property code.
8. Print the taxpayer's name, property value, and tax.
9. Print the counts of bikes, cars, and trucks.
10. Repeat steps 3 to 9 until the code value is zero.

Now let's create the structure chart, flowchart, and pseudocode for this problem.

1. Structure Chart:

```
+-------------------+
| Main Program |
+-------------------+
| - Initialize Count|
| - Print Headings |
| - Read Input |
| - Check Code |
| - Calculate Tax |
| - Increment Count |
| - Print Details |
| - Print Counts |
+-------------------+
```

2. Flowchart:

```
+-----------------------------------+
| Main Program |
+-----------------------------------+
| Initialize count variables |
| Print report heading and column |
| headings |
| Read taxpayer input |
|---------------------------------->|
Invalid code | Check if code is valid |
+-------------------> N +-----------------------------------+
| | Print error message |
| +-----------------------------------+
| | Check if code is zero |
| |---------------------------------->|
| | Calculate tax based on code and |
| | value using tax rates |
| +-----------------------------------+
| | Increment count based on code |
| +-----------------------------------+
| | Print taxpayer details |
| +-----------------------------------+
| | Print counts of bikes, cars, and |
| | trucks |
| +-----------------------------------+
| | Loop back to read input |
| |
V |
```

3. Pseudocode:

```
Initialize countBikes, countCars, countTrucks to 0

Print report heading and column headings

Repeat until code is 0:

Read taxpayerName, propertyValue, code

If code is not 1, 2, or 3:
Print "Invalid code: ", code
Continue to the next iteration of the loop

If code is 0:
Exit the loop

If code is 1:
tax = 0.02 * propertyValue
Increment countBikes by 1

If code is 2:
tax = 0.04 * propertyValue
Increment countCars by 1

If code is 3:
tax = 0.05 * propertyValue
Increment countTrucks by 1

Print taxpayerName, propertyValue, tax

Print "Number of bikes: ", countBikes
Print "Number of cars: ", countCars
Print "Number of trucks: ", countTrucks
```

This pseudocode represents the step-by-step instructions to solve the given problem. You can implement it in the programming language of your choice.