Something I've started doing recently, which may be helpful to people:
Rather than having to go to the hassle of setting up either multiple Expression Tasks or a Script Task, I've realised it's often possible to use an Execute SQL Task to get the job done. The SQL needed may vary a little based on which database you connect to, my example is based on SQL Server.
My example is based on initialising variables from parameters, but this can be tweaked for different situations.
Step 1
Create a query that accepts parameters in - these are the parameters or variables you need the values from. You could of course use this to initialise a variable to 0 or do some arithmetic on a couple of parameters or variables.
Use the Single row option for the Result Set option.
Step 2
Set up your parameter mapping as usual.
Step 3
Set up your result set.
I guess the downside to this is that you're connecting to a database to do it - but if you have SSIS installed, then you have a SQL Server instance on that server - so I'm not sure it's much of a downside.
I find this much less of a hassle than setting up a Script Task, but YMMV.
Dts.Variables("User::VariableA").Value = Dts.Variables("$Project::ParameterA").Value
– Finnigan