代做ENG2002、Python编程语言代写
THE HONG KONG POLYTECHNIC UNIVERSITY

ENG2002 Computer Programming Homework

A. Instructions

1. At the beginning of each Python file, add a comment to show your student ID and name.
2. This assignment comprises 3 parts. You may use a new file for each part or a single Jupyter Notebook file.
3. Your programs need to be well commented. You may refer to your course notes (ch4.pdf) on how comments are
made. Lacking comments will result in down-grading of your submission.
4. Your programs need to have a good structure. Never write the whole program in a single function. You should
write supporting functions.
5. Do NOT share your source program with your classmates. Plagiarism will make you and your friends all get zero
mark.
6. The deadline of submission is 13 October 2024 and you need to submit your file to Teams as an attachment.
B. The Programming Task

Background

A simple resistor–capacitor (RC) circuit is an electric circuit composed of one resistor and one capacitor as shown below:
The capacitor C could be charged to V0 and then be discharged by the resistor R. The formula for exponential decay of
resistor voltage is given by:

!( ) = " # !
"# (1)

where V0 is the capacitor voltage at time t = 0. The time required for the voltage to fall to 36.8% of the initial value is
called the time constant ( ) and is given by:

= (2)


Q1. Create a new file in Jupyter Notebook with the name "part1". On starting, the application should call a function
userMenu() that shows the following main menu:

[a] Find time constant
[b] Find discharge voltage
[c] Find discharge time
[d] Find best curve from experimental data
[x] Exit

Key in your choice (a, b, c, d or x to exit): • The user is expected to enter a character of 'a', 'b', 'c', 'd' or 'x' only. When any other character is entered,
userMenu() will display "Wrong input, enter again!" and the above main menu is shown again. For
this part, if the user enters 'b' or 'c' or 'd', the above menu will be shown again and your program does not need
to do anything.

• If the user enters 'a', userMenu() will display "Please enter resistance (R): ". The user should input
a value of type float. It is assumed that the user always enters a positive float value for R and your program
does not need to check this. Then, userMenu() will display "Please enter capacitance (C): ". The
user should input a positive value for C. If the user enters 0 or a negative value, userMenu() will prompt the
user for re-entering until a positive value has been entered (you may assume that the user always enters a value
of type float for this and your program does NOT need to check this.) Then, the function timeConst() is
called, which uses the user-input values of R and C as input parameter values, and returns the value of the time
constant, which is of type float. Note that this returned value should be printed by userMenu() and the
function timeConst() must NOT print anything on screen.

• If the user enters 'x', userMenu() will print "Goodbye!" on the screen. The whole program then ends (without
showing the main menu.)

• The following Python code MUST be used.


#your Name
#student number

from math import exp, log #use math functions in part 2

#Implement the required functions below:

#def timeConst(R, C) #Find time constant of a simple RC circuit
#def userMenu() #shows the user menu and process user input

userMenu() #call function to display user menu and process user input


• The sample outputs given below should be realised by your program on executing it inside Jupyter Notebook.
Notice that the character(s) following a ‘:’ is/are entered by the user.
-------------------------------------- PASS line ---------------------------------- Q2. Create a NEW file with the name "part2". Copy the content of the source file in Q1 to this file. Modify the
program developed for Q1 to perform the following tasks:

• Rewrite the function userMenu()such that if the user enters 'b', it will display "Enter initial voltage
(V0): " on the screen. The user should input a positive value of type float and you should create a function
input_p()to handle this. Then, userMenu()will display "Enter resistance (R): " on the screen. The
user should input a positive value of type float and the function input_p() should be used. Afterward,
userMenu()will display "Enter capacitance (C): " on the screen. The user should input a positive value
of type float and the function input_p() should also be called. Then, userMenu()should call a function
disVoltage() which uses the values of V0, R, C as input parameters. disVoltage()will display "Enter
discharge time (t): " on the screen. The user should input a positive value of type float and the function
input_p()should be used. disVoltage()will then display the discharge voltage using equation (1). You may
use exp()function in the math module. The function disVoltage() should have no returned value.

• Rewrite the function userMenu()such that if the user enters 'c', it will display "Enter initial voltage
(V0): " on the screen. The user should input a positive value of type float and the function input_p()
should be used. Then, userMenu()will print "Enter resistance (R): " on the screen. The user should
input a positive value of type float and the function input_p() should be used. Afterward, userMenu()will
display "Enter capacitance (C): " on the screen. The user should input a positive value of type float
and the function input_p() should also be called. Then, userMenu()should call a function disTime() which
uses the values of V0, R, C as input parameters. disTime()will display "Enter discharge voltage (Vr):
" on the screen. The user should input a positive value of type float and the function input_p()should be
used. disTime()will then display the discharge time by solving equation (1). You may use log()function in
the math module. The function disTime() should have no returned value.

• The sample outputs given below should be realised by your program on executing it inside Jupyter Notebook.
Notice that the character(s) following a ‘:’ is/are entered by the user.

---------------------------------- CREDIT line ------------------------------------

Q3. Create a NEW file with the name "part3". Copy the content of the source file in Q2 to this file. Modify the
program developed for Q2 to perform the following tasks:

• Rewrite the function userMenu()such that if the user enters 'd', it will call the function bestCurve() and then
the function will call input_p() to get the input data from the user. It will display the result on the screen
inside the function. Get back to the main menu after the result is shown.
• To find the best curve, you need to transform equation (1) into straight line, y = m x + b and then use the following
formulae to find the best straight line:

where

• The sample outputs given below should be realised by your program on executing it inside Jupyter Notebook.
Notice that the character(s) following ‘:’ is/are entered by the user.

---------------------------------- DISTINCTION line -------------------------------

热门主题

课程名

mktg2509 csci 2600 38170 lng302 csse3010 phas3226 77938 arch1162 engn4536/engn6536 acx5903 comp151101 phl245 cse12 comp9312 stat3016/6016 phas0038 comp2140 6qqmb312 xjco3011 rest0005 ematm0051 5qqmn219 lubs5062m eee8155 cege0100 eap033 artd1109 mat246 etc3430 ecmm462 mis102 inft6800 ddes9903 comp6521 comp9517 comp3331/9331 comp4337 comp6008 comp9414 bu.231.790.81 man00150m csb352h math1041 eengm4100 isys1002 08 6057cem mktg3504 mthm036 mtrx1701 mth3241 eeee3086 cmp-7038b cmp-7000a ints4010 econ2151 infs5710 fins5516 fin3309 fins5510 gsoe9340 math2007 math2036 soee5010 mark3088 infs3605 elec9714 comp2271 ma214 comp2211 infs3604 600426 sit254 acct3091 bbt405 msin0116 com107/com113 mark5826 sit120 comp9021 eco2101 eeen40700 cs253 ece3114 ecmm447 chns3000 math377 itd102 comp9444 comp(2041|9044) econ0060 econ7230 mgt001371 ecs-323 cs6250 mgdi60012 mdia2012 comm221001 comm5000 ma1008 engl642 econ241 com333 math367 mis201 nbs-7041x meek16104 econ2003 comm1190 mbas902 comp-1027 dpst1091 comp7315 eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 comp3425 comp9417 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst litr1-uc6201.200 ee1102 cosc2803 math39512 omp9727 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 07 cisc102 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 math21112 efim20036 mn-3503 fins5568 110.807 bcpm000028 info6030 bma0092 bcpm0054 math20212 ce335 cs365 cenv6141 ftec5580 math2010 ec3450 comm1170 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 math350-real math2014 eec180 stat141b econ2101 msinm014/msing014/msing014b fit2004 comp643 bu1002 cm2030
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图