что-то типа этого:
const n = 8, m = 8;
var
A: array[1..n,1..m] of integer;
i, j, sum, product: integer;
isnotnull: boolean;
begin
randomize;
writeln('Случайная матрица:'); for i:=1 to n do begin
for j:=1 to m do begin
A[i,j] := random(51) - 25;
write(A[i,j]:5);
end;
writeln;
end; sum := 0;
for i:=1 to n do
if A[i,n-i+1] < 0 then
sum := sum + A[i,n-i+1];
writeln('Сумма отрицательных элементов побочной диагонали = ', sum); product := 1;
isnotnull := False;
for i:=1 to n-1 do
for j:=2 to n do
if (j > i) and (A[i,j] <> 0) then begin
isnotnull := True;
product := product * A[i,j];
end;
if isnotnull
writeln('Произведение ненулевых элементов в области выше главной диагонали = ', product)
else
writeln('Ненулевых элементов в области выше главной диагонали нет.', product); readln;
end.
Объяснение:
выписываешь все уникальные(?) символы, которые есть в предложении.
Аисх = {С, Т, О, И, П, Н, А, К, Е, Л, пробел, запятая};
считаешь их общее количество.
Mисх = 12;
смотрим формулу.
М = (это та же формула N = , просто буковки другие, да)
подставляем число 12 под М, но т.к. тут такая непонятная штука со степенью, то подставляем наименьшее целое i, удовлетворяющее следующему неравенству: M <
теперь подставим известное значение мощности исходного алфавита:
12 < , следовательно i = 4(бит). тройка быть не может, т.к. = 8, а 8 < 12.
теперь каждому символу самостоятельно присваиваешь уникальную кодовую комбинацию. удобнее всего это сделать в виде таблицы. например:
С Т О
0010 1111 0100 и т.д.
теперь пишешь в строчечку все эти комбинации.
001011110100........ не забудь про пробелы и запятые.
чтобы рассчитать объем полученного текстового файла, тебе нужно общее количество символов предложения (34) умножить на 4 бита. это и будем объемом полученного файла.
*если что, то в строчку нужно писать комбинации символов всего предложения, а не только этих 12.
надеюсь, все правильно и понятно.
Поделитесь своими знаниями, ответьте на вопрос:
Напишите программу, которая сортирует одномерный массив. дана матрица размерами 4 на 4. заполните ее следующим образом: если сумма индексов четная – в ячейке должно содержаться произведение индексов, если сумма индексов нечетная – в ячейке должна содержаться сумма индексов.
Const
N = 13;
Var
A:array[1..N] of integer;
i,j:integer;
Begin
For i:= 1 to N do
Begin
A[i]:=random(21)-10;
Write(A[i],' ');
End;
WriteLn;
For j:= 1 to N do
For i:= 1 to N-1 do
if A[i]<A[i+1] then Swap(A[i],A[i+1]);
For i:= 1 to N do
Write(A[i],' ');
End.
2)
Var
A:array[1..4,1..4] of integer;
i,j:integer;
Begin
For i:= 1 to 4 do
Begin
For j:= 1 to 4 do
Begin
if (i+j) mod 2 = 0 then A[i,j]:=i*j
else A[i,j]:=i+j;
Write(A[i,j],' ')
End;
WriteLn
End;
End.