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

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

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

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


Новичок
*

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

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


Прошу помощи в решение простой задачи. Раньше вообще не имел дел с матрицами и масивами.
Задача: Задана матрица S(25,8). Вывести исходные данные в первые 24 строки и первые 7 столбцов. Вычислить среднее арифметческое значение элементов каждой строки и записать его в 8-ой столбец, а также среднее среденее арифметическое каждого столбца и записать его в 25-ю строку.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Помощник капитана
****

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

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


Показывай код, который пробовал..


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Вот у меня есть та часть программы которая отвечает за вывод исходных данных в первые 24 строки и первые 7 столбцов.

program pr_5;
uses crt;
const n=25; m=8;
var s:array [1..n,1..m] of integer;
i,j,k:integer;
begin
clrscr;
randomize;
for i:=1 to 24 do
for j:=1 to 7 do
s[i,j]:=random (100);
for i:=1 to 24 do
begin
for j:=1 to 7 do
write (s[i,j]:5);
writeln;
end;


writeln;
readln;
end.



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


Бывалый
***

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

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


нужно сначала заполнить матрицу этими самыми средними арифметичискими, а потом уже и выводить.
Заполнить можно вот так:
 

for i:=1 to 24 do
begin
s[i,m]:=0;
for j:=1 to 7 do
s[i,m]:=s[i,m]+s[i,j];
s[i,m]:=s[i,m] div 7;
end;


for i:=1 to 7 do
begin
s[n,i]:=0;
for j:=1 to 24 do
s[n,i]:=s[n,i]+s[j,i];
s[n,i]:=s[n,i] div 24;
end;



вот только это не совсем среднее арифметическое будет получаться, в твоём примере я думаю нужно использовать матрицу вещественного типа, тогда всё будт ок. Если использовать матрицу вещественного типа, то нужно div заменить на /
вот и всё ;)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


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


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

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

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


Цитата
то при вещественном такие ужасные цифры получаются.

просто пользуйся форматным выводом.
например:
writeln(a:0:2) выведет а с двумя знаками после запятой.


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


Новичок
*

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

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


Остается проблема как вывести средние арифмктические и почему не выводится рандомом заданые 24 строчки, а выводится только 23 я уж и не говорю про 25
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

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

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


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

program pr_5;
uses crt;
const n=25; m=8;
var s:array [1..n,1..m] of integer;
i,j,k:integer;
begin
clrscr;
randomize;
for i:=1 to 24 do
for j:=1 to 7 do
s[i,j]:=random (100);
for i:=1 to 24 do
begin
for j:=1 to 7 do
write (s[i,j]:5);
writeln;
end;
for i:=1 to 24 do
begin
s[i,m]:=0;
for j:=1 to 7 do
s[i,m]:=s[i,m]+s[i,j];
write(s[i,m] div 7:5);
end;
for i:=1 to 7 do
begin
s[n,i]:=0;
for j:=1 to 24 do
s[n,i]:=s[n,i]+s[j,i];
write(s[n,i] div 24:5);
end;
writeln;
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


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

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

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


1. Сделал бы по-человечески:
1) Заполняешь ВСЮ матрицу (часть - случайными числами, часть рассчитываешь)
2) ВСЮ выводишь
а не кусками... сам же в своих write и writeln запутался. Столбец выводится не столбцом, а строчкой.

2. Возможно, строки просто не помещаются. Посмотри настройки окна...


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


Новичок
*

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

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


Вот новая версия программы

program proga1;

uses
crt;

var
i,k: integer;
sum: real;
mas: array[1..25,1..8] of real;

begin
clrscr;
sum := 0;
randomize;
for k := 1 to 7 do
begin
for i := 1 to 24 do
begin
mas[i,k] := random(10);
sum := sum + mas[i,k];
end;
mas[25,k] := sum/24;
sum := 0;
end;

sum := 0;

for i := 1 to 24 do
begin
for k := 1 to 7 do
begin
sum := sum + mas[i,k];
end;
mas[i,8] := sum/7;
sum := 0;
end;


for k := 1 to 8 do
begin
writeln;
for i := 1 to 25 do
write(mas[i,k]4.gif1);
end;

readln;

end.

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


Бывалый
***

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

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


вот это (в самом конце)

for k := 1 to 8 do
begin
writeln;
for i := 1 to 25 do
write(mas[i,k]
1);



меняешь на следующее:

for i := 1 to 25 do
begin
writeln;
for k := 1 to 8 do
write(mas[i,k]:5:2);
end;



и всё.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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