Вопрос № 183490: Уважаемые эксперты! Уважаемый lamed (Академик) помогите мне решить задачи как в предыдущей теме! Вот задачи: 1) Дан массив, состоящий из n натуральных чисел. Образовать новый массив, элементами которого будут элементы исходного, оканчив...
Вопрос № 183490:
Уважаемые эксперты! Уважаемый lamed (Академик) помогите мне решить задачи как в предыдущей теме! Вот задачи:
1) Дан массив, состоящий из n натуральных чисел. Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся на цифру k.
2) Для заданной квадратной матрицы найти такие k, что k-ая строка матрицы совпадает с k-тым столбцом.
Задание 1. 1. Постановка задачи. Дан массив, состоящий из n натуральных чисел. Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся на цифру k. Входные данные: натуральные числа n, k типа integer, одномерный массив натуральных чисел (типа integer) размера n. Выходные данные: массив натуральных чисел типа integer; количество заполненных элементов массива j. Ограничения: 0<=K<=9, N>0, 0<=j<=n;
a[i]>0, b[j]>0 (здесь i - индекс элемента массива, 0<i<=n);
2. Формализация. Число a[i] оканчивается на цифру k, значит, a[i] mod 10 =k (1) Вначале устанавливаем число занятых элементов массива b равным 0. При выполнении условия (1) увеличиваем значение счетчика j на единицу и заполняем j-й элемент массива b значением i-го элемента массива a.
3. Блок-схема
4.Программа
Код :
{ Дан массив, состоящий из n натуральных чисел.
Образовать новый массив, элементами которого будут элементы исходного,
оканчивающиеся на цифру k. }
{ Pascal-ABC, RFPRO, lamed, Kovrov-city, 02.06.2011 }
const
n = 10;
var
a, b: array[1..n] of integer;
i, j: integer;
k: integer; { На эту цифру заканчиваются элементы массива b }
begin
{ На эту цифру заканчиваются элементы b }
readln(k);
{ Ввод массива a }
for i:= 1 to n do
readln(a[i]);
{ Формирование массива b }
j:= 0; { Вначале нет элементов, заканчивающихся на k }
for i:= 1 to n do
if a[i] mod 10 = k then
begin
inc(j);
b[j]:=a[i];
end;
{ Печать массива b }
write('b>');
for i:= 1 to j do
write(b[i]:3);
writeln;
end.
Задание 2 1. Постановка задачи. Для заданной квадратной матрицы найти такие k, что k-ая строка матрицы совпадает с k-тым столбцом. Входные данные: натуральное числ n, типа integer, двумерный массив чисел (типа integer) размера n*n. Выходные данные: последовательность (возможно пустая) натуральных чисел k типа integer; Ограничения: N>0; 1<=k<=n, 1<=j<=n;
2. Формализация. В цикле по строкам проверяем соответствие k-строки
k-столбцу до тех пор, пока не обнаружим различные элементы или пока не закончится строка / стобец. Если расхождений не обнаружено, печатаем номер строки.
3. Блок-схема
4. Программа.
Код :
{ Для заданной квадратной матрицы найт
и такие k, что k-ая строка матрицы совпадает с k-тым столбцом. }
{ Pascal-ABC, RFPRO, lamed, Kovrov-city, 02.06.2011 }
const
n = 4;
var
a: array[1..n, 1..n] of integer;
k, j: integer;
eq: boolean;
begin
{ Ввод массива a }
for k:= 1 to n do
for j:= 1 to n do
readln(a[k,j]);
{ Печать массива }
for k:= 1 to n do
begin
for j:= 1 to n do
write(a[k,j]);
writeln;
end;
for k:= 1 to n do
begin
eq := true;
j:= 1;
while eq and (j<=n) do
begin
if (a[k,j]<>a[j,k]) then
eq := false;
inc(j);
end;
if eq then
write(k,';');
end;
writeln;
end.
Удачи!
Ответ отправил: lamed (Академик)
Ответ отправлен: 02.06.2011, 20:41
Номер ответа: 267545 Россия, Ковров Тел.: +79107793141
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 267545
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.