class ATM:
def __init__(self):
self.money = 0.0
self.password = '1234'
def add_money(self, _money) -> bool:
if float(_money) > 0.0:
self.money += float(_money)
return True
return False
def pass_check(self) -> bool:
tries = 1
while input('Give me the password:\n> ') != self.password:
if tries > 2:
return False
tries+=1
print(f'#{tries}: Bad password')
return True
def withdraw(self, _money) -> bool:
if not self.pass_check():
self.close_session()
return False
if float(_money) > 0.0 and self.money - float(_money) >= 0.0:
self.money -= float(_money)
return True
return False
def get_balance(self) -> float:
return self.money
def close_session(self) -> None:
raise SystemExit(0)
# Пример использования 1
_atm = ATM()
_atm.add_money(1700)
print('Your balance is ' + str(_atm.get_balance()))
_atm.withdraw(1600)
print('Your balance is ' + str(_atm.get_balance()))
# Пример использования 2
_atm = ATM()
if _atm.add_money(1600):
print('Money successfully added!')
else:
print('Error while money adding.')
print('Your balance is ' + str(_atm.get_balance()))
if _atm.withdraw(1700):
print('Successfully withdrawn!')
else:
print('Error while money withdrawing.')
#include <iostream>
#include <iomanip>
int main()
{
using namespace std;
//исходная последовательность
const int N = 8;
double Arr[N] = { 14.2, -3.4, 7.8, -3.1, 8.2, 98.22, -7, 12 };
//вывод на экран исходной последовательности
for (int i = 0; i < N; ++i)
cout << Arr[i] << " ";
cout << endl;
//подсчитаем количества отрицательных и неотрицательных элементов
int kpos = 0;
int kneg = 0;
for (int i = 0; i < N; ++i)
if (Arr[i] < 0)
++kneg;
else
++kpos;
//создадим массивы отрицательных и неотрицательных элементов
double * ArrNeg = new double[kneg];
double * ArrPos = new double[kpos];
int kn = 0, kp = 0;
for (int i = 0; i < N; i++)
if (Arr[i] < 0)
ArrNeg[kn++] = Arr[i];
else
ArrPos[kp++] = Arr[i];
cout << "Enter a, b, c or d: ";
char ch;
cin >> ch;
if (ch == 'a' || ch == 'b' || ch == 'c' || ch == 'd')
{
switch (ch)
{
//пункт а)
case 'a':
for (int i = 0; i < kneg; ++i)
Arr[i] = ArrNeg[i];
for (int i = 0; i < kpos; ++i)
Arr[i + kneg] = ArrPos[i];
break;
//пункт б)
case 'b':
for (int i = 0; i < kneg; ++i)
Arr[i] = ArrNeg[--kn];
for (int i = 0; i < kpos; ++i)
Arr[i + kneg] = ArrPos[i];
break;
//пункт в)
case 'c':
for (int i = 0; i < kneg; ++i)
Arr[i] = ArrNeg[i];
for (int i = 0; i < kpos; ++i)
Arr[i + kneg] = ArrPos[--kp];
break;
//пункт г)
case 'd':
for (int i = 0; i < kneg; ++i)
Arr[i] = ArrNeg[--kn];
for (int i = 0; i < kpos; ++i)
Arr[i + kneg] = ArrPos[--kp];
break;
}
}
else
cout << "You entered wrong symbol\n";
for (int i = 0; i < N; ++i)
cout << Arr[i] << " ";
cout << endl;
delete[] ArrNeg;
delete[] ArrPos;
return 0;
}