1)Перевести число из двоичной системы в системы с основанием 8, 10, 16. 100011002
2)Перевести число из восьмеричной системы в системы с основанием 2, 10, 16. 2058
3)Перевести число из десятичной системы в системы с основанием 2, 8, 16. 155
4)Перевести число из шестнадцатеричной системы в системы с основанием 2, 8, 10. 8916
5)Сложить двоичные числа. 100101102+ 110010112
6) Сложить восьмеричные числа. 62718+ 70248
7) Сложить шестнадцатеричные числа. B0616+ C6416
8) Вычесть двоичные числа. 10110102- 111110012
9) Вычесть восьмеричные числа. 15218- 70418
10) Вычесть шестнадцатеричные числа.
11) 40116(нижняя степень16)- E1A16
Кодирование информации
1. Текст длиной 32768 символов закодирован с алфавита, содержащего 64 символа. Сколько килобайт занимает в памяти этот текст?
2. Сообщение длиной 28672 символа занимает в памяти 21 Кбайт. Найдите мощность алфавита, который использовался при кодировании.
3. Рисунок размером 92 на 2048 пикселей закодирован с палитрой 2 цвета. Сколько килобайт занимает в памяти рисунок без учёта сжатия?
4. Рисунок размером 512 на 384 пикселей занимает в памяти 168 Кбайт (без учёта сжатия). Найдите максимально возможное количество цветов в палитре изображения.
5. Дан черно-белый растровый рисунок: Запишите шестнадцатеричный код, соответствующий этому рисунку.
6. Звук длительностью 2 минуты оцифрован с частотой 11000 Гц. Разрядность кодирования - 24 бита. Определите размер полученного файла в Мбайтах. Результат округлите до двух цифр после запятой. Логические основы компьютеров
1) Построить таблицу истинности для заданного логического выражения (можно сначала у Построить схему на логических элементах. Упрощать выражение не нужно.
Program Mazoff1;
uses crt;
var
a,b: array [1..5] of integer;//Массивы А и В
c:array [1..10] of integer;//Массив С
i,j:integer;//счетчики
begin
randomize;
j:=0;
for i:=1 to 5 do
begin
a[i]:=random(101)-50;//заполняем массивы
b[i]:=random(101)-50;//случайными числами от -50 до 50
end;
for i:=1 to 5 do
begin
write(a[i],' '):5;//выводим массивы А и В в столбик
writeln(b[i]):5;
end;
for i:=1 to 5 do
begin
if a[i]>0 then //проверяем текущий элелмент массива А
begin
j:=j+1; //если он положительный, увеличиваем счетчик на 1
c[j]:=a[i]; //и добавляем этот элемент в массив С
end;
if b[i] mod 2 <> 0 then //проверяем текущий элелмент массива В
begin
j:=j+1; //если он чётный, увеличиваем счетчик на 1
c[j]:=b[i]; //и добавляем этот элемент в массив С
end;
end;
writeln('Всего в массиве С ',j,' элементов: ');
for i:=1 to j do
writeln(c[i]);
end.
Program Mazoff2;
uses crt;
const n = 20;
var
mas:array [1..n] of real;//Массив данных
i,j:integer;//счетчики
ur,pl: real;//урожай и площадь
begin
randomize;
for i:=1 to n do
begin
mas[i]:=random(101);//заполняем массив
end;
j:=1;
ur:=0;
pl:=0;
while j<=n do
begin
ur:=ur+mas[j]*mas[j+1];
pl:=pl+mas[j+1];
j:=j+2;
end;
writeln('Всего собрано ',ur,' тонн с общей площади ',pl,' га.');
writeln('Средняя урожайность равна ',ur/pl:3:2);
end.
Кстати, программа Димана добавляет сначала все нужные элементы из массива А, а только потом - из массива В. А в условии задачи сказано: "попеременно"
1) добавь строку для вывода результата в отдельном окне:
uses crt;
2) Размерность массива лучше сразу задать с пмомщью констант - потом если нужно будет решить ту же задачу для другого массива, просто поменяешь её на новую:
const n=10;
const m=10;
3) описание массива через константы:
a:array[1..n,1..m] of integer;
4) после приглашения writeln ('vvedite chislo n') должен быть оператор readln. Но представь себе ситуацию: ты описал массив a:array[1..10,1..10], а пользователь ввёл n=12? Тогда обращение к a[12,1] выдаст ошибку. Поэтому лучше не просить вводить n и m вообще, а использовать const
5) пропущен оператор readln:
writeln ('vvedite elementu massiva',i,j);
если в условии задачи не сказано явно вводить с клавиатруы значения массива, лучше заполнять массив с вводить 100 чисел надоедает!)
randomize;
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(100);
6) перед тем , как просматривать весь массив в поисках мин и макс элементов, надо задать начальное значение min и max:
max:= a[1,1];
min:= a[1,1];
(дальше цикл поиска у тебя организован правильно)
7) writeln('max','min') - такая строка всегда печатает "maxmin"
Надо так:
writeln('max=',max,' min=',min);
8) для наглядности можно вывести массив перед тем, как выводить max и min. Можно использовать тот же цикл, что и для поиска:
write(a[i,j]:5); (здесь ":5" задаёт ширину вывода - на каждое число отводится 5 позиций)
9) скачай и установи себе PascalABC и запускай каждую написанную прогрмму - иначе не научишься.
В итоге получим:
Program zaza;
uses crt;
const n=10;
const m=10;
var
i,j,max,min:integer;
a:array[1..n,1..m] of integer;
begin
randomize;
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(100); {задаёт случайное число от 0 до 99}
max:= a[1,1];
min:= a[1,1];
for i:=1 to n do
begin
for j:=1 to m do
begin
if a[i,j] > max then
max:= a[i,j];
if a[i,j] < min then
min:=a[i,j];
write(a[i,j]:5);
end;
writeln(); {выводит пустую строку "для красоты"}
end;
writeln();
writeln('max=',max,' min=',min);
end.