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

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

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

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


Новичок
*

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

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


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


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

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

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


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


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Richard
сообщение 4.05.2007 11:10
Сообщение #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 
 К началу страницы 
+ Ответить 
samec
сообщение 4.05.2007 14:36
Сообщение #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 
 К началу страницы 
+ Ответить 
Richard
сообщение 4.05.2007 15:40
Сообщение #5


Новичок
*

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

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


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


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

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

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


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

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


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


Новичок
*

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

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


Остается проблема как вывести средние арифмктические и почему не выводится рандомом заданые 24 строчки, а выводится только 23 я уж и не говорю про 25
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Richard
сообщение 5.05.2007 12:40
Сообщение #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 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 5.05.2007 14:27
Сообщение #9


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

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

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


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

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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Richard
сообщение 5.05.2007 20:46
Сообщение #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 
 К началу страницы 
+ Ответить 
samec
сообщение 7.05.2007 6:12
Сообщение #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

 



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