FE Exam Fluid Mechanics Review and Practice: Free Resources to Boost Your Success
Welcome to your FE exam fluid mechanics review and practice hub! Remove the expensive Fluid mechanics tutor and use our free resourses instea. Fluid Mechanics plays a critical role in the FE exam and covers key topics like fluid properties, flow measurements, hydrostatics, and energy equations. Whether you’re working through problems involving pressure head, specific gravity, or pipe flow, understanding these fundamentals is essential for success.
Here, you’ll find resources designed to help you strengthen your problem-solving skills and sharpen your understanding of essential fluid mechanics concepts for the FE exam. From detailed examples to interactive quizzes, everything you need to prepare effectively is right at your fingertips.
Advertisements
Practical Applications of Fluid Mechanics
Understanding fluid mechanics is crucial beyond the classroom—it plays a vital role in many engineering fields such as civil, mechanical, aerospace, and environmental engineering. From designing water supply systems and hydraulic machinery to predicting weather patterns and improving aerodynamic performance, the principles you learn are directly applied to solve real-world problems. This makes the subject not only intellectually rewarding but also practically essential.
By studying fluid mechanics, you gain valuable skills that employers seek, including analytical thinking, modeling, and system design. This practical knowledge equips you to tackle challenges like optimizing fluid flow in pipelines, managing natural water resources, or enhancing vehicle efficiency through aerodynamics. Whether your goal is to pass exams or to prepare for a rewarding engineering career, a solid grasp of fluid mechanics opens doors to diverse opportunities and innovations.
Advertisements
Practice Fluid Mechanics with Smart, Interactive Quizzes
One of the best ways to truly master fluid mechanics concepts is through hands-on problem solving — and our smart quizzes are built for exactly that. Each time you take a quiz, the numbers, values, and problem scenarios update automatically. This means no memorizing static answers or predictable patterns. Instead, you get fresh, randomized fluid mechanics practice problems every time, helping you strengthen your skills and think critically about each question. Get practice in on your own time without paying for an expensive fluid mechanics tutor.
These smart quizzes cover essential topics like Bernoulli’s equation, hydrostatic pressure, pipe flow, continuity, and open-channel flow. By facing new numbers and setups on each attempt, you’ll sharpen your ability to quickly apply formulas and concepts, just like you’ll need to on the FE exam and in real-world applications. It’s active, adaptive practice designed to improve speed, accuracy, and confidence.
Whether you’re working through problems on pressure head, velocity, or flow rate, our quizzes provide instant feedback and detailed solutions so you’re not left guessing where you went wrong. They’re an efficient, reliable way to track your progress and identify areas that need a little extra review — all while preparing you for the unpredictable nature of exam day.
Advertisements
Flow Measurements
Mastering flow measurement techniques is crucial for tackling many fluid mechanics problems on the FE exam. That’s why we created an interactive flow measurements quiz packed with exam-style questions that help you practice concepts like velocity calculations, flow rate conversions, and device applications such as venturi meters and orifice plates.
Unlike static practice problems, this quiz generates new values with each attempt, so you’ll never memorize answers. Instead, you’ll develop real problem-solving skills. With instant feedback and clear solution explanations, you can identify your weak spots and immediately strengthen them. Plus, each new question challenges you to apply concepts in different ways — a smart strategy for building speed and confidence on test day.
Previous QuestionNext QuestionSubmit Quiz
//Question1
//Define Variables
var onedia, onev
//Assigns Random Integers
onedia = (Math.floor(Math.random()*6)+1)*3;
onev = (Math.floor(Math.random()*6)+3)*5
//find flow
onearea = Math.PI*(onedia/12)*(onedia/12)/4;
oneq = onev*onearea;
onearea1 = Math.PI*(onedia/12)*(onedia/12)/4;
oneq1 = onev/onearea1;
onearea2 = Math.PI*(onedia)*(onedia)/4;
oneq2 = onev*onearea2/12;
onearea3 = Math.PI*(onedia/12)*(onedia/12)/4;
oneq3 = onev*onearea3*onearea3;
//Answer Choices
onecorrectanswer = oneq.toFixed(1).replace(/\.?0+$/,"").toString() + " cfs";
oneanswer1 = oneq1.toFixed(1).replace(/\.?0+$/,"").toString() + " cfs";
oneanswer2 = oneq2.toFixed(1).replace(/\.?0+$/,"").toString() + " cfs";
oneanswer3 = oneq3.toFixed(1).replace(/\.?0+$/,"").toString() + " cfs";
//Place Answer Choices into Array
oneanswerchoices = [oneanswer1, oneanswer2, oneanswer3, onecorrectanswer];
//Randomize Answer Choices
do {
var indexa = Math.floor(Math.random()*oneanswerchoices.length);
var indexb = Math.floor(Math.random()*oneanswerchoices.length);
}
while (indexb == indexa);
do {
var indexc = Math.floor(Math.random()*oneanswerchoices.length);
}
while (indexc == indexa || indexc == indexb);
do {
var indexd = Math.floor(Math.random()*oneanswerchoices.length);
}
while (indexd == indexa || indexd == indexb ||
indexd == indexc);
onea = oneanswerchoices[indexa];
oneb = oneanswerchoices[indexb];
onec = oneanswerchoices[indexc];
oned = oneanswerchoices[indexd];
if (indexa == 3) {
onecorrectchoice = "a"
}
if (indexb == 3) {
onecorrectchoice = "b"
}
if (indexc == 3) {
onecorrectchoice = "c"
}
if (indexd == 3) {
onecorrectchoice = "d"
}
//Qeustion 1 Question
question1 = "1. Determine the flow of water through a circular pipe with a diameter of " + onedia.toString() + " in. if the velocity of water throught the pipe is " + onev.toString() + " ft/s"
//Question2
//Define Variables
var twoda, twodb, twodc, twoza, twozb, twozc, twoq, twoha;
//Assigns Random Integers
twoda = (Math.floor(Math.random()*4)+1)*.1;
twodb = (Math.floor(Math.random()*4)+1)*.1;
twodc = (Math.floor(Math.random()*4)+1)*.1;
twoza = (Math.floor(Math.random()*4)+1);
twozb = (Math.floor(Math.random()*4)+1);
twozc = (Math.floor(Math.random()*4)+1);
twoha = (Math.floor(Math.random()*2)+1);
twoq = (Math.floor(Math.random()*9)+1)*.1;
g = 9.81
//find hb
twoareaA = Math.PI*twoda*twoda/4;
twoareaB = Math.PI*twodb*twodb/4;
twova = twoq/twoareaA;
twovb = twoq/twoareaB;
twohb = (twova*twova/(2*g)) + (twoha) + (twoza) - (twovb*twovb/(2*g)) - (twozb);
twohb1 = (twova*twova/(g)) + (twoha) + (twoza) - (twovb*twovb/(2*g)) - (twozb);
twohb2 = (twova*twova/(2*g)) + (twoha) + (twoza) + (twovb*twovb/(2*g)) - (twozb);
twohb3 = (twova*twova/(2*g)) + (twoha) + (twoza) - (twovb*twovb/(2*g)) + (twozb);
//Answer Choices
//correct answer
twocorrectanswer = "hb = " + twohb.toFixed(1).replace(/\.?0+$/,"").toString() + " m";
twoanswer1 = "hb = " + twohb1.toFixed(1).replace(/\.?0+$/,"").toString() + " m";
twoanswer2 = "hb = " + twohb2.toFixed(1).replace(/\.?0+$/,"").toString() + " m";
twoanswer3 = "hb = " + twohb3.toFixed(1).replace(/\.?0+$/,"").toString() + " m";
//Place Answer Choices into Array
twoanswerchoices = [twoanswer1, twoanswer2, twoanswer3, twocorrectanswer];
//Randomize Answer Choices
do {
var indexa = Math.floor(Math.random()*twoanswerchoices.length);
var indexb = Math.floor(Math.random()*twoanswerchoices.length);
}
while (indexb == indexa);
do {
var indexc = Math.floor(Math.random()*twoanswerchoices.length);
}
while (indexc == indexa || indexc == indexb);
do {
var indexd = Math.floor(Math.random()*twoanswerchoices.length);
}
while (indexd == indexa || indexd == indexb ||
indexd == indexc);
twoa = twoanswerchoices[indexa];
twob = twoanswerchoices[indexb];
twoc = twoanswerchoices[indexc];
twod = twoanswerchoices[indexd];
if (indexa == 3) {
twocorrectchoice = "a"
}
if (indexb == 3) {
twocorrectchoice = "b"
}
if (indexc == 3) {
twocorrectchoice = "c"
}
if (indexd == 3) {
twocorrectchoice = "d"
}
//Question 2 Question
question2 = "2. Determine the pressure head at B for the pipe system shown below this quiz where Q = " + twoq.toFixed(1).toString() + " m^3/s, dA = " + twoda.toFixed(1).toString() + " m, dB = " + twodb.toFixed(1).toString() + " m, zA = " + twoza.toFixed(1).toString() + " m, zB = " + twozb.toFixed(1).toString() + " m, and hA = " + twoha.toFixed(1).toString() + " m."
//Question3
//define variables
var threez, threediam
//Assign Random Integers
threez = (Math.floor(Math.random()*4)+1)*5;
threediam = (Math.floor(Math.random()*4)+1)*3;
//find velocity and flow
threerad = (threediam/12)/2;
threearea = Math.PI*threerad*threerad;
threev = Math.pow(threez*2*32.2,1/2);
threeq = threev*threearea;
threev1 = Math.pow(threez*2*32.2,1);
threeq1 = threev1*threearea;
threev2 = Math.pow(threez*32.2,1/2);
threeq2 = threev2*threearea;
threev3 = Math.pow(threez*1/2*32.2,1/2);
threeq3 = threev3*threearea;
//Answer Choices
//Correct Answer
threecorrectanswer = "V = " + threev.toFixed(1).replace(/\.?0+$/,"").toString() + " ft/s, Q = " + threeq.toFixed(1).replace(/\.?0+$/,"").toString() + " cfs";
threeanswer1 = "V = " + threev1.toFixed(1).replace(/\.?0+$/,"").toString() + " ft/s, Q = " + threeq1.toFixed(1).replace(/\.?0+$/,"").toString() + " cfs";
threeanswer2 = "V = " + threev2.toFixed(1).replace(/\.?0+$/,"").toString() + " ft/s, Q = " + threeq2.toFixed(1).replace(/\.?0+$/,"").toString() + " cfs";
threeanswer3 = "V = " + threev3.toFixed(1).replace(/\.?0+$/,"").toString() + " ft/s, Q = " + threeq3.toFixed(1).replace(/\.?0+$/,"").toString() + " cfs";
//Place Answer Choices into Array
threeanswerchoices = [threeanswer1, threeanswer2, threeanswer3, threecorrectanswer];
//Randomize Answer Choices
do {
var indexa = Math.floor(Math.random()*threeanswerchoices.length);
var indexb = Math.floor(Math.random()*threeanswerchoices.length);
}
while (indexb == indexa);
do {
var indexc = Math.floor(Math.random()*threeanswerchoices.length);
}
while (indexc == indexa || indexc == indexb);
do {
var indexd = Math.floor(Math.random()*threeanswerchoices.length);
}
while (indexd == indexa || indexd == indexb ||
indexd == indexc);
threea = threeanswerchoices[indexa];
threeb = threeanswerchoices[indexb];
threec = threeanswerchoices[indexc];
threed = threeanswerchoices[indexd];
if (indexa == 3) {
threecorrectchoice = "a"
}
if (indexb == 3) {
threecorrectchoice = "b"
}
if (indexc == 3) {
threecorrectchoice = "c"
}
if (indexd == 3) {
threecorrectchoice = "d"
}
//Question 3 Question
question3 = "3. Determine the flow and velocity at B for the reservoir shown below this quiz where z = " + threez.toString() + " ft, and diameter = " + threediam.toString() + " in."
//define variables
var fourh
//Assign Random Integers
fourh = (Math.floor(Math.random()*4)+1)*5;
//find pressure
fourp = fourh*62.4;
fourp1 = fourh*32.2;
fourp2 = fourh*32.2*2;
fourp3 = fourh*62.4*2;
//Answer Choices
fourcorrectanswer = fourp.toString() + " psf";
fouranswer1 = fourp1.toString() + " psf";
fouranswer2 = fourp2.toString() + " psf";
fouranswer3 = fourp3.toString() + " psf";
//Place Answer Choices into Array
fouranswerchoices = [fouranswer1, fouranswer2, fouranswer3, fourcorrectanswer];
//Randomize Answer Choices
do {
var indexa = Math.floor(Math.random()*fouranswerchoices.length);
var indexb = Math.floor(Math.random()*fouranswerchoices.length);
}
while (indexb == indexa);
do {
var indexc = Math.floor(Math.random()*fouranswerchoices.length);
}
while (indexc == indexa || indexc == indexb);
do {
var indexd = Math.floor(Math.random()*fouranswerchoices.length);
}
while (indexd == indexa || indexd == indexb ||
indexd == indexc);
foura = fouranswerchoices[indexa];
fourb = fouranswerchoices[indexb];
fourc = fouranswerchoices[indexc];
fourd = fouranswerchoices[indexd];
if (indexa == 3) {
fourcorrectchoice = "a"
}
if (indexb == 3) {
fourcorrectchoice = "b"
}
if (indexc == 3) {
fourcorrectchoice = "c"
}
if (indexd == 3) {
fourcorrectchoice = "d"
}
//Qeustion 4 Question
question4 = "4. Determine the pressure at the bottom the dam that has a water height of " + fourh.toString() + " ft."
//Question Slides
const myQuestions = [
{
question: question1,
answers: {
a: onea,
b: oneb,
c: onec,
d: oned
},
correctAnswer: onecorrectchoice
},
{
question: question2,
answers: {
a: twoa,
b: twob,
c: twoc,
d: twod
},
correctAnswer: twocorrectchoice
},
{
question: question3,
answers: {
a: threea,
b: threeb,
c: threec,
d: threed
},
correctAnswer: threecorrectchoice
}
];
function buildQuiz() {
// we'll need a place to store the HTML output
const output = [];
// for each question...
myQuestions.forEach((currentQuestion, questionNumber) => {
// we'll want to store the list of answer choices
const answers = [];
// and for each available answer...
for (letter in currentQuestion.answers) {
// ...add an HTML radio button
answers.push(
``
);
}
// add this question and its answers to the output
output.push(
`
${currentQuestion.question}
${answers.join("")}
`
);
});
// finally combine our output list into one string of HTML and put it on the page
quizContainer.innerHTML = output.join("");
}
function showResults() {
// gather answer containers from our quiz
const answerContainers = quizContainer.querySelectorAll(".answers");
// keep track of user's answers
let numCorrect = 0;
// for each question...
myQuestions.forEach((currentQuestion, questionNumber) => {
// find selected answer
const answerContainer = answerContainers[questionNumber];
const selector = `input[name=question${questionNumber}]:checked`;
const userAnswer = (answerContainer.querySelector(selector) || {}).value;
// if answer is correct
if (userAnswer === currentQuestion.correctAnswer) {
// add to the number of correct answers
numCorrect++;
// color the answers green
answerContainers[questionNumber].style.color = "green";
} else {
// if answer is wrong or blank
// color the answers red
answerContainers[questionNumber].style.color = "red";
}
});
// show number of correct answers out of total
resultsContainer.innerHTML = `${numCorrect} out of ${myQuestions.length}`;
}
function showSlide(n) {
slides[currentSlide].classList.remove("active-slide");
slides[n].classList.add("active-slide");
currentSlide = n;
if (currentSlide === 0) {
previousButton.style.display = "none";
} else {
previousButton.style.display = "inline-block";
}
if (currentSlide === slides.length - 1) {
nextButton.style.display = "none";
submitButton.style.display = "inline-block";
} else {
nextButton.style.display = "inline-block";
submitButton.style.display = "inline-block";
}
}
function showNextSlide() {
showSlide(currentSlide + 1);
}
function showPreviousSlide() {
showSlide(currentSlide - 1);
}
const quizContainer = document.getElementById("quiz");
const resultsContainer = document.getElementById("results");
const submitButton = document.getElementById("submit");
// display quiz right away
buildQuiz();
const previousButton = document.getElementById("previous");
const nextButton = document.getElementById("next");
const slides = document.querySelectorAll(".slide");
let currentSlide = 0;
showSlide(0);
// on submit, show results
submitButton.addEventListener("click", showResults);
previousButton.addEventListener("click", showPreviousSlide);
nextButton.addEventListener("click", showNextSlide);
Quiz Image
Advertisements
Fluid Properties
Understanding fluid properties like density, specific gravity, and viscosity is foundational for solving many FE fluid mechanics problems. To help you master these quickly and effectively, our fluid properties quiz offers a dynamic, randomized question bank that changes values and units with every attempt. This means you’ll consistently face fresh problems while practicing the same core skills.
Not only does this improve accuracy, but it also boosts your speed and adaptability — two things every future engineer needs for the exam. Clear, step-by-step solutions follow each question, helping you learn from mistakes and reinforce correct problem-solving methods. By using this quiz regularly, you’ll feel more prepared, confident, and exam-ready.
Previous QuestionNext QuestionSubmit Quiz
//Question1
//Define Variables
var onesg
//Assigns Random Integers
onesg = (Math.floor(Math.random()*16)+1)*0.05;
//find gamma
onegamma = onesg*62.4;
onegamma1 = onesg*32.2;
onegamma2 = onesg*1000;
onegamma3 = onesg*500;
//Answer Choices
onecorrectanswer = onegamma.toFixed(1).replace(/\.?0+$/,"").toString() + " lb/ft^3";
oneanswer1 = onegamma1.toFixed(1).replace(/\.?0+$/,"").toString() + " lb/ft^3";
oneanswer2 = onegamma2.toFixed(1).replace(/\.?0+$/,"").toString() + " lb/ft^3";
oneanswer3 = onegamma3.toFixed(1).replace(/\.?0+$/,"").toString() + " lb/ft^3";
//Place Answer Choices into Array
oneanswerchoices = [oneanswer1, oneanswer2, oneanswer3, onecorrectanswer];
//Randomize Answer Choices
do {
var indexa = Math.floor(Math.random()*oneanswerchoices.length);
var indexb = Math.floor(Math.random()*oneanswerchoices.length);
}
while (indexb == indexa);
do {
var indexc = Math.floor(Math.random()*oneanswerchoices.length);
}
while (indexc == indexa || indexc == indexb);
do {
var indexd = Math.floor(Math.random()*oneanswerchoices.length);
}
while (indexd == indexa || indexd == indexb ||
indexd == indexc);
onea = oneanswerchoices[indexa];
oneb = oneanswerchoices[indexb];
onec = oneanswerchoices[indexc];
oned = oneanswerchoices[indexd];
if (indexa == 3) {
onecorrectchoice = "a"
}
if (indexb == 3) {
onecorrectchoice = "b"
}
if (indexc == 3) {
onecorrectchoice = "c"
}
if (indexd == 3) {
onecorrectchoice = "d"
}
//Qeustion 1 Question
question1 = "1. Determine the specific weight of a fluid thathas a specific gravity of " + onesg.toFixed(2).toString() + "."
//Question2
//Define Variables
var tworho
//Assigns Random Integers
tworho = (Math.floor(Math.random()*400)+200)*50;
//find gamma
twogamma = tworho*9.81/1000;
twogamma1 = tworho*32.2/1000;
twogamma2 = tworho*62.4/1000;
twogamma3 = tworho*4.91/1000;
//Answer Choices
//correct answer
twocorrectanswer = twogamma.toFixed(1).replace(/\.?0+$/,"").toString() + " kN/m^3";
twoanswer1 = twogamma1.toFixed(1).replace(/\.?0+$/,"").toString() + " kN/m^3";
twoanswer2 = twogamma2.toFixed(1).replace(/\.?0+$/,"").toString() + " kN/m^3";
twoanswer3 = twogamma3.toFixed(1).replace(/\.?0+$/,"").toString() + " kN/m^3";
//Place Answer Choices into Array
twoanswerchoices = [twoanswer1, twoanswer2, twoanswer3, twocorrectanswer];
//Randomize Answer Choices
do {
var indexa = Math.floor(Math.random()*twoanswerchoices.length);
var indexb = Math.floor(Math.random()*twoanswerchoices.length);
}
while (indexb == indexa);
do {
var indexc = Math.floor(Math.random()*twoanswerchoices.length);
}
while (indexc == indexa || indexc == indexb);
do {
var indexd = Math.floor(Math.random()*twoanswerchoices.length);
}
while (indexd == indexa || indexd == indexb ||
indexd == indexc);
twoa = twoanswerchoices[indexa];
twob = twoanswerchoices[indexb];
twoc = twoanswerchoices[indexc];
twod = twoanswerchoices[indexd];
if (indexa == 3) {
twocorrectchoice = "a"
}
if (indexb == 3) {
twocorrectchoice = "b"
}
if (indexc == 3) {
twocorrectchoice = "c"
}
if (indexd == 3) {
twocorrectchoice = "d"
}
//Question 2 Question
question2 = "2. Determine the specific weight of a fliud that has a density of " + tworho.toString() + " kg/m^3."
//Question3
//define variables
var threerho
//Assign Random Integers
threerho = (Math.floor(Math.random()*400)+10)*50;
//find specific gravity
threesg = threerho/1000;
threesg1 = threerho/624;
threesg2 = threerho/981;
threesg3 = threerho/10000;
//Answer Choices
//Correct Answer
threecorrectanswer = threesg.toFixed(2).toString();
threeanswer1 = threesg1.toFixed(2).toString();
threeanswer2 = threesg2.toFixed(2).toString();
threeanswer3 = threesg3.toFixed(2).toString();
//Place Answer Choices into Array
threeanswerchoices = [threeanswer1, threeanswer2, threeanswer3, threecorrectanswer];
//Randomize Answer Choices
do {
var indexa = Math.floor(Math.random()*threeanswerchoices.length);
var indexb = Math.floor(Math.random()*threeanswerchoices.length);
}
while (indexb == indexa);
do {
var indexc = Math.floor(Math.random()*threeanswerchoices.length);
}
while (indexc == indexa || indexc == indexb);
do {
var indexd = Math.floor(Math.random()*threeanswerchoices.length);
}
while (indexd == indexa || indexd == indexb ||
indexd == indexc);
threea = threeanswerchoices[indexa];
threeb = threeanswerchoices[indexb];
threec = threeanswerchoices[indexc];
threed = threeanswerchoices[indexd];
if (indexa == 3) {
threecorrectchoice = "a"
}
if (indexb == 3) {
threecorrectchoice = "b"
}
if (indexc == 3) {
threecorrectchoice = "c"
}
if (indexd == 3) {
threecorrectchoice = "d"
}
//Question 3 Question
question3 = "3. Determine the specific gravity of a fluid that has a density of " + threerho.toString() + " kg/m^3."
//Qestion4
//define variables
var fourh
//Assign Random Integers
fourh = (Math.floor(Math.random()*4)+1)*5;
//find pressure
fourp = fourh*62.4;
fourp1 = fourh*32.2;
fourp2 = fourh*32.2*2;
fourp3 = fourh*62.4*2;
//Answer Choices
fourcorrectanswer = fourp.toString() + " psf";
fouranswer1 = fourp1.toString() + " psf";
fouranswer2 = fourp2.toString() + " psf";
fouranswer3 = fourp3.toString() + " psf";
//Place Answer Choices into Array
fouranswerchoices = [fouranswer1, fouranswer2, fouranswer3, fourcorrectanswer];
//Randomize Answer Choices
do {
var indexa = Math.floor(Math.random()*fouranswerchoices.length);
var indexb = Math.floor(Math.random()*fouranswerchoices.length);
}
while (indexb == indexa);
do {
var indexc = Math.floor(Math.random()*fouranswerchoices.length);
}
while (indexc == indexa || indexc == indexb);
do {
var indexd = Math.floor(Math.random()*fouranswerchoices.length);
}
while (indexd == indexa || indexd == indexb ||
indexd == indexc);
foura = fouranswerchoices[indexa];
fourb = fouranswerchoices[indexb];
fourc = fouranswerchoices[indexc];
fourd = fouranswerchoices[indexd];
if (indexa == 3) {
fourcorrectchoice = "a"
}
if (indexb == 3) {
fourcorrectchoice = "b"
}
if (indexc == 3) {
fourcorrectchoice = "c"
}
if (indexd == 3) {
fourcorrectchoice = "d"
}
//Qeustion 4 Question
question4 = "4. Determine the pressure at the bottom the dam that has a water height of " + fourh.toString() + " ft."
//Question Slides
const myQuestions = [
{
question: question1,
answers: {
a: onea,
b: oneb,
c: onec,
d: oned
},
correctAnswer: onecorrectchoice
},
{
question: question2,
answers: {
a: twoa,
b: twob,
c: twoc,
d: twod
},
correctAnswer: twocorrectchoice
},
{
question: question3,
answers: {
a: threea,
b: threeb,
c: threec,
d: threed
},
correctAnswer: threecorrectchoice
},
{
question: question4,
answers: {
a: foura,
b: fourb,
c: fourc,
d: fourd
},
correctAnswer: fourcorrectchoice
}
];
function buildQuiz() {
// we'll need a place to store the HTML output
const output = [];
// for each question...
myQuestions.forEach((currentQuestion, questionNumber) => {
// we'll want to store the list of answer choices
const answers = [];
// and for each available answer...
for (letter in currentQuestion.answers) {
// ...add an HTML radio button
answers.push(
``
);
}
// add this question and its answers to the output
output.push(
`
${currentQuestion.question}
${answers.join("")}
`
);
});
// finally combine our output list into one string of HTML and put it on the page
quizContainer.innerHTML = output.join("");
}
function showResults() {
// gather answer containers from our quiz
const answerContainers = quizContainer.querySelectorAll(".answers");
// keep track of user's answers
let numCorrect = 0;
// for each question...
myQuestions.forEach((currentQuestion, questionNumber) => {
// find selected answer
const answerContainer = answerContainers[questionNumber];
const selector = `input[name=question${questionNumber}]:checked`;
const userAnswer = (answerContainer.querySelector(selector) || {}).value;
// if answer is correct
if (userAnswer === currentQuestion.correctAnswer) {
// add to the number of correct answers
numCorrect++;
// color the answers green
answerContainers[questionNumber].style.color = "green";
} else {
// if answer is wrong or blank
// color the answers red
answerContainers[questionNumber].style.color = "red";
}
});
// show number of correct answers out of total
resultsContainer.innerHTML = `${numCorrect} out of ${myQuestions.length}`;
}
function showSlide(n) {
slides[currentSlide].classList.remove("active-slide");
slides[n].classList.add("active-slide");
currentSlide = n;
if (currentSlide === 0) {
previousButton.style.display = "none";
} else {
previousButton.style.display = "inline-block";
}
if (currentSlide === slides.length - 1) {
nextButton.style.display = "none";
submitButton.style.display = "inline-block";
} else {
nextButton.style.display = "inline-block";
submitButton.style.display = "inline-block";
}
}
function showNextSlide() {
showSlide(currentSlide + 1);
}
function showPreviousSlide() {
showSlide(currentSlide - 1);
}
const quizContainer = document.getElementById("quiz");
const resultsContainer = document.getElementById("results");
const submitButton = document.getElementById("submit");
// display quiz right away
buildQuiz();
const previousButton = document.getElementById("previous");
const nextButton = document.getElementById("next");
const slides = document.querySelectorAll(".slide");
let currentSlide = 0;
showSlide(0);
// on submit, show results
submitButton.addEventListener("click", showResults);
previousButton.addEventListener("click", showPreviousSlide);
nextButton.addEventListener("click", showNextSlide);
Advertisements
Affordable Fluid Mechanics Study Resources
Mastering fluid mechanics can be challenging, but the right study resources make all the difference. There are many affordable options available, including textbooks, eBooks, and online courses that offer comprehensive explanations, practical examples, and problem sets to help you grasp key concepts. Whether you’re a student preparing for exams or a professional refreshing your knowledge, these resources cater to various learning styles and budgets. Investing in a quality study guide can boost your confidence and deepen your understanding of fluid behavior, hydraulics, and related principles.
Advertisements
Join the Discussion Boards to Collaborate and Learn
Don’t hesitate to join our active discussion boards where you can connect with fellow students and professionals tackling fluid mechanics and related topics. Whether you have tricky homework questions, want to share study strategies, or need help breaking down complex problems, our community is here to support you. Collaborating through the discussion boards lets you gain new insights, get timely help, and deepen your understanding by learning alongside others on the same journey.
Peer-to-peer learning is one of the most effective ways to master complex subjects like fluid mechanics. By engaging in our discussion boards, you not only receive answers but also develop critical thinking and problem-solving skills as you explain concepts to others. This interactive approach helps reinforce your own understanding and builds confidence. Plus, the boards are monitored by experienced tutors and professionals who can provide expert guidance when needed. Whether you’re stuck on a challenging problem or want to explore real-world applications, the discussion boards create a collaborative space where everyone grows together.
Advertisements
Fluid Mechanics Tutor to Support Your Engineering Success
At The Bridge Tutors, we understand that sometimes self-study isn’t enough, and that’s where our personalized tutoring resources come in. Whether you’re struggling with a specific topic, preparing for the FE exam, or looking to strengthen your foundational skills in math and engineering, our one-on-one tutoring sessions provide the tailored support you need to succeed. Our experienced tutors work closely with you to identify your challenges, clarify difficult concepts, and guide you through problem-solving strategies that build lasting confidence.
Our tutoring is flexible and convenient, offered through Zoom or messaging platforms to fit your busy schedule. This means you can get expert help from the comfort of your home, at a time that works best for you. We focus on active learning and personalized feedback, ensuring that every session is engaging, productive, and designed to meet your unique goals.
Beyond individual sessions, our tutoring resources include access to a growing library of video tutorials, written examples, and interactive quizzes. These tools complement your live tutoring and allow you to practice independently, reinforcing what you learn in sessions. With The Bridge Tutors, you’re never alone on your academic journey — expert help is always just a click away.
Advertisements
error: Content is protected !!
Cookie Consent
We use cookies to improve your experience on our site. By using our site, you consent to cookies.
Registers a unique ID to keep statistics of what videos from YouTube the user has seen.
Session
DEVICE_INFO
Used to detect if the visitor has accepted the marketing category in the cookie banner. This cookie is necessary for GDPR-compliance of the website.
179 days
LOGIN_INFO
This cookie is used to play YouTube videos embedded on the website.
2 years
VISITOR_PRIVACY_METADATA
Youtube visitor privacy metadata cookie
180 days
GPS
Registers a unique ID on mobile devices to enable tracking based on geographical GPS location.
1 day
VISITOR_INFO1_LIVE
Tries to estimate the users' bandwidth on pages with integrated YouTube videos. Also used for marketing
179 days
PREF
This cookie stores your preferences and other information, in particular preferred language, how many search results you wish to be shown on your page, and whether or not you wish to have Google’s SafeSearch filter turned on.
You must be logged in to post a comment.