Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
sedovlaskin80
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 2
1

В файле задана матрица. Заменить все элементы, расположенные выше и ниже главной диагонали на нули

02.06.2012, 23:29. Просмотров 727. Ответов 1
Метки нет (Все метки)

Задание: В файле m1.txt задана матрица размерности 3х3. Заменить все элементы
расположенные выше и ниже главной диагонали на нули и записать полученную
матрицу в файл m2.txt
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
procedure Matrix;
Uses Crt;
const Msize=3;
var
i,j {index elementa massiva}
:integer;
m1,m2: text;
m1name,m2name :string;
ArrMatrix : array [0..Msize,0..Msize] of integer;
begin
        clrscr;
        writeln('v faile m1.txt zadana matrica 3*3. zamenit vse elementy');
        writeln('raspolojennie vishe i nije glavnoy diagonali na nuli i zapisat poluchennuu');
        writeln('matricy v fail m2.txt.');
        ServiceLine;
 
    {formirovanie faila pri pomoshi datchika sluchainix chisel}
    randomize;{datchik slutchainix chisel}
        m1name := 'm1.txt';
        m2name := 'm2.txt';
        assign(m1, m1name);
        rewrite(m1);
    for i:=1 to Msize do
     begin
      for j:=1 to Msize do
       write (m1,random(maxint):6);
       writeln(m1);
     end;
        close(m1);
        Writeln('fail s imenem' +m1name+' sozdan' );
        Serviceline;
{fail sformirovali}
 
        clrscr;
        Reset(m1);
        assign(m2, m2name);
        rewrite(m2);
 
        i:=1;
    while (i <=Msize) AND (not eof(m1)) do
         begin                                  {chitaem v massiv}
           for j:=1 to Msize do                 {sdelaem cherez massiv}
         read(m1,ArrMatrix[i,j]);
           readln(m1);
           i:=i+1;
           end;
 
           for i:=1 to Msize do                       {obnuliaem vse diagonali krome glavnoy}
                for j:=1 to Msize do
             if i<>j then ArrMatrix[i,j]:=0;
 
 
 
            for i:=1 to Msize do
        begin                                 {pishem v fail m2.txt}
         for j:=1 to Msize do
          write (m2,ArrMatrix[i,j]:6);
         writeln(m2);
        end;
 
        close(m1);
        close(m2);
        Writeln('fail s imenem ' +m2name+' sozdan' );
        ServiceLine;
 
end;
P.S. у меня показывает в самом верху ошибку 36. А ещё что-то с ServiceLine; намудрил, тоже ошибка. Я новичок в паскале. помогите пожалуйста, заранее благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2012, 23:29
Ответы с готовыми решениями:

Заменить буквой все элементы матрицы, расположенные выше главной диагонали.
Напишите программу ПЛС. Заранее СПАСИБО!!! Дана символьная квадратная матрица...

Заменить нулями все элементы матрицы, расположенные на главной диагонали и выше
Дана действительная квадратная матрица порядка 10. Заменить нулями все ее...

Все элементы, расположенные выше главной диагонали матрицы, заменить на противоположные
ХЕЛП! в квадратной матрице 4го порядка все елементы расположенные выше...

Дана матрица. Заменить все элементы, расположенные на побочной диагонали и ниже её
Дана матрица размерностью 9x9. Заменить все элементы, расположенные на побочной...

Заменить нулями все элементы матрицы, расположенные на главной диагонали и выше нее
Дана действительная квадратная матрица порядка 12. Заменить нулями все ее...

1
Puporev
Модератор
55010 / 42306 / 29211
Регистрация: 18.05.2008
Сообщений: 99,967
03.06.2012, 10:06 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
program Matrix;
Uses Crt;
const Msize=3;
var i,j:integer; {index elementa massiva}
    m1,m2: text;
    m1name,m2name :string;
    ArrMatrix : array [1..Msize,1..Msize] of integer;
begin
clrscr;
writeln('v faile m1.txt zadana matrica 3*3. zamenit vse elementy');
writeln('raspolojennie vishe i nije glavnoy diagonali na nuli i zapisat poluchennuu');
writeln('matricy v fail m2.txt.');
{formirovanie faila pri pomoshi datchika sluchainix chisel}
randomize;{datchik slutchainix chisel}
m1name := 'm1.txt';
m2name := 'm2.txt';
assign(m1, m1name);
rewrite(m1);
for i:=1 to Msize do
  begin
   for j:=1 to Msize do
   write (m1,random(maxint):6);
   writeln(m1);
  end;
close(m1);
Writeln('fail s imenem' +m1name+' sozdan' );
{fail sformirovali}
clrscr;
Reset(m1);
assign(m2, m2name);
rewrite(m2);
for i:=1 to Msize do
 begin
   for j:=1 to Msize do
    begin
     read(m1,ArrMatrix[i,j]);
     if j<>i then ArrMatrix[i,j]:=0;
     write(m2,ArrMatrix[i,j]:6);
    end;
   writeln(m2);
 end;
close(m1);
close(m2);
Writeln('fail s imenem ' +m2name+' sozdan' );
readln
end.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2012, 10:06

Элементы выше главной диагонали заменить на ноль, а ниже главной диагонали – округлить
Всем привет. Очень давно не работал с Pascal'ем и ни как не могу понять, что...

Все нулевые элементы размещены выше главной диагонали на непарных лентах и ниже главной диагонали на парных
все нулевые элементы размещены выше главной диагонали на непарных лентах и ниже...

Заменить отрицательные элементы матрицы, расположенные выше главной диагонали, на 0
Заменить отрицательные элементы квадратной матрицы А(n,n), расположенные выше...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru