Skip to content

Commit

Permalink
#3252 Sentence Reworking (for the Projectile Example, Satisfied requi…
Browse files Browse the repository at this point in the history
…rement)

Re-work some existing sentences by inserting defined concepts inside.
  • Loading branch information
daijingz committed Sep 14, 2024
1 parent bc1b6c3 commit a626706
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,23 +36,23 @@ motionContextP1, motionContextP2 :: Contents
motionContextP1
= foldlSP
[S "The free flight", phrase motion `S.ofA` phrase projectile,
S "is often studied in terms of its rectangular components, since the",
phrasePoss projectile, phrase acceleration +:+. S "always acts in the vertical direciton",
S "To illustrate the kinematic analysis, consider a ", phrase projectile,
S "is often studied in terms" `S.of_` S "its rectangular components" `sC` S "since the",
phrasePoss projectile, phrase acceleration +:+. (S "always acts" `S.inThe` S "vertical direciton"),
S "To illustrate the kinematic analysis" `sC` S "consider a ", phrase projectile,
S "launched at point", sParen (P lX `sC` P lY),
S "as shown in" +:+. refS figCSandA,
S "The path is defined in the", P lX `sDash` P lY, S "plane such that the initial",
S "The path" `S.is` S "defined in the", P lX `sDash` P lY, S "plane such that the initial",
phrase velocity, S "is", eS (sy QP.iSpeed) :+: S ", having components",
eS (sy QP.ixSpeed) `S.and_` eS (sy QP.iySpeed),
S "When air resistance is neglected, the only", phrase force, S "acting on the",
phrase projectile, S"is its weight, which causes the", phrase projectile,
phrase projectile, S"is its weight" `sC` S "which causes the", phrase projectile,
S "to have a *constant downward acceleration* of approximately",
eS (sy QP.constAccel $= sy QP.gravitationalAccel $= dbl 9.81), Sy (usymb accelU) `S.or_`
eS (sy QP.gravitationalAccel $= dbl 32.2), Sy (usymb accelinftU)]

motionContextP2
= foldlSP_
[S "The equations for rectilinear kinematics given above", refS lcrectVel, S "are in one dimension.",
[S "The equations" `S.for` S "rectilinear kinematics given above", refS lcrectVel, S "are in one dimension.",
S "These equations can be applied for both the", phrase verticalMotion `S.andThe`
phrase horizontalMotion :+: S ", as follows:"]

Expand All @@ -64,24 +64,24 @@ hMintro = foldlSP_ [
hMequations = foldlSP_ $ weave [equationsSents, map eS horMotionEqns]
hMconcl = foldlSP [
S "Since the", phrase acceleration, S "in the" +:+ phrase xDir,
sParen (eS (sy QP.xAccel)), S "is zero, the horizontal component of ", phrase velocity,
sParen (eS (sy QP.xAccel)), S "is zero" `sC` S "the horizontal component of ", phrase velocity,
S "always remains constant during" +:+. phrase motion,
S "In addition to knowing this, we have one more equation"]
S "In addition to knowing this" `sC` S "we have one more equation"]

vMintro = foldlSP_ [
S "Since the positive", phrase yAxis, S "is directed upward, the", phrase acceleration,
S "in the vertical direction is" +:+. eS (sy QP.yAccel $= neg (sy QP.gravitationalAccel)), motionSent]
vMequations = foldlSP_ $ weave [equationsSents, map eS verMotionEqns]
vMconcl = foldlSP [
S "Recall that the last equation can be formulated on the basis of eliminating the",
phrase time +:+ eS (sy QP.time), S "between the first two equations, and therefore only ",
S "two of the above three equations are independent of one another"]
S "Recall that the last equation can be formulated" `S.onThe` S "basis of eliminating the",
phrase time +:+ eS (sy QP.time), S "between the first two equations" `sC` S "and therefore only ",
S "two of the above three equations" `S.are` S "independent of one another"]

summary = foldlSP [S "In addition to knowing that the horizontal component of", phrase velocity,
summary = foldlSP [S "In addition to knowing that the horizontal component" `S.of_` phrase velocity,
S "is constant [Hibbler doesn't say this, but it seems necessary for completeness],",
S "problems involving the", phrase motion `S.ofA` phrase projectile +:
S "can have at most three unknowns since only three independent equations can be written",
S "that is, one equation in the horizontal direction and two in the vertical direction.",
S "that is" `sC` S "one equation" `S.inThe` S "horizontal direction and two" `S.inThe` S "vertical direction.",
S "Once", eS (sy QP.xVel) `S.and_` eS (sy QP.yVel), S "are obtained, the resultant",
phrase velocity +:+ eS (sy QP.speed), S "which is always tangent to the path,",
S "is defined by the vector sum as shown in", refS figCSandA]
Expand All @@ -102,8 +102,8 @@ stepFiveHead = foldlSP_ [headSent 3 (S "Step 5: Solve for Unknowns")]
stepOneCont, stepTwoCont, stepThreeCont, stepFourCont, horizMotionEqn1, horizMotionEqn1Sent, horizMotionEqn2, horizMotionEqn3,
vertMotionEqn1, vertMotionEqn2, vertMotionEqn3, verMotionCont, stepFiveCont :: Contents
stepOneCont = enumBulletU $ map foldlSent
[[S "Establish the fixed", P lX `sC` P lY, phrase coordinate +:+. S "axes and sketch the trajectory of the particle",
S "Between any *two points* on the path specify the given problem data and the *three unknowns*.",
[[S "Establish the fixed", P lX `sC` P lY, phrase coordinate +:+. (S "axes and sketch the trajectory" `S.ofThe` S "particle"),
S "Between any *two points*" `S.onThe` S "path specify the given problem data and the *three unknowns*.",
S "In all cases the", phrase acceleration `S.of_` phrase gravity +:+. S "acts downward",
S "The particle's initial and final", plural velocity +:+ S "should be represented in terms of their",
P lX `S.and_` P lY, plural component],
Expand All @@ -114,22 +114,22 @@ stepOneCont = enumBulletU $ map foldlSent
phrase motion `S.ofThe` S "particle is known. Potential significant points include the initial point",
S "of launching the", phrase projectile `S.andThe` S "final point where it lands." +:+
S "The landing point often has a known", P lY +:+ S "value"],
[S "The variables in the" , plural equation, S "may need to be changed to match the notation of the specific problem.",
S "For instance, a distinction may need to be made between the", P lX, phrase coordinate `S.of_` S "points", P cA `S.and_` P cB,
[S "The variables" `S.inThe` plural equation, S "may need to be changed to match the notation" `S.ofThe` S "specific problem.",
S "For instance" `sC` S "a distinction may need to be made between the", P lX, phrase coordinate `S.of_` S "points", P cA `S.and_` P cB,
S "via notation like"]]

stepTwoCont = foldlSP [S "Using the notation for the problem in question, write out the known variables and their values.",
stepTwoCont = foldlSP [S "Using the notation" `S.for` S "the problem in question" `sC` S "write out the known variables and their values.",
S "The known variables will be a subset of the following:" +:+. ((eS (sy QP.ixPos) `sC` eS (sy QP.xPos)) `sC` (eS (sy QP.iyPos) `sC` eS (sy QP.yPos)) `sC`
(eS (sy QP.ixVel) `sC` eS (sy QP.xVel)) `sC` (eS (sy QP.iyVel) `sC` eS (sy QP.yVel)) `S.and_` P lT),
S "The knowns should be written in the notation adopted for the particular problem"]
S "The knowns should be written" `S.inThe` S "notation adopted" `S.for` S "the particular problem"]

stepThreeCont = foldlSP [S "Each problem will have at most 4 unknowns that need to be determined, selected from the variables listed in the Step 2 that are not known." +:+.
S "The number of relevant unknowns will usually be less than 4, since questions will often focus on one or two unknowns",
S "As an example, the equation that horizontal", phrase velocity +:+. S "is constant is so trivial that most problems will not look for this as an unknown",
S "The unknowns should be written in the notation adopted for the particular problem"]
stepThreeCont = foldlSP [S "Each problem will have at most 4 unknowns that need to be determined" `sC` S "selected from the variables listed in the Step 2 that are not known." +:+.
(S "The number of relevant unknowns will usually be less than 4" `sC` S "since questions will often focus on one or two unknowns"),
S "As an example" `sC` S "the equation that horizontal", phrase velocity +:+. S "is constant is so trivial that most problems will not look for this as an unknown",
S "The unknowns should be written" `S.inThe` S "notation adopted" `S.for` S "the particular problem"]

stepFourCont = foldlSP [S "Depending upon the known data and what is to be determined, a choice should be made as to which four of the following five equations" +:+
S "should be applied between the two points on the path to obtain the most direct solution to the problem"]
stepFourCont = foldlSP [S "Depending upon the known data and what is to be determined" `sC` S "a choice should be made as to which four of the following five equations" +:+
S "should be applied between the two points" `S.onThe` S "path to obtain the most direct solution to the problem"]

horizMotionEqn1 = foldlSP_ [S "From equation" +: refS lcrectVel, eS horizVel]
horizMotionEqn1Sent = foldlSP_ [sParen (S "The *velocity* in the horizontal" `S.or_` P lX +:+ phrase direction +:+ S "is *constant*")]
Expand All @@ -143,10 +143,10 @@ vertMotionEqn3 = foldlSP_ [S "From equation" +: refS lcrectNoTime, eS vertNoTime
verMotionCont = foldlSP [S "In the vertical" `S.or_` P lY, phrase direction, S "*only two*" `S.ofThe` S "following three equations",
sParen (S "using" +:+ eS (sy QP.yAccel $= neg (sy QP.gravitationalAccel))) +:+. S "can be used for solution",
sParen (S "The sign" `S.of_` P lG +:+ S "will change to positive if the positive" +:+ P lY +:+. S "axis is downward"),
S "For example, if the particle's final velocity", eS (sy QP.yVel), S "is not needed, then the first and third of these questions",
S "For example, if the particle's final velocity", eS (sy QP.yVel), S "is not needed" `sC` S "then the first and third of these questions",
sParen (S "for" +:+ P lY) +:+ S "will not be useful"]

stepFiveCont = foldlSP [S "Use the equations from Step 4, together with the known values from Step 2 to find the unknown values from Step 3." +:+.
stepFiveCont = foldlSP [S "Use the equations from Step 4" `sC` S "together with the known values from Step 2 to find the unknown values from Step 3." +:+.
S "We can do this systematically by going through each equation and determining how many unknowns are in that equation",
S "Any equations with one unknown can be used to solve for that unknown directly"]

Expand All @@ -163,7 +163,7 @@ verMotionEqns :: [ModelExpr]
verMotionEqns = [vertVel, vertPos, vertNoTime]

motionSent :: Sentence
motionSent = S "This value can be substituted in the equations for" +:+ phrase constAccel +:
motionSent = S "This value can be substituted" `S.inThe` S "equations for" +:+ phrase constAccel +:
S "given above (ref) to yield the following"

-- References --
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ exampleContent :: [Contents]
exampleContent = [exampleContextP1, codeC1, exampleContextP2, codeC2, exampleContextP3, codeC3]

exampleContextP1, exampleContextP2, exampleContextP3 :: Contents
exampleContextP1 = foldlSP_ [S "A sack slides off the ramp, shown in Figure.",
S "We can ignore the physics of the sack sliding down the ramp and just focus on its exit", phrase velocity +:+. S "from the ramp",
S "There is initially no vertical component of", phrase velocity `S.andThe` S "horizontal", phrase velocity, S "is:"]
exampleContextP1 = foldlSP_ [S "A sack slides off the ramp" `sC` S "shown in Figure.",
S "We can ignore the physics" `S.ofThe` S "sack sliding down the ramp and just focus on its exit", phrase velocity +:+. S "from the ramp",
S "There is initially no vertical component" `S.of_` phrase velocity `S.andThe` S "horizontal", phrase velocity, S "is:"]
exampleContextP2 = foldlSP_ [S "The", phrase height `S.ofThe` S "ramp from the floor is"]
exampleContextP3 = foldlSP_ [S "Task: Determine the", phrase time, S "needed for the sack to strike the floor and the range",
P cR +:+. S "where sacks begin to pile up",
Expand Down

0 comments on commit a626706

Please sign in to comment.