Нет индексного свойства по умолчанию для типа real паскаль как исправить

x, y, z — массивы, p1, q1, r1 — целые. Операторы not, and, or имеют более высокий приоритет, чем =, нужно использовать скобки. В цикле неплохо контролировать выход за пределы массива, а после цикла проверять, не вызвано ли его завершение исчерпанием массива.

Pascal
1
2
3
4
5
6
7
8
const
  N=10;
var
  x, y, z: array [1..N] of Integer;
  p1, q1, r1: Integer;
...
  while (p1<=N) and (q1<=N) and (r1<=N) and not ((x[p1]=y[q1]) and (y[q1]=z[r1])) do begin
...

begin end для одного оператора внутри или пустой не нужны.

Добавлено через 5 минут
И судя по условию, алгоритм выбран неверный.

Добавлено через 19 минут
Можно попробовать искать x[p] в массивах y и z, сохраняя индексы между итерациями, что-то вроде:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const
  N=10;
var
  p, q, r: Integer;
  x, y, z: array [1..n] of Integer;
begin
  { дописать ввод массивов }
  p:=0; q:=1; r:=1;
  while (q<=n) and (r<=n) and (x[p]<>y[q]) and (x[p]<>z[r]) do begin
    Inc(p); if p>n then Break;
    while (q<=n) and (x[p]>y[q]) do Inc(q);
    while (r<=n) and (x[p]>z[r]) do Inc(r);
  end;
  if (p<=n) and (q<=n) and (r<=n) then WriteLn(x[p])
  else WriteLn('Число не найдено');
end.

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

var
x,r1,q1,p1,y,i,z:real;
Begin
p1:=1; q1:=1; r1:=1; {инвариант: x[p1]..x[p], y[q1]..y[q], z[r1]..z[r]содержат общий элемент}
while not x[p1]=y[q1] and y[q1]=z[r1] do begin
if x[p1]<y[q1] then begin
p1:=p1+1;
end
else if y[q1]<z[r1] then 
begin
q1:=q1+1;
end 
else if z[r1]<x[p1] then 
begin
r1:=r1+1;
end 
else 
begin
end;
end; {x[p1] = y[q1] = z[r1]}
writeln (x[p1]);
end.

Вот условие:
Некоторое число содержится в
каждом из трех целочисленных неубывающих массивов x[1] <= … <=
x[p], y[1] <= … <= y[q], z[1] <= … <= z[r]. Найти одно из
таких чисел. Число действий должно быть порядка p + q + r.

а код программы можно глянуть?
Код сильно начинающего программиста.
1. Индексы для оператора for лучше объявить в процедуре
2. если а это массив, что было бы логичным, то объявить его нужно соответвенно
3. Похоже что b это тоже массив

b[j]:=random(101); ошибка здесь
нужно b:=random(101);
но боюсь твоя задача решается по — другому, по коду сложно понять что программа должна делать

Задачу в студию

Паскаль

выдает ошибку в процедуре : Нет индексного свойства по умолчанию для типа integer.

Помогите разобраться.

Procedure input (var n, m : integer ; var a : array of integer) ; var i, j : integer ;

begin clrscr ; write(‘input quantity of rows ‘) ; readln(n) ; write(‘input quantity of columns ‘) ; readln(m) ; for i : = 1 to n do begin for j : = 1 to m do begin write(‘ a[‘, i, ‘, ‘, j, ‘] = ‘) ; read (a[i][j]) ; writeln ; end ;

end ; end ;

Вы находитесь на странице вопроса Паскальвыдает ошибку в процедуре : Нет индексного свойства по умолчанию для типа integer? из категории Информатика.
Уровень сложности вопроса рассчитан на учащихся 10 — 11 классов. На странице
можно узнать правильный ответ, сверить его со своим вариантом и обсудить
возможные версии с другими пользователями сайта посредством обратной связи.
Если ответ вызывает сомнения или покажется вам неполным, для проверки
найдите ответы на аналогичные вопросы по теме в этой же категории, или создайте
новый вопрос, используя ключевые слова: введите вопрос в поисковую строку,
нажав кнопку в верхней части страницы.

Не могу понять в чём проблема(строка указана)

var
  i: char;
  j: integer;
  s: string;
  x: boolean;

begin
  writeln('Введите строку:');
  readln(s);
  for i := char[33] to char[255] do{Тут пишет:нет индексного свойства по умолчанию для типа char}
  begin
    x := false;
    for j := 1 to length(s) do
    begin
      if i = s[j] then
      begin
        if not x then 
          write(i, ' - ');
          write(s[j], ' ');
          flag:=true
      end;
      if x then writeln;
    end;
  end;
end.

задан 6 сен 2019 в 18:09

Влад's user avatar

for i := char(33) to char(255) do

или

for i := chr(33) to chr(255) do

ответ дан 6 сен 2019 в 18:15

Понравилась статья? Поделить с друзьями:
  • Сталкер тормозит как исправить
  • Вальхейм как найти серебро без дужки
  • Как найти покои короля новиков doom
  • Как найти фильм про девочек
  • Найти видео как снимают порно