Вопрос по информатике:
Помогите с информатикой!!! Кто понимает?Нужно преобразовать массив.(написать программу на паскале)
Дан целочисленный двумерный массив.
1. Удалить те строки, в которых встречаются нулевые элементы.
2. Отсортировать элементы первого столбца по возрастанию.
3. В последним столбце прибавить число b ко всем элементам после k-го элемента (b и k ввести с клавиатуры).
Под удалением понимать исключение этого элемента путем смещения всех следующих за ним влево на 1 позицию и присвоение последнему элементу значения 0.
Для отладки программы числа матрицы сформировать с помощью генератора случайных чисел.
- 24.11.2017 00:40
- Информатика
- remove_red_eye 9144
- thumb_up 35
Ответы и объяснения 1
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк в матрице:');
var m:=ReadInteger('Количество столбцов в матрице:');
Writeln('*** Исходная матрица [',n,',',m,'] ***');
var a:=MatrRandom(n,m,-9,9);
a.Println(3); Writeln(3*a.ColCount*'-');
// 1. удалить строки с нулевыми элементами
var v:=a.Rows.Select(x->x.All(y->y0)).ToArray;
var q:=new integer[v.Where(r->r=true).Count,a.ColCount];
var k:=0;
for var i:=0 to v.Count-1 do
if v[i] then begin
q.SetRow(k,a.Row(i)); k+=1
end;
Writeln('Матрица, не содержащая строк с нулями');
a:=Copy(q);
a.Println(3);
// 2. отсортировать элементы первого столбца по возрастанию
a.SetCol(0,a.Col(0).OrderBy(x->x).ToArray);
Writeln('Матрица с отсортированной колонкой 1');
a.Println(3);
// 3. игры с k и b
var b:integer;
Write('Введите значения b и 1<=k<=',a.RowCount,': '); Read(b,k);
for var j:=k to a.RowCount-1 do a[j,m-1]+=b;
Writeln('Матрица с модифицированной последней колонкой');
a.Println(3)
end.
Пример
Количество строк в матрице: 5
Количество столбцов в матрице: 8
*** Исходная матрица [5,8] ***
-4 -8 4 -4 8 -6 5 -2
2 -7 -4 6 8 4 9 -8
0 -8 -4 -7 -4 -7 6 -3
6 -4 -8 9 -7 -5 -3 -2
-9 7 -1 -2 -9 9 7 4
------------------------
Матрица, не содержащая строк с нулями
-4 -8 4 -4 8 -6 5 -2
2 -7 -4 6 8 4 9 -8
6 -4 -8 9 -7 -5 -3 -2
-9 7 -1 -2 -9 9 7 4
Матрица с отсортированной колонкой 1
-9 -8 4 -4 8 -6 5 -2
-4 -7 -4 6 8 4 9 -8
2 -4 -8 9 -7 -5 -3 -2
6 7 -1 -2 -9 9 7 4
Введите значения b и 1<=k<=4: 5 2
Матрица с модифицированной последней колонкой
-9 -8 4 -4 8 -6 5 -2
-4 -7 -4 6 8 4 9 -8
2 -4 -8 9 -7 -5 -3 3
6 7 -1 -2 -9 9 7 9
Замечание: Под удалением без всяких условностей понимается именно удаление. Матрица после удаления просто содержит меньшее количество строк.
- 24.11.2017 06:22
- thumb_up 2
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.