Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/40: Рейтинг темы: голосов - 40, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 27.08.2016
Сообщений: 75
1

Ошибка: "Операция '>' не применима к типу array [1..4] of integer"

19.10.2016, 18:50. Показов 7516. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Выдает такую ошибку "Операция '>' не применима к типу array [1..4] of integer" помогите исправить.

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
Program massiv2;
const n_st=5;
const n_cl=4;
var
m:array[1..n_st,1..n_cl] of integer;
i,j,k,r:integer;
begin
writeln('Введите массив из ',n_st,' строк и ',n_cl,' столбцов');
for i:=1 to n_st do
begin
for j:=1 to n_cl do
read(m[i,j]);
readln;
end;
writeln('Матрица из ',n_st,' строк и ',n_cl,' столбцов');
for i:=1 to n_st do
begin
for j:=1 to n_cl do
write(' m[',i:2,',',j,']=',m[i,j]:2);
writeln;
end;
repeat
k:=0;
for i:=2 to n_st do
if m[i]>m[i+1] then
begin
r:=m[i];
m[i]:=m[i+1];
m[i+1]:=r;
k:=k+1;
end;
until k=0;
for i:=1 to n_st do
begin
for j:=1 to n_cl do
write(' m[',i:2,',',j,']=',m[i,j]:2);
end;
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.10.2016, 18:50
Ответы с готовыми решениями:

Операция 'and' не применима к типу KeyValuePair<real,integer>
Показывает ошибку &quot;Операция 'and' не применима к типу KeyValuePair&lt;real,integer&gt;&quot; VAR X, X1, Y1,...

Ошибка: Операция '<>' не применима к типам integer и boolean
Уважаемые форумнечане, подскажите как решить данную проблему, программа выдает ошибку &quot;pas1.pas(5)...

Ошибка "операция '<' не применима к типам boolean и integer"
операция '&lt;' не применима к типам boolean и integer program prim; var a,b,c:integer; begin...

Операция 'and' не применима к типу real
Это программа находит радиус вписанной окружности в треугольник. Перед этим хочется проверить...

8
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
19.10.2016, 19:01 2
Цитата Сообщение от DarkOfDragon Посмотреть сообщение
if m[i]>m[i+1] then
У тебя матрица, а не одномерный массив. Поэтому это выражение должно быть с двумя индексами. Что-то вроде
Pascal
1
if m[i,k]>m[i+1,k] then
1
0 / 0 / 0
Регистрация: 27.08.2016
Сообщений: 75
19.10.2016, 19:20  [ТС] 3
Я сделал как вы посоветовали, но теперь он выдает вот это
Ошибка: "Операция '>' не применима к типу array [1..4] of integer"
0
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
19.10.2016, 19:36 4
Цитата Сообщение от DarkOfDragon Посмотреть сообщение
Я сделал как вы посоветовали, но теперь он выдает вот это
ну так ты пишешь k:=0;
а потом пишешь m[что-то, k]
а в матрице у тебя нет нулевого столбца.
вот и выход индекса за пределы

и остальные индексы проверь, чтобы они были адекватные
0
0 / 0 / 0
Регистрация: 27.08.2016
Сообщений: 75
19.10.2016, 20:16  [ТС] 5
ни чего не получается

Добавлено через 1 минуту
уже по разному крутил
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7792 / 4616 / 2829
Регистрация: 22.11.2013
Сообщений: 13,112
Записей в блоге: 1
19.10.2016, 20:50 6
Цитата Сообщение от DarkOfDragon Посмотреть сообщение
ни чего не получается
Так что сделать-то нужно? Какое задание?
1
0 / 0 / 0
Регистрация: 27.08.2016
Сообщений: 75
19.10.2016, 20:53  [ТС] 7
нужно переставить строки в порядке убывания максимальных элементов строк
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7792 / 4616 / 2829
Регистрация: 22.11.2013
Сообщений: 13,112
Записей в блоге: 1
19.10.2016, 22:22 8
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

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
const m=5; n=5;
var
  a: array [1..m,1..n] of Integer;
  b: array [1..m] of Integer;
  i, j, p, q, t: Integer;
begin
  { ... }
  { ищем максимумы }
  for i:=1 to m do begin
    t:=a[i,1];
    for j:=2 to n do if t<a[i,j] then t:=a[i,j];
    b[i]:=t;
  end;
  { сортируем по максимумам }
  q:=m;
  repeat
    p:=q; q:=1;
    for i:=Low(a) to p-1 do
      if b[i]<b[i+1] then begin
        for j:=1 to n do begin
          t:=a[i,j]; a[i,j]:=a[i+1,j]; a[i+1,j]:=t;
        end;
        t:=b[i]; b[i]:=b[i+1]; b[i+1]:=t; q:=i;
      end;
  until q=1;
  { выводим }
  WriteLn('A''=');
  for i:=1 to m do begin
    for j:=1 to n do Write(a[i,j]:4); WriteLn;
  end;
end.
1
0 / 0 / 0
Регистрация: 27.08.2016
Сообщений: 75
21.10.2016, 21:39  [ТС] 9
Спасибо большое
0
21.10.2016, 21:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2016, 21:39
Помогаю со студенческими работами здесь

Операция '<=' не применима к типам boolean и integer
Подскажите, как исправить var r, m, l, C: integer; begin begin if (1&lt;=l&lt;=r&lt;=200000) and...

Операция '=' не применима к типам boolean и integer
Помогите с ошибкой &quot;Операция '=' не применима к типам boolean и integer&quot; ошибка к строке 16....

Операция '<' не применима к типам boolean и integer
ses crt; var a,b,z,x,y: real; function f(u,t: real):real; begin if u&gt;=0 then f:=u+2*t; if...

Операция '+' не применима к типам integer и string
Привет,помогите пожалуйста ,проблема в 46 строке Что изменить? Код паскаль: program orginizer;...

Операция '<' не применима к типам boolean и integer
Program Lab1; Var A,B,C: integer; Begin Writeln('Ввести A,B,C'); Readln(A,B,C); IF...

Операция '*' не применима к типам integer и set of $pascal_array1
program Project11; {$APPTYPE CONSOLE} Var a,b,S:real; Xi,x,f,t:array of real; N:integer;...


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

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