Напишите программу со алгоритмами запрашивающую количество элементов линейного массива действительных чисел не более 50 затем сам массив затем выводящую на экран полученный массив и на следующей строке номер последнего из его отрицательных элементов
program arrays; type myArr = array of integer; var arr : myArr; neg : integer; i, n : integer;
begin write('Введите размер массива: '); readln(n); if n>50 then n:=50; setLength(arr, n); randomize; neg :=0; for i:=0 to n-1 do begin arr[i]:=random(200)-100; if arr[i]<0 then neg:=arr[i]; write(arr[i], ' '); end; writeln; writeln ('Последний отрицательный элемент массива: ', neg);
Метод перевода делением стандартный. Последовательно делим на основание системы счисления, в которую переводим, выписываем остатки. Потом остатки записываем в обратном порядке. Мы переводим числа в десятичную систему счисления из двоичной. В двоичной системе число десять записывается, как 1010 - на него и будем делить. В "столбик"
1. 101010 / 1010 = 100 и остаток 10 = 2₁₀ (показано во вложении) 100 / 1010 = 0 и остаток 100 = 4₁₀ Записываем остатки в обратном порядке: 42. 101010₂ = 42₁₀
2. 1010101101 / 1010 = 1000100 и остаток 101 = 5₁₀ 1000100 / 1010 = 110 и остаток 1000 = 8₁₀ 110 / 1010 = 0 и остаток 110 = 6₁₀ Записываем остатки в обратном порядке: 685. 1010101101₂ = 685₁₀
3. 10101111 / 1010 = 10001 и остаток 101 = 5₁₀ 10001 / 1010 = 1 и остаток 111 = 7₁₀ 1 / 1010 = 0 и остаток 1 Записываем остатки в обратном порядке: 175. 10101111₂ = 175₁₀
Задача 1. 1. Находим количество точек (пикселей) в кадре 640×480 = 307200 2. Находим размер палитры 250×1024×8/307200 = 6 бит (отбрасываем дробную часть после деления) 3. Количество цветов в палитре не может превышать 2⁶ = 64
Задача 2. 1. Находим объем исходной палитры 256 = 2⁸, поэтому объем составит 8 бит 2. Находим объем новой палитры 2=2¹, поэтому объем составит 1 бит. 3. Находим, во сколько раз уменьшится объем файла 8/1=8 - в восемь раз. 4. Если первоначальный объем был Х, то новый станет Х/8. Уменьшение объема составит X-X/8 = 7X/8 и это равно 7 Кбайт. Тогда 7Х=7*8 Кбайт, откуда Х=8 Кбайт
program arrays;
type
myArr = array of integer;
var
arr : myArr;
neg : integer;
i, n : integer;
begin
write('Введите размер массива: ');
readln(n);
if n>50 then n:=50;
setLength(arr, n);
randomize;
neg :=0;
for i:=0 to n-1 do begin
arr[i]:=random(200)-100;
if arr[i]<0 then neg:=arr[i];
write(arr[i], ' ');
end;
writeln;
writeln ('Последний отрицательный элемент массива: ', neg);
end.