1089
Объяснение:
Заменим буквы на цифры следующим образом: А — 0, Г — 1, И — 2, Л — 3, М — 4, О — 5, Р — 6, Т — 7. Получаем список:
1. 0000
2. 0001
3. 0002
4. 0003
5. 0004
6. 0005
7. 0006
8. 0007
9. 0010
...
Для нахождения первого слова, которое начинается с букв ИГ, нужно найти номер ИГАА, то есть 2100. Используется восьмибуквенный алфавит, значит, нужно найти значение числа 21008 в десятичном виде. Им является число 108810, но поскольку номер в списке на единицу больше самого числа, то остаётся добавить к получившемуся числу единицу. Получаем 1089.
var i,j,n,k,k1,k2,k3: integer; bb: boolean;
a: array of integer;
begin
write('N = ');
readln(n);
if ((n mod 3 = 0) and (n<>0)) then begin
write('K1 = ');
readln(k1);
write('K2 = ');
readln(k2);
write('K3 = ');
readln(k3);
setlength(a,n);
for i:=0 to n-1 do begin
write('Заполним номер ',i+1,' -> ');
readln(a[i]);
end;
i:=0;
while (i<n) do
begin
a[i]:=k1-a[i];
a[i+1]:=k2-a[i+1];
a[i+2]:=k3-a[i+2];
inc(i,3);
end;
write('K = ');
readln(k);
for i:=0 to n-2 do
if (a[i]+a[i+1]>=k) then begin write('В комнатах ',i+1,' и ',i+2,' есть ',a[i]+a[i+1],' свободных мест'); bb:= true; end;
if (bb=false) then writeln(0);
end else writeln('Введите число кратное 3 и неравное 0');
readln;
end.
Делать в Паскале динамические массивы - это очень большой геморрой.
1. PROGRAM Even
var i, j, P: integer;
var array A[1..n, 1..m] of integer;
BEGIN
for i:=1 to n do
for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива
for i:=1 to n do // цикл по строкам
begin
P:=1; // произведение четных чисел
for j:=1 to m do // цикл по столбцам
begin
if (A[i, j] mod 2 = 0) then P:= P*A[i, j]; // умножаем очередное четное число
end;
A[i, m] := P; // вместо последнего числа записываем произведение четных
end;
for i:=1 to n do
for j:=1 to m do writeln (A[i, j]); // цикл вывода конечного массива
END.
2. PROGRAM MinMax
var i, j, Q, min, nmin, max, nmax: integer;
var array A[1..n, 1..m] of integer;
BEGIN
for i:=1 to n do
for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива
for i:=1 to n do // цикл по строкам
begin
min:=A[i, 1]; nmin:=1; max:=A[i, 1]; nmax:=1; // начальные значения
for j:=1 to m do // цикл по столбцам
begin
if (A[i, j] > max) then max:= A[i, j]; nmax = j;// устанавливаем максимум
if (A[i, j] < min) then min:= A[i, j]; nmin = j;// устанавливаем максимум
end;
Q:=A[i, nmin]; A[i, nmin]:=A[i, nmax]; A[i, nmax]:=Q; // меняем их местами
end;
for i:=1 to n do
for j:=1 to m do writeln (A[i, j]); // цикл вывода конечного массива
END.
3. PROGRAM Povorot
var i, j, k, Q: integer;
var array A[1..n, 1..m], B[1..m, 1..n] of integer;
BEGIN
for i:=1 to n do
for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива
for i=1 to m do // цикл по m строкам нового массива (их m, как столбцов в А)
begin
for j:=1 to n do // цикл по n столбцам нового массива (как строк в А)
B[i, j]:=A[j, n-i+1]; // формируем новый массив
end;
for i:=1 to m do
for j:=1 to n do writeln (B[i, j]); // цикл вывода конечного массива
END.