Необходимо спроектировать, протестировать и разработать систему, соответствующую
нижеописанному сценарию. Любая написанная программа должна включать подсказку для
ввода данных и другую необходимую введённую ясную и понятную информацию.
Любые переменные и другие используемые идентификаторы должны быть обозначены.
Создай проект ввода оценки , полученной учащимся, и выдачи текста «Молодец!», если оценка=5,
«Хорошо!», если оценка =4 и «Лентяй!», если оценка <=3. 1. Опишите модель решения поставленной задачи, соблюдая следующие пункты:
a) Входные данные программы
b) Выходные данные программы
c) Назначение программы
using namespace std;
int main() {
int n=12, imax=0, imin=0;
int a[n];
srand(time(NULL));
cout<<"array:"<<endl;
for (int i=0; i<n; i++)
{
a[i]=rand() % 50;
cout<<a[i]<<" ";
}
cout<<endl;
for (int i=1; i<n; i++) {
if (a[i] > a[imax]) imax = i;
if (a[i] < a[imin]) imin = i;
}
for (int i=0; i<n; i++) {
if (i == imax || i == imin) cout << " ! " << a[i] << " ! ";
else cout << a[i] << " ";
}
cout<<endl;
return 0;
}
Пример:
array:
31 0 13 29 13 34 33 42 40 26 48 24
31 ! 0 ! 13 29 13 34 33 42 40 26 ! 48 ! 24
1) перевести в двоичную систему счисления
0000 1101 13
0000 0111 7
2) инвертировать (заменить 0 на 1 и наоборот)
1111 0010
1111 1000
3) и прибавить 1
1111 0011
1111 1001
все)
числа в дополнительном коде мы получили
теперь сложение:
1111 0011
1111 1001 +
1 1110 1100
мы получили переполнение и единицу в старшем разряде, это значит, сумма будет со знаком минус
теперь переведем сумму в обычный код, не трогаем старший бит
1) _001 0011 инвертируем биты
2) _001 0100 прибавим 1
3) переводим в десятичную систему счисления:
20
вспоминаем, что сумма отрицательная, поэтому ответ будет: -20
------------
для положительных чисел нужно перевести в двоичную систему
Например:
2 + 3
0000 0010 - 2
0000 0011 - 3
и сложить
0000 0101 - = 2 + 4 = 6
у положительных дополнительный код совпадает с прямым кодом