x, y, z — массивы, p1, q1, r1 — целые. Операторы not, and, or имеют более высокий приоритет, чем =, нужно использовать скобки. В цикле неплохо контролировать выход за пределы массива, а после цикла проверять, не вызвано ли его завершение исчерпанием массива.
Pascal | ||
|
begin end для одного оператора внутри или пустой не нужны.
Добавлено через 5 минут
И судя по условию, алгоритм выбран неверный.
Добавлено через 19 минут
Можно попробовать искать x[p] в массивах y и z, сохраняя индексы между итерациями, что-то вроде:
Pascal | ||
|
Нет индексного свойства по умолчанию для типа 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
for i := char(33) to char(255) do
или
for i := chr(33) to chr(255) do
ответ дан 6 сен 2019 в 18:15