Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2011, 09:58   #1
sanchoflat
Пользователь
 
Регистрация: 31.10.2011
Сообщений: 23
По умолчанию задача на матрицы

доброе утро, поступил в универ, в школе не было паскаля, а тут сразу задачи решать без объяснения
если не сложно помогите решить задачу:
Найти сумму элементов матрицы и подсчитать число её строк, в пределах каждой из которых элементы упорядочены по возрастанию: Аi1<Ai2<...<Ain
sanchoflat вне форума Ответить с цитированием
Старый 31.10.2011, 10:00   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

конкретно, вы что хотите? Объяснений или готовый код?
Вадим Мошев вне форума Ответить с цитированием
Старый 31.10.2011, 10:03   #3
sanchoflat
Пользователь
 
Регистрация: 31.10.2011
Сообщений: 23
По умолчанию

я не очень понимаю код, где сам процесс задания матрицы и операции вычисления

но код было бы совсем идеально
sanchoflat вне форума Ответить с цитированием
Старый 31.10.2011, 10:24   #4
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Сумму примерно вот так:
Код:
const
  m= 10;
  n= 20;
var
  a: array[1..m,1..n] of integer;
  i,j,s: integer;

begin
  {тут задаем матрицу}
  s:= 0;
  for i:=1 to m do for j:=1 to n do s:= s+a[i,j];
  writeln('sum = ', s);
end.
А для подсчета упорядоченых строк можно использовать, например, такой фрагмент кода:
Код:
  k:= 0;
  for i:=1 to m do begin
    j:=1;
    while (j<n) and (a[i,j]<a[i,j+1]) do inc(j);
    if j=n then inc(k)
  end;
Делай и говори, что получается, а что нет. Успехов тебе.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 31.10.2011, 10:29   #5
sanchoflat
Пользователь
 
Регистрация: 31.10.2011
Сообщений: 23
По умолчанию

ну вот сумму я уже нашел как находить, но пардон что не написал, вот препод сказал, нужно задавать матрицу через файл. как я понимаю в сам текстовый файл мы записываем матрицу..
и такое. можно ли упорядочить элементы в строке так, что элементу а присваиваем значение к, а элементу а+1 - значение а в том случае, если а>а+1?
sanchoflat вне форума Ответить с цитированием
Старый 31.10.2011, 10:43   #6
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от sanchoflat Посмотреть сообщение
ну вот сумму я уже нашел как находить, но пардон что не написал, вот препод сказал, нужно задавать матрицу через файл. как я понимаю в сам текстовый файл мы записываем матрицу..
Да. Если размеры матрицы неизвестны заранее, то можно их пустить перовй строкой, а потом уже содержимое.
Код:
3 4
1 2 3 4
5 6 7 8
9 10 11 12
Читать так:
Код:
var
  f: text;
...
  Assign(f,'my_file.txt');
  Reset(f);
  Readln(f,m,n);
  for i:=1 to m do begin
    for j:=1 to n do read(f,a[i,j]);
    readln(f)
  end;
Цитата:
и такое. можно ли упорядочить элементы в строке так, что элементу а присваиваем значение к, а элементу а+1 - значение а в том случае, если а>а+1?
Ты сам-то понял, что написал? Я - нет.. ((
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 31.10.2011, 13:40   #7
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Цитата:
и такое. можно ли упорядочить элементы в строке так, что элементу а присваиваем значение к, а элементу а+1 - значение а в том случае, если а>а+1?
походу он имел ввиду

Код:
for x:=кол-во элементов в строке -1 downto 1 do begin
if a[x]>a[x+1] then a[x+1]:=a;
a[x]:=k; 
end;
unbanned вне форума Ответить с цитированием
Старый 04.11.2011, 20:49   #8
sanchoflat
Пользователь
 
Регистрация: 31.10.2011
Сообщений: 23
По умолчанию

хм. а нету какого хорошего примера с оъеснением работы фалов с матрицей. я чет не оч понял

если не сложно, можете вот то что ввод матрицы из файла скомпоновать с другим где вывод и задание переменных, что то не очень выходит

Последний раз редактировалось sanchoflat; 04.11.2011 в 20:51.
sanchoflat вне форума Ответить с цитированием
Старый 04.11.2011, 23:40   #9
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Так, допустим, что на диске есть файл "matrix.txt" с таким содержимым
Код:
5
1 2 3 4 5
6 7 8 9 0
12 34 56 78 90
8 7 45 47 3
2 2 2 2 1000
В первой строке в нем идет размер матрицы, остальное - сама матрица по строкам. Читать так:
Код:
const
  m= 10;  // максимально возможный размер матрицы
var
  a: array[1..m,1..m] of integer;
  f: text;  // объявляем
...
  Assign(f,'my_file.txt');  // задаем название файла на диске
  Reset(f);  // открываем
  Readln(f,n);  // читаем n и переходим на след строку
  for i:=1 to n do begin
    for j:=1 to n do Read(f,a[i,j]);  // читаем строку матрицы
    Readln(f);  // переходим на след строку в файле
  end;
  Close(f);
Предпочитаю на "ты".

Последний раз редактировалось TinMan; 05.11.2011 в 12:31. Причина: добавил закрытие файла
TinMan вне форума Ответить с цитированием
Старый 05.11.2011, 11:59   #10
sanchoflat
Пользователь
 
Регистрация: 31.10.2011
Сообщений: 23
По умолчанию

спасибо, а после этого я начинаю писать алгоритм поиска суммы, и как все закончил искать, нашел - закрываю файл?
sanchoflat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на матрицы Гамбит Паскаль, Turbo Pascal, PascalABC.NET 20 19.10.2009 21:22
Задача на матрицы в C++ saleens7 Помощь студентам 4 29.12.2008 02:20
Задача на матрицы Witaliy Паскаль, Turbo Pascal, PascalABC.NET 15 09.11.2008 14:37
Задача на матрицы щдуп Паскаль, Turbo Pascal, PascalABC.NET 3 26.06.2008 08:52
Задача на матрицы Integral Паскаль, Turbo Pascal, PascalABC.NET 1 12.12.2007 13:32