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

Нужно найти ошибку

12.11.2014, 12:13. Показов 1041. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Разработать алгоритм и составить программу, выполняющей ввод элементов массива А(4х4) вещественных чисел и вывод ее на экран в виде матрицы, определение максимального элемент массива. Программа должна поменять его местами с первым элементом, заменить диагональные элементы нулями и вывести измененную матрицу на экран.

Ниже скрин с ошибкой.
Вот сама задача:

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
uses crt;
const n=4;
var a:array[1..n,1..n] of real;
    i,j,imx,jmx:byte;
    x:real;
begin
clrscr;
randomize;
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=9*random;
    write(a[i,j]:5:2);
   end;
  writeln;
 end;
imx:=1;
jmx:=1;
for i:=1 to n do
for j:=1 to n do
if a[i,j]>a[imx,jmx] then
 begin
  imx:=i;
  jmx:=j;
 end;
writeln('Максимальный элемент a[',imx,',',jmx,']=',a[imx,jmx]:0:2);
x:=a[1,1];
a[1,1]:=a[imx,jmx];
a[imx,jmx]:=x;
writeln('Обмен максимального и первого элементов');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:5:2);
  writeln;
 end;
writeln('Замена диагональных элементов нулями');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    if j=i then a[i,j]:=0;
    write(a[i,j]:5:2);
   end;
  writeln;
 end;
readln
end.
Миниатюры
Нужно найти ошибку  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2014, 12:13
Ответы с готовыми решениями:

Нужно найти ошибку
Написал модуль для выявления правильности введенных данных, при его использовании результат...

Нужно найти ошибку
Компилятор ошибок не выдает, при запуске после ввода переменной Х в нужном диапазоне строка...

дана программа нужно найти и объяснить ошибку...
case x of 0...9:write ('введена цифра'); 10...99:('введено двухзначное число'); end.

Нужно найти ошибку
Вычислить F=A(3,4)*PT(4,5)*R(5,2),если y>6 если y=<6 F=P(4,5)*T(5,3)*Q(3,3); program z42;...

4
Почетный модератор
64303 / 47598 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
12.11.2014, 12:31 2
Лучший ответ Сообщение было отмечено Vitalik_MC как решение

Решение

Это какой-то глюк Вашего Паскаля.
Вот результат Работы программы без изменений в Паскаль АВС
Миниатюры
Нужно найти ошибку  
1
Почетный модератор
64303 / 47598 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
12.11.2014, 12:35 3
Лучший ответ Сообщение было отмечено Vitalik_MC как решение

Решение

Или в Турбо Паскале
Миниатюры
Нужно найти ошибку  
1
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 17
12.11.2014, 12:39  [ТС] 4
А что нужно изменить, чтобы самому ввести элементы массива?
0
Почетный модератор
64303 / 47598 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
12.11.2014, 12:54 5
Лучший ответ Сообщение было отмечено Vitalik_MC как решение

Решение

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
uses crt;
const n=4;
var a:array[1..n,1..n] of real;
    i,j,imx,jmx,k:byte;
    x:real;
    s:string;
begin
clrscr;
randomize;
writeln('Введите элементы массива, действительные числа');
k:=0;
for i:=1 to n do
for j:=1 to n do
 begin
  write('a[',i,',',j,']=');
  readln(a[i,j]);
  str(trunc(a[i,j]),s);{определим число знаков в целой части}
  if length(s)>k then k:=length(s){для вывода нормальных таблиц}
 end;
clrscr;
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:k+4:2);{целая часть +точка+2 знака дробной части+пробел }
  writeln;
 end;
imx:=1;
jmx:=1;
for i:=1 to n do
for j:=1 to n do
if a[i,j]>a[imx,jmx] then
 begin
  imx:=i;
  jmx:=j;
 end;
writeln('Максимальный элемент a[',imx,',',jmx,']=',a[imx,jmx]:0:2);
x:=a[1,1];
a[1,1]:=a[imx,jmx];
a[imx,jmx]:=x;
writeln('Обмен максимального и первого элементов');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:k+4:2);
  writeln;
 end;
writeln('Замена диагональных элементов нулями');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    if j=i then a[i,j]:=0;
    write(a[i,j]:k+4:2);
   end;
  writeln;
 end;
readln
end.
1
12.11.2014, 12:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2014, 12:54
Помогаю со студенческими работами здесь

Нужно найти ошибку
VAR N: INTEGER; X, Y: REAL; H, X0, XN: REAL; BEGIN WRITELN('ВВЕДИТЕ X0, XN '); READLN(X0,...

Нужно найти ошибку!
Помогите Пожайлуста Найти ошибку в программе Там когда запускаешь программу выдаёт ошибку Invalid...

Нужно найти ошибку в коде
program zada4a; uses crt; type stroenie=record tip, firma: string; cena, proc, vklad, nevip:...

программа нужно найти ошибку
помогите найти ошибку должно получится по сторонам матрицы верхняя строка убывающая начиная с 1 а...


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

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

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