0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 22
1

В матрице минимальные элементы каждой строки заменить порядковым номером элемента в строке

13.06.2011, 13:34. Показов 989. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В модульной программе выдает ошибку 3,перед vivod
хотя я его и описала,не могу исправить,помогите:

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
uses crt,modull;
var a:matr;
m,n,k:byte;
begin
clrscr;
writeln('viberite deistvie:');
writeln('1-zamena summoi polozhitelnix elementov stroki');
writeln('2-min element znachzamenit poraydkovim nomerom etogo elementa');
writeln('3-tabulirovanie');
writeln('4-summa dlya deistv chisla');
writeln('5-vixod');
 
readln(k);
if(k<1)and(k>5)
then
writeln('viberete ot 1 do 5');
case k of
1:begin
  vvod(a,m,n);
  zamena(a,m,n);
  vivod(a,m,n);
  readkey;
  end;
2:begin
  vvod(a,m,n);
  poraydor(a,m,n);
  vivod(a,m,n);
  readkey;
  end;
3: tab;
4: writeln(sum(Y,10,X));
5: exit;
end;
readkey;
 
 
Вся полная программа
 
unit modull;
 interface
 uses crt;
 const nmax=10;
 type matr=array[1..nmax,1..nmax]of integer;
      mas=array[1..nmax]of integer;
 procedure vvod(var a:matr;m,n:byte);
 procedure vivod(var a:matr;m,n:byte);
 procedure zamena(var a:matr;m,n:byte);
 procedure tab;
 procedure poraydor(var a:matr;m,n:byte);
 function sum(Y:mas;K,I:integer;X,S,P,T:real):real;
 implementation
 
 procedure vvod(var a:matr;m,n:byte);
 Var i,j:byte;
 begin
 for i:=1 to m do
 for j:=1 to n do
 read(a[i,j]);
 end;
 
 procedure vivod(var a:matr;m,n:byte);
 Var i,j:byte;
 begin
 for i:=1 to m do
 for j:=1 to n do
 write(a[i,j]);
 end;
 
 procedure zamena(var a:matr;m,n:byte);
 
 var s,max,i,j,k:integer;
 b : ARRAY [1..nmax,1..nmax] OF INTEGER; 
    BEGIN
     WRITELN('k');
     READLN(k);
     s:=0;
     IF (i=k) AND (a[i,j]>0) THEN s:=s+a[i,j];
 
     max:=a[1,1];
       m:=1;
  FOR i:=2 TO m  DO
       BEGIN
  IF a[i,i]>max THEN  m:=i;
       END;
     WRITELN;
    FOR i:=1 TO m  DO
     FOR j:=1 TO n  DO 
    BEGIN
    WRITE(' a[',i,',',j,']=',a[i,j]:1);
   END;
   WRITELN;
     WRITELN(' b '); 
    FOR i:=1 TO m  DO
     FOR j:=1 TO n  DO 
    BEGIN
    IF (i=j) AND (i=m) THEN b[i,j]:=s
    ELSE  a[i,j]:=b[i,j];
 
  end;
  end;
 
   procedure poraydor(var a:matr;m,n:byte);
   Var
   i,j,k,l,min:INTEGER;
   BEGIN
  FOR i:=1 TO m  DO
  BEGIN
  min:=a[i,1]; k:=i; l:=1;
      FOR j:=2 TO n  DO
       BEGIN
  IF (a[i,j]<min) THEN  BEGIN
     min:=a[i,j]; l:=j;
                         END;
       END;
       a[k,l]:=l;
       END;
   READLN
  END;
 
 
 procedure tab;
 VAR
N: INTEGER;  
X,Y:REAL;
BEGIN
X:=0;   
 WHILE X<0 do
 if abs(x)<0.5 then
  BEGIN 
     Y:=0;
     FOR N:=1 TO 10 DO BEGIN
     Y:=Y+(EXP(N*LN(2*X+1))/(2*N+1));
                    END;
     Y:=Y*(X+3)/(SQR(X)+4); 
     WRITELN('Х=' ,X:1:1, '  Y= ',Y:1:3);
       X:=X+0.1;  
               END;
         WHILE (X<1.2)  DO  BEGIN 
     Y:=1;
     FOR N:=1 TO 8 DO BEGIN
     Y:=Y*(1+(SQR(X+1)/(N+1)));
                      END;
        Y:=Y*(X+1)/5; 
     WRITELN('Х=' ,X:1:1, ' Y= ',Y:1:3);
       X:=X+0.1;  
                           END;
  READLN
  end;
 
  function sum(Y:mas;K,I:integer;X,S,P,T:real):real;
BEGIN
    WRITELN('X');
     READLN(X);
     WRITELN('Y');
    FOR K:=1 TO 20  DO 
     WRITE('Y[',K,']=',Y[K]:1,';');
     T:=0;
     FOR K:=1 TO 20 DO BEGIN
     T:=T+Y[K];
                       END;
     P:=1;
     FOR I:=1 TO 10 DO BEGIN
     P:=P*(SIN(I*X));
                      END;
      S:=P*T;
      WRITELN;
      WRITELN('S= ',S:1:3);
  READLN
END;
  end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2011, 13:34
Ответы с готовыми решениями:

В матрице b в каждой строке максимальные и минимальные элементы заменить 0
В матрице b в каждой строке макс. и мин. элементы заменить 0.

В матрице Z[n,m], в каждой строке, нулевые элементы заменить на значение минимального элемента
Здравствуйте, уважаемые форумчане! Использовал поиск, пытался решить сам данную задачу. У меня не...

В каждой строке матрицы отрицательный элементы заменить номером строки
помогите написать программу на паскале. Дана действительная матрица а размера (n*m), n,m меньше...

Создать в матрице два дополнительных столбца.В первый из них поместить минимальные элементы, а во второй максимальные элементы каждой строки
Дан произвольный двумерный массив целых чисел. Создать в нем два дополнительных столбца.В первый...

11
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
13.06.2011, 13:46 2
Абсолютно не рабочее творение. Начать и кончить.
Давайте полное условие и ссылки на все темы где Вам писали куски этой программы.
0
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 22
13.06.2011, 14:28  [ТС] 3
1 Максимальный элемент главной диагонали матрицы А (nxn) заменить суммой положительных элементов строки с номером К (к ).
2 В матрице А (mxn) минимальные элементы каждой строки заменить порядковым номером этого элемента в строке.

остальные задачи вроде решены правильно
решение 1ой:
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
67
68
69
70
71
72
73
74
75
76
program zad1;
var
i,j,k,n,m:byte; 
a  : array [1..10,1..10] of integer; 
b  : array [1..10,1..10] of integer; 
s,max : integer;
    begin
     randomize;
     writeln('Введите n');
     readln(n);
     writeln('Введите к');
     readln(k);
     s:=0;
    for i:=1 to n  do
     for j:=1 to n do      begin
    a[i,j]:=round(30*random-15);{округление числа до целого}
      if (i=k) and (a[i,j]>0) then s:=s+a[i,j];
     end;
      max:=a[1,1];
       m:=1;
  for i:=2 to n  do
       begin
  if (a[i,i]>max) then     m:=i;
       end;
     writeln(' матрица А');
    for i:=1 to n  do
     for j:=1 to n  do begin
    write(' a[',i,',',j,']=',a[i,j]:1);
                          end;
   writeln; writeln(' новая матрица В '); 
    for i:=1 to n  do
     for j:=1 to n  do 
    begin
    if (i=j) and (i=m) then b[i,j]:=s
    else  b[i,j]:=a[i,j];
    write(' b[',i,',',j,']=',b[i,j]:1);
   end;
   readln
  end.
 
решение 2ой:
program zad2;
var i,j,k,n,m,l:byte; 
a  : array [1..10,1..10] of integer; 
min: integer;
    begin
     randomize;
     writeln('Введите m’);
     readln(m);
     writeln('Введите n');
     readln(n);
    writeln(' матрица А '); 
    for i:=1 to m  do
     for j:=1 to n do 
     begin
    a[i,j]:=round(30*random-15); 
    write(' a[',i,',',j,']=',a[i,j]:1);
     end;
  for i:=1 to m  do begin
  min:=a[i,1]; k:=i; l:=1;
      for j:=2 to n  do
       begin
  if (a[i,j]<min) then  begin
     min:=a[i,j]; l:=j;
                         end;
       end;
       a[k,l]:=l;
       end;
   writeln;
     writeln(' новая матрица  '); 
for i:=1 to m  do
    for j:=1 to n  do begin 
    write(' a[',i,',',j,']= ',a[i,j]:1);
                      end;
   readln
  end.
Добавлено через 29 минут
что с выводом то вот делать??
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
13.06.2011, 18:56 4
Lelia Frozen, ковычки подправте
0
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 22
13.06.2011, 19:12  [ТС] 5
где конкретней?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
13.06.2011, 19:15 6
Цитата Сообщение от Lelia Frozen Посмотреть сообщение
где конкретней?
неужели не видно?
9-ая и 11-ая строки

Добавлено через 47 секунд
и еще 48-ая
0
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 22
13.06.2011, 19:38  [ТС] 7
от этого она не заработает,волшебным образом!
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
13.06.2011, 19:39 8
Lelia Frozen, вы не поверить, от этого она даже не откомпилируется
0
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 22
13.06.2011, 22:29  [ТС] 9
проверила теперь вопрос встал об исправлении 26 ошибки,которая выскакивает в writeln(sum(Y,10,X));
осталось только ее исправить
в основной программе описание функции имеет сл вид:

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
function sum(Y:mas;K,I:integer;X,S,P,T:real):real;
 
необходимо ее исправить в проге:
 
uses crt,modul;
var a:matr;
Y:mas;
m,n,k:integer;
X:real;
 
begin
clrscr;
writeln('viberite deistvie:');
writeln('1-zamena summoi polozhitelnix elementov stroki');
writeln('2-min element znach zamenit poryadkovim nomerom etogo elementa');
writeln('3-tabulirovanie');
writeln('4-summa dlya deistv chisla');
writeln('5-vixod');
 
readln(k);
if (k<1)and(k>5) then
writeln('viberete ot 1 do 5');
case k of
1:begin
vvod(a,m,n);
zamena(a,m,n);
vivod(a,m,n);
readkey;
end;
2:begin
vvod(a,m,n);
poraydor(a,m,n);
vivod(a,m,n);
readkey;
end;
3:tab;
4:begin
writeln(sum(Y,10,X));
readkey;
end;
5:exit;
end;
readkey;
end.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
13.06.2011, 22:32 10
Lelia Frozen, весь код выложите
0
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 22
13.06.2011, 22:51  [ТС] 11
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function sum(Y:mas;K,I:integer;X,S,P,T:real):real;
BEGIN
 
    WRITELN('X');
     READLN(X);
 
     WRITELN('Y');
    FOR K:=1 TO 20  DO 
     WRITE('Y[',K,']=',Y[K]:1,';');
     T:=0;
     FOR K:=1 TO 20 DO BEGIN
     T:=T+Y[K];
                       END;
     P:=1;
     FOR I:=1 TO 10 DO BEGIN
     P:=P*(SIN(I*X));
                      END;
      S:=P*T;
      WRITELN;
      WRITELN('S= ',S:1:3);
  READLN
END;
  end.
в общем она работает прога эта
вот типы в главной чет не сходятся,помогиииииииииииите
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
13.06.2011, 23:00 12
Lelia Frozen, я вижу вы не поняли
либо весь код, либо никто вам не поможет
извините, но так считаю не только я
удачи
0
13.06.2011, 23:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2011, 23:00
Помогаю со студенческими работами здесь

В двумерной матрице найти минимальные элементы каждой строки и переставить на первое место
В двумерной матрице состоящей из N на M элементов, найти min элементы каждой строки и min...

В матрице размером m x n в каждой строке заменить элементы
В матрице размером m x n в каждой строке заменить элементы, большие 10 (по модулю), на 10,а меньшие...

В каждой строке заданной матрице N*M заменить все положительные элементы нулями
Помогите решить пожалуйста вот такую задачу. В каждой строке заданной матрице N*M заменить все...

В матрице размером M x N в каждой строке поменять местами максимальный и минимальный элементы строки.
Люди помогите плиз ...(((... очень надо.... В матрице размером M x N в каждой строке поменять...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru