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

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

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

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


Новичок
*

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

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


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


Гость






Цитата
при вычислении среднего арифметического выдаётся неправильный ответ.
Код в студию...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






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


Новичок
*

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

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


Ну хорошо,сможешь хотябы подсказать как найти среднее арифметическое последних столбцов в двумерном массиве..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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

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


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


Новичок
*

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

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


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


Новичок
*

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

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


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


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

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

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


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


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


Новичок
*

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

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


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


Гость






Цитата
Пробовал сам
Как пробовал, можно посмотреть?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


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

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

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


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

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

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

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


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


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

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

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


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


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


Новичок
*

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

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


Большое СПАСИБО!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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

 




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