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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2012, 17:31   #1
nikolairzn
Новичок
Джуниор
 
Регистрация: 13.10.2012
Сообщений: 1
По умолчанию Не могу найти ошибки!

В двумерном массиве A[N*N] проанализировать эллемент на главной диагонали.Если он >0 то найти среднее арифметическое этого столбца затем заменить это число на главной диагонали на это среднее арифметическое.Если <=0 то столбцы обнулить.
Паскаль изучаю недавно , но уже появилась необходимость решить задачу ,в общем то код написал но есть ошибки поправьте пожалуйста буду очень благодарен!


program dvummas;
uses crt;
const N=5;
var A:array [1..N,1..N] of real;
i,j:integer;
sr,sum:real;

BEGIN
clrscr;randomize;
for i:=1 to N do
for j:=1 to N do
A[i,j]:=random(10)-4;
readkey;
writeln;
for i:=1 to N do begin
for j:=1 to N do
write(A[i,j]:4);
writeln;
end;
readkey;
for i := 1 to N do
for j := 1 to N do
begin
if (i = j) then
if A[i, j] > 0 then
for j:=1 to N do begin
sum:=sum+A[i,j];
sr:=sum/N;
A[i,j]:=sr;
if A[i, j] <= 0 then
for j:=1 to n do
A[i,j]:=0;
end;
end;
for i:=1 to N do begin
for j:=1 to N do
write(A[i,j]:4);
end;
readkey;
END.
nikolairzn вне форума Ответить с цитированием
Старый 13.10.2012, 18:01   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
program dvummas;
uses crt;
const 
    N = 5;
var
    A: array [1..N, 1..N] of real;
    i, j: integer;
    sum: real;
 
BEGIN
    clrscr;
    randomize;
    for i := 1 to N do
        for j := 1 to N do
            A[i, j] := random(21)-10; //чила из [-10, 10]
    writeln('Source matrix');
    for i := 1 to N do
    begin
        for j := 1 to N do
            write(A[i, j]:4:2, ' ');
        writeln;
    end;
    for j := 1 to N do
        if A[j, j] > 0 then
        begin
            sum := 0;
            for i:=1 to N do
                sum := sum + A[i, j];
            A[j, j] := sum / N;
        end
        else
            for i := 1 to N do
                A[i, j] := 0;
    writeln('Edited matrix');
    for i := 1 to N do
    begin
        for j := 1 to N do
            write(A[i, j]:4:2, ' ');
        writeln;
    end;
    readln;
END.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 13.10.2012 в 18:04.
BDA на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу найти ошибки, тема классы в С++ нона Помощь студентам 1 16.11.2011 02:44
Не могу найти причину ошибки pastuhdima Помощь студентам 0 06.10.2011 00:24
не могу найти раздел ошибки в delphi. подскажите please V.OX Свободное общение 1 20.12.2009 23:22
Не могу найти две ошибки. Lunex.08 Общие вопросы C/C++ 10 22.10.2009 09:44
Не могу найти ошибки в задачах Кипятилка Помощь студентам 4 01.07.2009 17:58