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

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

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

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Двумерный Массив, Последние столбцы массива
forMator
сообщение 23.09.2006 18:20
Сообщение #1


Новичок
*

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

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


Не получается найти последние f столбцы и вычислить их среднее арифметическое. Размерность матрицы k на l.
Запутался в циклах!Последние f столбцы нашёл,а при вычислении среднего арифметического выдаётся неправильный ответ.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.09.2006 18:26
Сообщение #2


Гость






Цитата
при вычислении среднего арифметического выдаётся неправильный ответ.
Код в студию...
 К началу страницы 
+ Ответить 
forMator
сообщение 23.09.2006 19:01
Сообщение #3


Новичок
*

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

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


Код
Program primer;
const k=4;
const l=5;
Var M:array[1..k,1..l] of integer;
i,j,f,c:integer;
begin
for i:=1 to k do
for j:=1 to l do
begin
write('M[',i,',',',j,']=');
readln(M[i,j]);
end;
write('vvedi f poslednix ctolbcov=');
for i:=1 to k do
for c:=f to l do

а дальше загнался, хотя в голове заранее продумывал, вроде получалось....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.09.2006 19:19
Сообщение #4


Гость






Ты меня, конечно извини, но здесь НИКАКОГО ответа не выдается, ибо что ты дальше делаешь - известно только тебе... Думай дальше, если не хочешь показывать весь код... Телепаты в отпуске.
 К началу страницы 
+ Ответить 
forMator
сообщение 23.09.2006 19:24
Сообщение #5


Новичок
*

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

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


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


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

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

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


среднее арфиметическое последних f столбцов :

s := 0;
for i := 1 to RowCount do
for j := ColCount - f + 1 to ColCount do
s := s + x[i, j];
s := s / (RowCount * f);


RowCount - количество строк
ColCount - количество столбцов


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


Новичок
*

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

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


Код

Program primer;
Const k=3;l=3;
Var M:array[1..k,1..l] of integer;
i,j,s,f:integer;  sum:real;
begin
for i:=1 to k do
for j:=1 to l do
begin
write('M[',i,',',j,']=');
readln(M[i,j]);
end;
write('vvedi f=');read(f);
s:=0;
for i:=1 to k do
for j:=l-f+1 to l do
s:=M[i,j]+s;
sum:=s/(k*f);
readln;
writeln('crednee ariphmeticheckoe=',sum:3:2);
readln;
end.

Посидел помозговал, вот такое получилось..
Воспользовался советом, но не работает..
выдаёт не правильное среднее арифметическое..

Сообщение отредактировано: forMator - 24.09.2006 17:36
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 24.09.2006 22:54
Сообщение #8


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


правильно.
просто у тебя выводится на экран построчно. то есть последние 3 числа, которые ты видишь - это не последний столбец, а последняя строка.

вставь такой фрагмент:

Код
for i:=1 to k do
begin
  for j:=1 to l do
    write(m[i,j], ' ');
  writeln;
end;

и сам все увидишь smile.gif

Сообщение отредактировано: мисс_граффити - 24.09.2006 22:59


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
forMator
сообщение 29.09.2006 15:53
Сообщение #9


Новичок
*

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

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


Всем большое спасибо за помощь!!1
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
forMator
сообщение 1.10.2006 17:27
Сообщение #10


Новичок
*

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

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


А как сосчитать сумму первых p-элементов в двумерном массиве?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 1.10.2006 18:14
Сообщение #11


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

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

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


Это зависит от того как ты собираешься идти по матрице. Сверху вниз справа на лево, а может быть по спирали из центра ? Гадать никто не собирается.


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


Новичок
*

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

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


Сверху вниз слева направо! Пробовал сам не получается!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 3.10.2006 16:26
Сообщение #13


Гость






Цитата
Пробовал сам
Как пробовал, можно посмотреть?
 К началу страницы 
+ Ответить 
klem4
сообщение 3.10.2006 16:28
Сообщение #14


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

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

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


i := 1;
j := 1;
s := 0;

count := 0;

repeat

inc(count);

s := s + x[i, j];

if (j = m) then begin
inc(i);
j := 1;
end
else inc(j);

until (count = p) or (i > n);


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


Новичок
*

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

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


Конечно!
Код

Program Primer;
Const n=3;m=4;
Var X:array[1..n,1..m] of integer;
i,j,p,s:integer;
begin
s:=0;
writeln('vvod matrici');
for i:=1 to n do
begin
for j:=1 to m do read(X[i,j]);
readln;
end;
write('vvedi pervie p elementi=');
read(p);
for i:=1 to n do
for j:=1 to p do
s:=s+X[i,j];
writeln('summa pervix p elementov=',s);
readln;
end.


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


Новичок
*

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

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


А можно ещё вопрос??!!
Нужно поменять местами элементы к-го и р-го столбцов! Написал! А элементы программа меняет только в последней строке!
Код

Program ne;
Const n=3;l=4;
Var m:array[1..n,1..l] of integer;
i,j,k,p,c:integer;
begin
writeln('vvod matrici');
for i:=1 to n do
begin
for j:=1 to l do read(M[i,j]);
readln;
end;
write('vvedi k-i ctolbec=');
read(k);
write('vvedi p-i ctolbec=');
read(p);
c:=m[n,k];
m[n,k]:=m[n,p];
m[n,p]:=c;
for i:=1 to n do
begin
for j:=1 to l do
write(m[i,j],' ');
writeln;
readln;
end;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 3.10.2006 18:45
Сообщение #17


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


ты что-то с циклами и begin/end намудрил....

Код
c:=m[n,k];
m[n,k]:=m[n,p];
m[n,p]:=c;

это не внутри цикла. вот и выполняется один раз...

в первом у тебя неправильно пределы циклов расставлены.
она сумму не p элементов посчитает, а p*n элементов.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 3.10.2006 18:46
Сообщение #18


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

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

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


forMator, Смотри пост №14 я открыл ...


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


Новичок
*

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

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


Большое СПАСИБО!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
forMator
сообщение 9.10.2006 18:08
Сообщение #20


Новичок
*

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

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


Пытаюсь решить задачу!Опять же с двумерном массивом!!
Дана квадратная матрица разм. n на n. Вычислить сумму элементов тех столбцов первый элемент которых равен 1!
Нужен ли здесь одномерный массив для вывода этих сумм? Или же можно обойтись и без него!!
И как можно посчитать сумму столбцов где 1, описывая через string что ли??? Я делаю через string, а TP мне сразу выдаёт ошибку!! Подскажите пожалуйста как найти эту сумму!!!!!
Код

Program lo;
Const n=5;
Var a:array[1..n,1..n] of integer;
b:array[1..n] of integer;
i,s:integer;j:string;
begin
writeln('vvod matrici');
for i:=1 to n do
begin
for j:=1 to n read(a[i,j]);
readln;
end;
if j='1' then begin
for i:=1 to n do begin
s:=0;
for i:=1 to n do begin s:=s+a[i,j];
end;
b[j]:=s;
end;
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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