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

> Прочтите прежде чем задавать вопрос!

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

 
 Ответить  Открыть новую тему 
> намекните на решение, нескольких задач
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

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


1)Нарастающий итог. Каждый элемент aij матрицы A(m,n) заменить суммой элементов подматрицы A'(i,j), расположенной в левом верхнем углу матрицы А.

вопросы : 1.как самому задавать числа матрицы
2. как задавать подматрицу...
3. как заменить элементы на сумму

2)Среди элементов массива Z(m) найти k (k<<m) наибольших. Поиск осуществить за один проход (просмотр) массива Z.

вопросы : 1. на самом деле я даже условие понять не могу sad.gif
2. как задавать поиск

3)Сессия. Результаты сессии, состоящей из трех экзаменов, для группы из n студентов представлены матрицей K(n,3). Оценка ставится по четырехбалльной системе; неявка обо-значается единицей. Подсчитать количество неявок, неудовлетворительных, удовлетвори-тельных, хороших и отличных оценок по каждому экзамену.

вопросы : 1. поиск и вывод его....

4) Задана матрица A(k,l). Найти вектор B(l), каждый элемент которого равен среднему арифметическому элементов соответствующего столбца матрицы А.

вопросы : 1. как присвоить элементам вектора среднее арифметич....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


GoTo FAQ: Матрицы

+ пользуйся поиском по форуму, задач на массивы решено уйма!


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

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


к 4й задаче .....че то я намудрил sad.gif еще и не пашет sad.gif

program  vektor;
const nmax=10;
     nmmax=10;
var
n,nm : integer;
vector : array[1..nmmax] of real;
matrix:array[1..nmax,1..nmmax] of real;
i,j:integer;
k:real;
begin
writeln('razmer matrici: ';
readln(n,nm);
if ((n>1) and (nm>1)) or (nm>nmmax) or (n>nmax) then
begin
writeln('vvod matrici';
for j:=1 to nm do
for i:=1 to n do
begin
write('matrix[',i,',',j,']:';
readln(matrix[i,j]);
end;
for j:=1 to nm do
begin
k:=0;
for i:=1 to n do
k:=k+matrix[i,j];
k:=k/n;
vektor[j]:=k;
end;
write('[';
for i:=1 to nm do write(vector[i]:5 :2,',';
writeln(vector[nm:5 :2,']';
end.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Ошибки были в синтаксисе везде...
поправил что смог ;) теперь хоть компилируется smile.gif

program  vektor;
const nmax=10;
nmmax=10;
var
n,nm : integer;
vector : array[1..nmmax] of real;
matrix:array[1..nmax,1..nmmax] of real;
i,j:integer;
k:real;
begin
writeln('razmer matrici : ');
readln(n,nm);

writeln('vvod matrici ');
for j:=1 to nm do
for i:=1 to n do
begin
write('matrix[',i,',',j,']: ');
readln(matrix[i,j]);
end;
for j:=1 to nm do
begin
k:=0;
for i:=1 to n do
k:=k+matrix[i,j];
k:=k/n;
vector[j]:=k;
end;

for i:=1 to n do
begin
writeln;
for j:=1 to nm do
write(matrix[i,j]:2 :1,' ');
end;

writeln;
for i:=1 to nm do writeln(vector[i]:5 :2);
readln;

end.



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

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


обьясните мне пожалуйста вторую задачу...я не то, чтобы не знаю как делать - я ее вообще не понял что там от меня хотят....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата(Ex1Le @ 25.05.05 23:01)
обьясните мне пожалуйста вторую задачу... я ее вообще не понял что там от меня хотят....

Что имеем по условию?
Цитата(Ex1Le @ 24.05.05 22:04)
2)Среди элементов массива Z(m) найти k (k<<m) наибольших. Поиск осуществить за один проход (просмотр) массива Z.

Значит, имеется массив (для простоты будем считать что из 10 элементов, хотя на самом деле их будет ГОРАЗДО больше)
Допустим, <1, 4, 8, 5, 2, 9, 4, 5, 7, 2>
в этом массиве тебе нужно найти K наибольших чисел: например при К=2, должен найти <9 и 8> это 2 самых больших числа в массиве. При К = 4: <9, 8, 7 и 5>
Но в задании указано что M гораздо больше K, то есть М может быть 1000 а К = 4, например. И этот поиск нужно осуществить за один проход по массиву...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

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


тогда решение пойдет так - берем число и сравниваем с другим..запоминаем большее и сравниваем его с третьим и т.д. и т.п....но тогда проходов получится столько, сколько наибольших чисел надо найти...а как за 1 проход сделать ?

Сообщение отредактировано: Ex1Le -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






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


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

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


Цитата(volvo @ 26.05.05 0:18)
В этом и заключается смысл задачи... Думай...


я думаю надо сделать сортировку по уменьшению...и тогда из получившегося массива взять n чисел слева.... ( если я правильно FAQ понял то это qsort, вот токо не понял как ей пользоваться.... )

Сообщение отредактировано: Ex1Le -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






:no: А я думаю, что и сортировкой нельзя пользоваться. Ибо даже если тебе и удастся отсортировать массив за 1 проход по нему (в чем я сильно сомневаюсь), то взятие K элементов слева будет уже вторым проходом...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

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


Цитата(volvo @ 26.05.05 0:27)
:no: А я думаю, что и сортировкой нельзя пользоваться. Ибо даже если тебе и удастся отсортировать массив за 1 проход по нему (в чем я сильно сомневаюсь), то взятие K элементов слева будет уже вторым проходом...

но этот проход-то будет уже по другому массиву... huh.gif или же я как всегда ничего не понимаю....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Ну, насколько я понял условие нужно все сделать в ОДНОМ массиве. Иначе в чем вообще смысл задачи?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

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


ткните пожалуйста меня носом где можно про это прочитать ( весь FAQ пролистал несколько раз...нашел токо как найти один наибольший....) да и поиск че-то результатов не дал sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






А такой задачи еще не было, так что придется тебе ее самому решать... :yes:
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

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


это последняя задача для автомата sad.gif нашел как сделать за несколько проходов...НО НАДО ЗА ОДИН !!!!!!. я даже понять не могу ...sad.gif

Знаешь, что? Если тебе нужен автомат - думай... Если не хочешь (или не можешь) придумать - иди, и сдавай экзамен как все. Автоматы просто так не ставятся...

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

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


я же не прошу взять и написать мне ее....просто обьяснить как это можно сделать за 1 проход..... но наверно я вас уже достал.... короче забейте.... я прекрасно понимаю что мои проблемы никого не волнуют


ВСЕМ СПАСИБО ЗА ПОМОЩЬ
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

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


ЕСТЬ !!!! понеял как решать...осталось самое малое sad.gif написать прогу.... идет короче так... есть массив...из него берем k чисел...затем мы следующее число, не в ходящее в к сравниваем с числами массива к и если оно больше какого-то числа то заменить...число которое заменили отбрасывается...и берется следующее число и опять сравнивается с массивом и так далее...... осталось написать sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Гость






Ну, так в чем проблема?
const
n = 10;
k = 2;
arr: array[1 .. n] of integer =
(1, 4, 8, 5, 2, 9, 4, 5, 7, 2);

var
maxs: array[1 .. k] of integer;
i: integer;

procedure check(x: integer);
var i, min_ix: integer;
begin
min_ix := 1;
for i := 2 to k do
if maxs[min_ix] > maxs[i] then min_ix := i;
if maxs[min_ix] < x then maxs[min_ix] := x;
end;

begin
for i := 1 to k do maxs[i] := arr[i];

for i := succ(k) to n do
check(arr[i]);

for i := 1 to k do
writeln(maxs[i]);
end.
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 16.05.2024 9:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name