Записать в виде блок схемы алгоритм решения : 1) определить сумму степеней числа 2, если показателями являются цифры введённого трёхзначного числа или эту 2) вычислить количество точек с целочисленными координатами, находящихся в круге с радиусом r
for (int i = 0; i < N;i++){ x.push_back(rand()%29+1); } }
void main(){
srand(time(NULL)); make(A); list<int> tmp = A; print(A); _01:cout<<"\nWrite digit to change: ";int digit(0); cin>>digit; A.remove(digit);//удаляю введене число int newdigit = digit+15;// збільшую нове число, щоб не повторилось случайно з видаленим int size = N - A.size();//узнаю скільки чисел удалило for (int i = 0; i < size; i++) A.push_back(rand()%newdigit+1); //добавляю нові значення замість видалених if (size!=0){
cout<<"OK\nAFTER CHANGE\n"; print(A);cout<<endl; } else {cout<<"What you want to change?? digit not exist!!"; goto _01;}
int n(0),k(0); cout<<"Delete n element from k position Write n: ";cin>>n; cout<<"Write k ";cin>>k; int cout1(0); list<int>::iterator m; m = A.begin(); for (int i = 0; i < k; i++) *m++; for (int i = 0; i < n; i++) {
A.remove(*m++); cout1++;//бо так нада } int how = N - A.size() - n; for (int i = 0; i< how; i++) A.push_back(rand()%29+1); print(A);list<int> B = A; int sizeB = B.size(); cout<<"\nAFTER CONCAT C = \n"; for (int i = 0 ; i < N; i++) {C.push_back(tmp.front()++); tmp.pop_front();} for (int i = 0 ; i < sizeB; i++) {C.push_back(B.front()++); B.pop_front();} cout<<endl; print(C);
#include "stdafx.h"
#include<iostream>
#include<time.h>
#include<list>
using namespace std;
const int N = 15;
list<int> A;list<int> C;
void print(list<int> x){
while(!x.empty()){
cout<<x.front()<<" ";
x.pop_front();}
}
void make(list<int>& x){
for (int i = 0; i < N;i++){
x.push_back(rand()%29+1);
}
}
void main(){
srand(time(NULL));
make(A);
list<int> tmp = A;
print(A);
_01:cout<<"\nWrite digit to change: ";int digit(0); cin>>digit;
A.remove(digit);//удаляю введене число
int newdigit = digit+15;// збільшую нове число, щоб не повторилось случайно з видаленим
int size = N - A.size();//узнаю скільки чисел удалило
for (int i = 0; i < size; i++) A.push_back(rand()%newdigit+1); //добавляю нові значення замість видалених
if (size!=0){
cout<<"OK\nAFTER CHANGE\n";
print(A);cout<<endl;
}
else {cout<<"What you want to change?? digit not exist!!"; goto _01;}
int n(0),k(0);
cout<<"Delete n element from k position Write n: ";cin>>n;
cout<<"Write k ";cin>>k;
int cout1(0);
list<int>::iterator m;
m = A.begin();
for (int i = 0; i < k; i++) *m++;
for (int i = 0; i < n; i++) {
A.remove(*m++); cout1++;//бо так нада
}
int how = N - A.size() - n;
for (int i = 0; i< how; i++) A.push_back(rand()%29+1);
print(A);list<int> B = A; int sizeB = B.size();
cout<<"\nAFTER CONCAT C = \n";
for (int i = 0 ; i < N; i++) {C.push_back(tmp.front()++); tmp.pop_front();}
for (int i = 0 ; i < sizeB; i++) {C.push_back(B.front()++); B.pop_front();}
cout<<endl;
print(C);
cout<<"\n";
system("pause");
}
1) -9
Найдем модуль числа:
|-9|=9
Найдем прямой код числа 9
9/2 = 4 ост 1
4 / 2 = 2 ост 0
2 / 2 = 1 ост 0
Запишем число в прямом коде
9 = 1001(2 СС)
Дополним до до 8 разрядов
00001001
Инввертируем - заменяем каждую цифру обратным кодом (0 заменяем на 1, 1 заменяем на 0)
11110110 - это обратный код чила
Прибавляем 1 (чтобы получить дополнительный код)
11110110 + 1 = 11110111
2) -15
Модуль - |-15| = 15
Двоичное представление 15 = 1111(2)
Представление восьмиразрядное
00001111 - прямой код
Инвертируем:
11110000 - обратный код
Прибуавляем 1
11110001 - дополнительный код
3) -127
Модуль |-127| = 127
Двоичное число
127 = 1111111
Восьмиразрядное представление
01111111 - прямой код
Инвертируем
10000000 - обратный код
Добавляем 1
10000001- дополнительный код
4) |-128|
Модуль |-128| = 128
Двоичное число 128 = 10000000
Восьмиразрядное представление 10000000
Число в -128 в 8 разрядах представить нельзя - недостаток ячеек памяти