В программе используется одномерный
целочисленный массив Асиндексами от 0 до
9. Значения элементов равны 7,5; 3, 4, 8; 8; 9;
7,6; 2 соответственно, те A[0]=7; А[1]E5 итд.
Определите значение переменной с после
выполнения следующего фрагмента
программы
с := 0;
for i:=1 to 9 do
if A[i-1] < A[i] then
begin
t:= A[i];
A[i] := A[i-1]:
A[i-1] := t;
end
else
с—
с
1:
00010100.00010001.00000000.00010000
Число после косой черты - количество единиц в маске подсети. Таким образом, маска подсети будет иметь вид:
11111111.11111111.11111111.11111100
Теперь найдем сетевой адрес, выполнив поразрядно логическое умножение IP-адреса на маску подсети.
00010100.00010001.00000000.00010000 - IP-адрес
11111111.11111111.11111111.11111100 - маска подсети
00010100.00010001.00000000.000100хх - сетевой адрес
То есть минимальный адрес (заменяем "х" нулями) - 00010100.00010001.00000000.00010000 (20.17.0.16), а максимальный (заменяем "х" единицами) - 00010100.00010001.00000000.00010011 (20.17.0.19).
ответом будут адреса из данного диапазона, то есть 20.16.0.17/30, 20.17.0.17/30, 20.17.0.18/30, 20.17.0.19/30.
using namespace std;
int main() {
int month, day;
string a[13] = {"Kozerog","Vodoley","Ryby","Oven","Telec","Bliznecy",
"Rak","Lev","Deva","Vesy","Skorpion","Strelec","Kozerog"};
int mes[12] = {31,29,31,30,31,30,31,30,31,31,30,31};
int bound[12] = {21,19,21,20,21,22,23,23,23,23,23,22};
cout << "Programma opredeleniya znaka zodiaka" << endl;
cout << "Vvedite mecyac: ";
cin >> month;
cout << "Vvedite den: ";
cin >> day;
if ((month<1 || month>12) || (day<1 || day>mes[month-1]))
cout<<"invalid input"<<endl;
else {
if (day<bound[month-1]) cout<<a[month-1]<<endl;
else cout<<a[month]<<endl;
}
system("pause");
return 0;
}