#include <iostream>
//#include <string>
//#include <cstdlib>
//#include <ctime>
using namespace std;
/* пограмма на с++
*
*
*
*/
int main(){
//system("clear");
cout«endl«endl«endl;
//srand(time(0));
int n;
int u;
do{
cout«" сколько чисел : ";
cin»n;
u=n;
if(cin.fail()){
cin.clear();
cin.ignore(32767,'\n');
}; } while (u<=0);
int arr[n];
int s=0;
int p=1;
bool lol=false;
//заполнение
int y;
for(int w=0; w<n; w++){
do{
cout«" введите число номер "«w«" : ";
cin»y;
if(cin.fail()){
cin.clear();
cin.ignore(32767,'\n');};
} while (y == 0);
arr[w]=y;
if(arr[w]%2==0) {
s=s+arr[w];
p++;
lol=true;
};};
if(lol)cout«" среднее арефметическое чётных чисел : "«s/(p-1);
else cout«" среднее арефметическое чётных чисел ненайдено ";
cout«endl«endl«endl;
return 0;
}
var
a:array [1..20] of real;
i,b,count:integer;
p:real;
begin
a[1]:=0.3; a[11]:=36;
a[2]:=5; a[12]:=13;
a[3]:=68; a[13]:=15;
a[4]:=-3; a[14]:=28;
a[5]:=32; a[15]:=-0.7;
a[6]:=-80; a[16]:=-36;
a[7]:=-9; a[17]:=-0.3;
a[8]:=-26; a[18]:=8;
a[9]:=-9; a[19]:=15;
a[10]:=40; a[20]:=-7;
b:=5; count:=0; p:=1;
for i:=1 to 20 do
begin
write(a[i],' ');
if ) then
begin
inc(count);
p:=p*a[i];
end;
end;
writeln;
writeln('count: ',count,' Pr: ',p);
end.
Чтобы перевести число в двоичную систему, необходимо сначала определить ближайшую (наибольшую возможную) степень двойки для этого числа, потом расставить нисходящий ряд степеней от этой степени до 2^0 (то есть, 1), и в конце, составить число из наибольших доступных частей.
Допустим, мы хотим перевести число 35 в двоичный вид.
Ближайшая степень - 32 (2^5). Следовательно, мы составляем ряд, где каждая единица (1) отвечает за часть нашего числа в виде степени двойки. То есть, ряд из 6 (отсчет от 5 до 0) цифр, где первая (которая отвечает за 2^5=32) будет единицей, выглядит так: 10000. Имеем 32. Нужно добавить 3. 3 из степеней двойки - это 2 + 1, следовательно, предпоследняя и последняя цифры ряда. "Переключаем" их на единицы. Имеем 100011 - это 35.
Как дополнительная практика:
71 = 64 + 4 + 2 + 1 = 1000111
Следовательно, чтобы совершить обратный переход, нужно посчитать количество цифр и отнять от него единицу - это и будет максимальная (самая левая) степень двойки. Дальше - снижаем степень с каждой следующей цифрой, пока не дойдем до 2 (2^1), а потом - 1 (2^0).
Пример:
101000 - 6 цифр, самая левая будет 2^5=32.
32 + 8 (2^5-2^4-2^3) = 40
Ещё:
10001110 - 8 цифр, самая левая - 2^7=128.
128 + 8 + 4 + 2 = 142
Вот и всё.