Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2017, 05:53   #1
Vantus
Новичок
Джуниор
 
Регистрация: 02.05.2017
Сообщений: 2
По умолчанию индекс находился вне границ массива

Вот поделка

Код:
uses crt;
var f:text; s:string; i,j,k:integer; 
begin 
assign (f,'C:\Users\admin\Desktop\прога.txt');
reset(f); 
readln(f,s);
s:=s+' '; 
j:=1;
k:=0; 
if s[1] = ' ' then while s[1] = ' ' do delete(s,1,1); 
while not eof(f) do
for i:=2 to length(s) do 
if (s[i] = ' ') then if (s[j]=s[i-1]) and not (s[j] = ' ') then begin
                                                           k:=k+1;
                                                           j:=i+1;
                                                           end 
                                                           else 
                                                           j:=i+1;
writeln('Количество слов = ',k); 
end.
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 02.05.2017 в 09:11.
Vantus вне форума Ответить с цитированием
Старый 02.05.2017, 09:33   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

подозреваю, что при удалении начальных пробелов строка может стать пустой, а идёт обращение к S[1]...

может быть, такой код устроит:
Код:
var s:string;
  i,count:integer;
begin
 s:='  Hello   my  world';
 i:=1;
 while (i<=length(s)) and (s[i]=' ') do Inc(i);
 if i<=Length(s)
    then  count:=1
    else  count:=0;
 Inc(i);
 while (i<=length(s)) do begin
   if (s[i-1]=' ') and (s[i]<>' ') then inc(count);
   inc(i);
 end;
 WriteLn('Количество слов: ', count);
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.05.2017, 19:21   #3
Vantus
Новичок
Джуниор
 
Регистрация: 02.05.2017
Сообщений: 2
По умолчанию

Задача была такой: дан файл, содержащий текст на русском языке.Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву.
Vantus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Индекс находился вне границ массива Pikovaya_dama C# (си шарп) 14 02.12.2014 17:13
Индекс находился вне границ массива Pikovaya_dama C# (си шарп) 2 28.11.2014 17:37
Индекс находился вне границ массива. Maks3 C# (си шарп) 3 23.11.2014 21:54
Индекс находился вне границ массива. banan4ik Помощь студентам 1 30.05.2013 02:25
[C#] Индекс находился вне границ массива JonMagon Помощь студентам 12 22.01.2012 23:06