Θ = Super Effective (x2)
O = Normal effectiveness (x1)
∆ = Poor (x0.5)
X = No effect (x0)
Note that for Pokémon with duplicated types, multiply the two levels of effectiveness by each other. This is explained in detail on the Dual type attack chart.
Also note that in the First Generation games, Red, Blue, Green, and Yellow, some weaknesses/resistances are different: