Очень нужно решить 2 задачи в Delphi
1. В заданном массиве A1, A2, A3, ... , An произвести циклический сдвиг элементов на одну позицию вправо, т.е. преобразовать к виду А2, А3, ... , An, A1.
2. Задана матрица Am*n. Определить, есть ли в ней строки, все элементы которых равны нулю, за исключением последнего. Вывести на печать номера таких строк или информацию об отсутствии подобной строки.
Очень, ну просто очень надо, судьба зависит от этого!
Пожалуйста помогите
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
-
- Сообщения: 375
- Зарегистрирован: 31 авг 2007, 03:06
ну, если судьба...
1. насколько я вижу, сдвиг производится ВЛЕВО (раз A2 становится на место A1)
2)
только учтите, что вероятность такого совпадения небольшая
поэтому я сделал случайные числа 0 и 1 и матрицу с короткими строчками, чтобы повысить вероятность выпадения подобной строки.
В вашем случае, наверное. лучше матрицу заполнять не случайным образом, а вводить пользователю с клавиатуры....
1. насколько я вижу, сдвиг производится ВЛЕВО (раз A2 становится на место A1)
Код: Выделить всё
Tmp := A[1]; {запомнили первый элемент}
for i:= 1 to N-1 do
A[i]:=A[i+1];
A[N] := Tmp;
Код: Выделить всё
const
M = 10;
n = 4;
var
A : array[1..M,1..N] of integer;
FlagIsEmpty : boolean;
i,j : integer;
begin
{<заполнение матрицы A данными>}
Randomize;
for i:=1 to M do
for j:=1 to N do
A[i,j] := Random(2);
{вывести матрицу на экран}
for i:=1 to M do
begin
for j:=1 to N do
Write(A[i,j]:1,' ');
WriteLn;
end;
WriteLn('----------------------');
{собственно цикл проверки}
FlagIsEmpty := false;
for i:=1 to M do
begin
j:=1;
while (A[i,j]=0) and (j<N) do inc(j); {цикл пока все нулевые}
if (j=N) and (A[i,N]<>0) then begin
{нашли такую строчку - все нулевые, а последний в строке - НЕ НУЛЕВОЙ}
FlagIsEmpty := true;
WriteLn('Искомая строка: ',i:1)
end;
end;
if Not FlagIsEmpty then
Writeln('к сожалению, в матрице нет таких строк.');
end.
поэтому я сделал случайные числа 0 и 1 и матрицу с короткими строчками, чтобы повысить вероятность выпадения подобной строки.
В вашем случае, наверное. лучше матрицу заполнять не случайным образом, а вводить пользователю с клавиатуры....