#!/usr/bin/ruby # FILE: lab5_v1.rb # => Experiment 11. Partial Molal Volume # => Resource: Input5.txt # => This version goes through line 850 of LAB5.BAS #Initialize Arrays: M = Array.new(11) {0.0} EM = Array.new(11) {0.0} D = Array.new(11) {0.0} W = Array.new(11) {0.0} B = Array.new(11) {0.0} ED = Array.new(11) {0.0} MO = Array.new(11) {0.0} C = Array.new(11) {0.0} EC = Array.new(11) {0.0} F = Array.new(11) {0.0} EF = Array.new(11) {0.0} P = Array.new(11) {0.0} G = Array.new(11) {0.0} EG = Array.new(11) {0.0} I = Array.new(11) {0.0} EI = Array.new(11) {0.0} EMO = Array.new(11) {0.0} J = Array.new(11) {0.0} EJ = Array.new(11) {0.0} EP = Array.new(11) {0.0} Z = Array.new(11) {0.0} MS = Array.new(11) {0.0} EMS = Array.new(11) {0.0} X = Array.new(11) {0.0} V1 = Array.new(11) {0.0} L = Array.new(11) {0.0} EL = Array.new(11) {0.0} V10 = Array.new(11) {0.0} EV10 = Array.new(11) {0.0} SV1 = Array.new(11) {0.0} V2 = Array.new(11) {0.0} MP = Array.new(11) {0.0} EMP = Array.new(11) {0.0} SV2 = Array.new(11) {0.0} MI = Array.new(11) {0.0} lines = File.readlines("Input5.txt") name = lines[0] puts "NAME: #{name}\n" experiment = lines[1] puts "EXPERIMENT: #{experiment}\n" partner = lines[2] date = lines[3] puts "DATE: #{date}\n" puts "PARTNER: #{partner}\n" 5.times {puts} empty_weight_pycnometer = lines[4].split(',') we = empty_weight_pycnometer[0].to_f ewe = empty_weight_pycnometer[1].to_f puts "THE WEIGHT OF THE EMPTY PYCNOMETER = #{we} +/- #{ewe} grams\n\n" filled_weight_pycometer = lines[5].split(',') wo = filled_weight_pycometer[0].to_f ewo = filled_weight_pycometer[1].to_f puts "THE WEIGHT OF THE PYCNOMETER FILLED WITH H2O = #{wo} +/- #{ewo} grams\n\n" t = lines[6].to_f puts "THE TEMPERATURE OF THE BATH = #{t} degC\n\n" density_h20_at_that_temp = lines[7].split(',') d0 = density_h20_at_that_temp[0].to_f ed0 = density_h20_at_that_temp[1].to_f puts "THE DENSITY OF WATER AT #{t} degC = #{d0} +/- #{ed0} grams\n\n" initial_concen_NaCL = lines[8].split(',') M[1] = initial_concen_NaCL[0].to_f EM[1] = initial_concen_NaCL[1].to_f puts "THE INITIAL CONCENTRATION OF NACL (MOLARITY) = #{M[1]} +/- #{EM[1]} mol/dm3" rum = EM[1]/M[1] #RELATIVE ERROR IN NACL MOLARITY puts n = lines[9].to_i puts "#{n} CONCENTRATIONS WERE RUN.\n\n" vp = (wo-we)/d0 #vp = VOLUME OF THE PYCNOMETER a = wo-we ea = (ewo**2 + ewe**2)**0.5 evp = vp * ((ea/a) **2 + (ed0/d0) **2) **0.5 # ERROR IN THE VOLUME OF THE PYCNOMETER ewp = lines[10].to_f print "THE UNCERTAINTY IN THE WEIGHT OF THE PYCNOMETER FILLED " puts "WITH THE VARIOUS NACL SOLUTIONS = +/- #{ewp} grams\n\n" for i in 2..n M[i] = M[i-1]/2.0 EM[i] = rum * M[i] #puts "M[#{i}] = #{M[i]} and EM[#{i}] = #{EM[i]}" end current = 11 # line containing mass of first concentration; rest follow for i in 1..n puts puts "RUN NO. #{i}" print "THE CONCENTRATION (MOLARITY) FOR \##{i}" puts " = #{M[i]} +/- #{EM[i]} mol/dm3" W[i] = lines[current].to_f puts "THE WEIGHT OF THE FILLED PYCNOMETER = #{W[i]} grams" current = current +1 end