IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Массивы
сообщение
Сообщение #1


Гость






Помогите решить такие две задачки:
Добавить к одному, сортированному по возрастающей, 3 элементному массиву(из целых чисел, значения которых от -999 до 9999), от одного элемента до 25(включит.) элементов следующим образом: результат каждого прибавления не должен быть убывающим;. Если из этого будет возможно сделать квадратную матрицу, то сделать и найти сумму элементов главной диагонали матрицы. Если нет, то надо вывести матрицу по 3 элемента в ряд.

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


Бывалый
***

Группа: Пользователи
Сообщений: 209

Репутация: -  0  +


В условии второй задачи: "убрать 2 элемента" имеется ввиду обнулить их значения........ ???


--------------------
Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
В условии второй задачи: "убрать 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.


Только я не знаю как поднять не обнулленый элементы вверх.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






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

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 23.08.2017 22:29
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"