Answer:
See explaination
Explanation:
Definition of Class 1:
class Stat:
def __init__(self, li):
self.li = li
def add(self, value):
self.li.append(value)
def __len__(self):
return len(self.li)
def min(self):
try:
return min(self.li)
except:
return "EmptyStatError: empty Stat does not have a min"
def max(self):
try:
return max(self.li)
except:
return "EmptyStatError: empty Stat does not have a max"
def sum(self):
return sum(self.li)
def mean(self):
try:
return float(sum(self.li))/float(len(self.li))
except:
return "EmptyStatError: empty Stat does not have a mean"
def __getitem__(self):
return self.li
def clear(self):
del self.li[:]
Definition of Class 2:
class intlist:
def __init__(self, li):
self.li = li
def append(self, value):
if type(value) == int:
self.li.append(value)
else:
print "NotIntError: Input is not an Integer."
def insert(self, index,value):
if type(value) == int:
self.li.insert(index, value)
else:
print "NotIntError: Input is not an Integer."
def extend(self, value):
i = 0
for temp in value:
if type(temp) == int:
i = i
else:
i = i+1
if i==0:
self.li.extend(value)
else:
print "NotIntError: Input is not an Integer."
def __setitem__(self, index, value):
self.insert(index, value)
def __getitem__(self, index):
return self.li[index]
def odds(self):
lis = []
for temp in self.li:
if temp%2 == 1:
lis.append(temp)
return lis
def evens(self):
lis = []
for temp in self.li:
if temp%2 == 0:
lis.append(temp)
return lis
Class 1 call:
s = Stat([])
s.add(2.5)
s.add(4.7)
s.add(78.2)
print len(s)
print s.min()
print s.max()
print s.sum()
print s.mean()
print s.li
s.clear()
print s.li
print len(s)
print s.min()
print s.max()
print s.mean()
print s.sum()
Class 2 call:
intl = intlist([])
print intl.li
intl = intlist([1,2,3])
print intl.li
intl.append(5)
print intl.li
intl.insert(1,99)
print intl.li
intl.extend([22,44,66])
print intl.li
print intl.odds()
print intl.evens()
print intl.li
intl[2] = -12
print intl[4]
Change the display property of each hyperlink to block.
Answer:
There is only one modification in the above loop i.e. while loop should be like this--
while (i != n)
{
sum+=arr[i]; // Line 1, In question segment it is line 2.
i++; // Line 2, In question segment it is line 1.
}
Output:
Now if the array input is 1,2,3,4,5 then the output is 15.
Explanation:
In the above question, all the line of the segment is right except the body of the loop because--
- The First line of the loop is increment statement which increments the value of "i" variable from 1 and the value of "i" variable will be 1 in the first iteration of the loop
- The second line starts to add the value from 1'st index position of the array. Hence the segment gives the wrong answer. It adds the arr[1] to arr[n-1].
- So I interchanged both lines of the while loop as shown in the answer part. I make the line 1 (In question segment) as line 2(In answer part) and line 2 (In question segment) as line 1 (In answer part).
Now It gives the correct output because it can add arr[0] to arr[n-1].
that you are a great canidate, in high demand, and well trained!