• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Паскаль, задача с матрицей

  • Автор темы Автор темы Madara
  • Дата начала Дата начала

Madara

Новые
Регистрация
29 Ноя 2013
Сообщения
50
Реакции
0
Баллы
0
Паскаль, задача с матрицей

Здравствуйте.
Нужна маленькая помощь...

Задание:
Если среднее арифметическое матрицы А положительно, задать элементам С1, С2,...,С значения тех элементов матрицы А, которое больше среднего арифметического этой матрицы.

Вот я написал код:
PHP:
Program MatrToMass;
Const n=3;
Var
 j,i:integer;
 A:array[1..n] of array[1..n] of real;
 S,K:real;
 C:array[1..n*n] of real;
Begin
  S:=0;
  for i:=1 to n do
  for j:=1 to n do
    Begin 
     Write('A[',i,',',j,']=');
     Readln(A[i,j]);
     S:=S+A[i,j];
    end; 
  K:=S/sqr(N);
  if K>0 then
   Begin
    for i:=1 to n do
    for j:=1 to n do
      Begin
        if A[i,j]>k then C[i]:=A[i,j];
        end;
      Writeln('Среднее арифметическое матрицы А = ',K:0:1);  
      Write('Полученный массив C = ');
      for i:=1 to n*n do
       Begin
        if C[i]<>0  then
        Write(C[i],' ');
       end;   
   end;
END.

Если например ввести матрицу А:
|4 6 20|
|1 5 0|
|30 6 1|
То все вроде верно, выдаёт
Среднее арифметическое матрицы А = 8.1
Полученный массив C = 20 30

Но если например ввести матрицу А:
|25 24 25|
|25 25 25|
|25 25 25|
То по должно выдать С= 25 25 25 25 25 25 25 25 (8 раз)
Но выдаёт
Среднее арифметическое матрицы А = 24.9
Полученный массив C = 25 25 25 (3 раза)

На самом деле я не уверен что это верно, т.к. вывожу я не совсем массив, как сказано в задании...

Но если написать так:
PHP:
Program g_2_5_3_6;
Const n=3;
Var
 j,i:integer;
 A:array[1..n,1..n] of real;
 S,K:real;
 C:array[1..n*n] of real;
Begin
  S:=0;
  for i:=1 to n do
  for j:=1 to n do
    Begin
      Write('a[',i,',',j,']=');
      readln(A[i,j]);
      S:=S+A[i,j];
    end;
  K:=S/sqr(n);
  for i:=1 to n do
  for j:=1 to n do
     Begin
      if A[i,j]>K then C[i]:=A[i,j];
      write(C[i], ' ');
     end;
END.

То вообще не понятно чего выводит

Прошу вас помочь мне разобраться с этой проблемой.
 
Прошу вас помочь мне разобраться с этой проблемой.
Легко.
1. Вводим еще одну переменную формата Integer, напр. q.
2. Вместо
Код:
  for i:=1 to n do
   for j:=1 to n do
    begin
     if A[i,j]>K then C[i]:=A[i,j];
     write(C[i], ' ');
    end;
пишем
Код:
  q:=0;  
  for i:=1 to n do
   for j:=1 to n do
    if A[i,j]>K then 
     begin
      q:=q+1;
      C[q]:=A[i,j];
      write(C[q], ' ');
     end;
 
Назад
Сверху