finish Exercise2.40~43