Задать вопрос
17 августа, 19:49

Паскаль. Ошибка: Индекс находился вне границ массива.

Выполняю задачу на счёт слов из двух букв.

Сама программа:

program ss;

var s:string;

var i, k:integer;

begin

k:=0;

readln (s) ;

s:=s+' ';

repeat i:=pos (' ', s) ;

if i>1

then if (s[i+1]' ') and (s[i+2]' ') and (s[i+3]=' ')

then k:=k+1;

delete (s, 1, i)

until s=' ';

writeln (k, 'slov') ;

readln;

end.

+1
Ответы (1)
  1. 17 августа, 21:11
    0
    Program ss;

    var

    s: string;

    i, k: integer;

    begin

    Readln (s) ;

    s : = s + ' '; k : = 0;

    repeat

    i : = pos (' ', s) ;

    if i = 3 then k : = k + 1;

    if i > 0 then delete (s, 1, i)

    until i = 0;

    Writeln (k, ' slov') ;

    Readln;

    end.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Паскаль. Ошибка: Индекс находился вне границ массива. Выполняю задачу на счёт слов из двух букв. Сама программа: program ss; var s:string; ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы
Похожие вопросы по информатике
Program mm; var o, oo, v, n, n1, q1, r1, y1:string; l, x, b, z, y, r, q:integer; begin v:='вычислить '; read (n) ; n1:=n; q:=pos (' + or - ', n) ; q1:=copy (n, 1, q-1) ; val (q1, x, r) ; Delete (n, 1, q) ; r:=pos (' - or + ', n) ;
Ответы (1)
Как сделать теперь без массива (паскале) ? var nm:array of integer; j, l:integer; begin nm: = new integer[3] (random (20), random (20), random (20)) ; writeln ('nm[0] = ', nm[0]) ; writeln ('nm[1] = ', nm[1]) ; writeln ('nm[2] = ', nm[2]) ;
Ответы (1)
Помогите! Когда я ввожу ответ на вопрос, оно не отвечает на него! Это Паскаль Program Programm; var n:string; a:integer; b:integer; c:integer; answer: integer; begin write ('Как вас зовут:') ; readln (n) ; writeln ('Привет, ', n,'!
Ответы (1)
Ошибка времени выполнения: Индекс находился вне границ массива Как исправить? Program A2; Var s:string; i:integer; Begin Readln (s) ; For i: = 1 to length (s) do If s[i]=',' then delete (s, i, 1) ; Writeln (s) ; End.
Ответы (1)
Выдаёт ошибку: операнды имеют неприводимые типы. Где я ошиблась? (Программа написана на языке Pascal ABC) Program Home; Uses CRT; Var a: integer; b: real; Begin WriteLn ('Введите еденицу измереня: килограмм, миллиграмм, грамм, тонна, центнер') ;
Ответы (1)