Помощь - Поиск - Пользователи - Календарь
Полная версия: Массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
olga
Помогите решить такие две задачки:
Добавить к одному, сортированному по возрастающей, 3 элементному массиву(из целых чисел, значения которых от -999 до 9999), от одного элемента до 25(включит.) элементов следующим образом: результат каждого прибавления не должен быть убывающим;. Если из этого будет возможно сделать квадратную матрицу, то сделать и найти сумму элементов главной диагонали матрицы. Если нет, то надо вывести матрицу по 3 элемента в ряд.

Ввести двумерный массив m*n(m=n+2; 2<=n<=40), значения элементов массива от 1 до 9. Найти суммы столбцов.
Потом, из каждой колонки убрать по 2 элемента(один элемент соответс. индексу колонки и предыдущий элемент. напр. из 3 колонки убрать 3 и 2 элемент).
Ivs
В условии второй задачи: "убрать 2 элемента" имеется ввиду обнулить их значения........ ???
olga
Цитата
В условии второй задачи: "убрать 2 элемента" имеется ввиду обнулить их значения........ ???

Да, обнулить. Я написала как это сделать:
Код
uses crt;
const a=42;
var
 mas:array [4..a+2,2..a] of byte;
 i,j,x:byte;
 s:word;
begin
 clrscr;
 randomize;
 write('Vvedite kolitsestvo elementov v massive. x= ');
 readln(x);
{Sozdanie massiva}
 writeln('Massiv:');
 for j:=1 to x+2 do
 begin
   for i:=1 to x do
   begin
     mas[j,i]:=random(9)+1;{min- 1; max- 9}
     write(mas[j,i]:2);
   end;
 writeln;
 end;
 readkey;
{Summa stolbzov}
 writeln('Summa:');
 for i:=1 to x do
 begin
   s:=0;
   for j:=1 to x+2 do
   s:=s+mas[j,i];
   writeln('Summa ',i,' stolbza:',s:3);
 end;
 readkey;
{Obnullenie massiva}
 writeln('Obnullenie elementov massiva:');
 for j:=1 to x+2 do
 begin
   if j<=x then mas[j,j]:=0;
   if j+1<=x then  mas[j,j+1]:=0;
 end;
 for j:=1 to x+2 do
 begin
   for i:=1 to x do write(mas[j,i]:2);
   writeln;
 end;  
repeat until keypressed;
end.


Только я не знаю как поднять не обнулленый элементы вверх.
Дядя Борланд
Если в условии написано убрать элемент значит его надо убрать.  Делается это просто,  сдвигаем значения элементов столбца на два элемента вверх. А в конце когда ты уже извратилась над всеми столбцами. Уменьшаем индекс который отвечает за строки на два т. е. не выводим две нижние строчки так как значения элементов у каждого столбца сдвинулись на два вверх. Идея проста осталось дело за малым реализовать ее на практике. Если что не будет получаться пиши с радостью отвечу. Извини а в чем собственно трудность 1-й задачи, вроде все просто. Может есть какие-то конкретные вопросы у тебя?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.