Ответ:
1.
var a:array [1..20] of integer;
i,m:integer;
begin
for i:=1 to 20 do
begin
write('a[',i,'] = ');
readln(a[i]);
end;
writeln;
write('Массив ');
m:=a[1];
for i:=1 to 20 do
begin
write (a[i], ' ');
if a[i]<m then m:=a[i]
end;
writeln;
writeln ('Наименьший элемент ',m)
end.
2.
var a:array [1..10] of integer;
i,mi:integer;
begin
write('Массив ');
for i:=1 to 10 do
begin
a[i]:=random(46)-20;
write (a[i], ' ')
end;
writeln;
mi:=1;
for i:=2 to 10 do
if a[i]<a[mi] then mi:=i;
writeln ('Номер наименьшего элемента ',mi)
end.
1) Найдем глубину кодирования одного символа (количество ячеек памяти для одного символа) - i
N = 2^i
64 = 2^i
i = 6 бит нужно для кодирования одного символа 64-символьного алфавита
2) 8640 байт = 69120 бит - содержит все сообщение
3) 69120 бит / 6 бит = 11520 символов всего в сообщении
4) 6 × 30 = 180 строк на 6 страницах
5) 11520 симв / 180 строк = 64 символа в одной строке.
Ответ: 64 символа в одной строке.
Для перевод в двоичную просто делим на 2, а остаток записываем во вторую колонку. Когда остается единица, то выносим ее так же во второй столбик и читаем СНИЗУ ВВЕРХ.
Для перевод из двоичной в десятичную мы над числом начиная с правого проставляем цифры, начиная с нуля. Это будет степенью двойки, на которую будет умножаться соответствующая цифра двоичного представления числа. Просто складываем, вычисляем.
Для примера я взяла число 123.
#include <iostream>
<span>#include <ctime>
</span><span>using namespace std;
</span>int main() {
<span> int n,m;
</span><span> FILE *fpt;
</span><span> cout<<"n = "; cin>>n;
</span><span> fpt=fopen("input.dat","wb");
</span><span> srand(time(NULL));
</span><span>// запись файла
</span><span> for (int i=0; i<n; i++) {
</span><span> m=rand()%8000-3000;
</span><span> cout<<m<<" ";
</span><span> fwrite(&m,sizeof(int),1,fpt);
</span><span> }
</span><span> cout<<endl;
</span><span> fclose(fpt);
</span><span> fpt=fopen("input.dat","rb+");
</span><span> int indf=0,indl=0,vf=0,vl=0,k=0;
</span><span>// чтение файла
</span><span> while (fread(&m,sizeof(int),1,fpt)!=0) {
</span><span> k++;
</span><span> if (!(m%2==0) && (indf==0)) { indf=k-1; vf=m; }
</span><span> if ((!m==0) && (m%2==0)) { indl=k-1; vl=m; }
</span><span> }
</span><span> cout<<"first odd = "<<vf<<" index = "<<indf<<endl;
</span><span> cout<<"last even = "<<vl<<" index = "<<indl<<endl;
</span><span>// обмен первого нечетного и последнего четного
</span><span> if (indf>0) {
</span><span> fseek(fpt,sizeof(int)*indf,SEEK_SET);
</span><span> fwrite(&vl,sizeof(int),1,fpt);
</span><span> }
</span><span> if (indl>0) {
</span><span> fseek(fpt,sizeof(int)*indl,SEEK_SET);
</span><span> fwrite(&vf,sizeof(int),1,fpt);
</span><span> }
</span><span> fclose(fpt);
</span><span> system("pause");
</span><span> return 0;
</span><span>}
</span>n = 6
<span>4368 2733 1112 2620 1941 753
</span><span>first odd = 2733 index = 1
</span><span>last even = 2620 index = 3
</span>
Если это такая проблема скопировать код и выполнить его, то держите
Вывод
sr=4.5