Modular Programming: Yourprogramshouldbemodular andconsistsofthefollowingfunctions: a) read(): - Ask the user for a valid atomic number (Z) b) compute_binding_energy(Z, table): - Build the table (a list of lists) of binding energy where the columns are: the mass number (A), the binding energy (Eb) and the binding energy per nucleon (BEN), while the rows range from A = Z to A = 4Z c) most_stable(table) : - Find and return the row that contains the highest binding energy per nucleon, which corresponds to the most stable configuration. d) print_table(table): - Print the table in a neat tabular format as shown in the sample run in figure 2. e) write_to_file(table, file_name): - Save the table in a text file output.txt as shown in figure 3. 4 f) main(): - The main function is set up to make the calls to the functions as specified in points a) to e)
Extracted text: 1. Problem Description: The total nuclear binding energy is the energy required to split a nucleus of an atom in its component parts: protons and neutrons, or, collectively, the nucleons. It describes how strongly nucleons are bound to each other. When a high amount of energy is needed to separate the nucleons, it means nucleus is very stable and the neutrons and protons are tightly bound to each other. The atomic number or proton number (symbol Z) is the number of protons found in the nucleus of an atom. The sum of the atomic number Z and the number of neutrons N gives the mass number A of an atom. + Binding energy Separated nucleons (greater mass) Nucleus (smaller mass) Figure 1: Binding Energy in the Nucleus The approximate nuclear binding energy Eb in million electron volts, of an atomic nucleus with atomic number Z and mass number A is calculated using the following formula: (A - 22)? as 2 Eb = a,A – a,A3 - az 1 A3 A AZ where, a, = 15.67, a, = 17.23, a, = 0.75, a, = 93.2 , and Activate Win
Extracted text: if A is odd if A and Z are both even if A is even and Z is Odd a5 = 12.0 -12.0 The binding energy per nucleon (BEN) is calculated by dividing the binding energy (Eb) by the mass number (A). You are asked to write a program that requests the user for a valid atomic number (Z) then goes through all values of A from A = Z to A = 4Z. For example, if the user inputs 5 for Z then A will be all numbers from 5 (Z) to 20 (4 Z) inclusive, see the example output in figure 2. If the user enters invalid atomic number that is not between 1 and 118, the program should give the user another chance to enter a valid input as shown in figure 2. Your main task is to find the nucleus with the highest binding energy per nucleon, which corresponds to the most stable configuration (figure 2), and writes a copy of the table to a text file named output.txt (figure3). In [25]: runfile('/Users/hamzazidoum/Documents/2101/2101 52021/ Programming Assignments/PA4/pa4_nuclear.py, wdir='/Users/hamzazidoum/ Documents/2101/2101_S2021/Programming Assignments/PA4') >>>Enter valid atomic number (Z) [1,118]: 0 >>>Enter valid atomic number (Z) [1,118]: -120 >>>Enter valid atomic number (Z) [1,118): 200 >>>Enter valid atomic number (Z) [1,118]: 5 binding energy binding energy per Nucleon -448.996 -226.623 82.990 -3.778 47.111 64.228 1A 245 -89.799 -37.771 11.856 0.472 5.235 6.423 6 386 Activate W Co to Sertings 8. 10