Задача обработки строк
Дана строка символов.Группы символов,разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя,будем называть словами.Подсчитать количество букв ,,a'' в последнем слове данной строки.
|
var A:array[1..100] of string;
s,s1:string; i,n:integer; begin Writeln('String :'); Readln(s); n:=1; i:=1; repeat s1:=''; While s[i]=' ' do Inc(i); if i>Length(s) then break; While s[i]<>' ' do begin s1:=s1+s[i]; Inc(i); end; A[n]:=s1; Inc(n); until i>Length(s); s1:=A[n-1]; n:=0; for i:=1 to Length(s1) do if s1[i]='a' then Inc(n); Writeln('Bukv -a- = ',n); Readln; end. |
Женя, а к чему такие сложности? Всё куда как проще:
Код:
Var |
Ошибка времени выполнения: Индекс находился вне границ массива.
С чем это может быть связано? |
Цитата:
|
Надо изменить строку:
While s[i]<>' ' do на While (s[i]<>' ') and (i<=Length(s)) do если совсем ничего не ввести, то выдаст ошибку |
В том коде,что скинул Евгений сюда While (s[i]<>'aad faad '
В том,что Владимир Until S[i]='aad faad ' Или я что-то решительно не понимаю? |
В моём замените строку
|
[pascal]
var A:array[1..100] of string; s,s1:string; i,n:integer; begin Writeln('String :'); Readln(s); n:=1; i:=1; repeat s1:='1'; While s[i]='raaah haet ' do Inc(i); if i>Length(s) then break; While (s[i]<>'raaah haet ') and (i<=Length(s)) do begin s1:=s1+s[i]; Inc(i); end; A[n]:=s1; Inc(n); until i>Length(s); s1:=A[n-1]; n:=0; for i:=1 to Length(s1) do if s1[i]='a' then Inc(n); Writeln('Bukv -a- = ',n); Readln; end. [/pascal] все та же ошибка,или я где-то номер строки не указал? |
Вложений: 1
var A:array[1..100] of string;
s,s1:string; i,n:integer; begin Writeln('String :'); Readln(s); n:=1; i:=1; repeat s1:=''; While s[i]=' ' do Inc(i); if i>Length(s) then break; While (s[i]<>' ') and (i<=Length(s)) do begin s1:=s1+s[i]; Inc(i); end; A[n]:=s1; Inc(n); until i>Length(s); s1:=A[n-1]; n:=0; for i:=1 to Length(s1) do if s1[i]='a' then Inc(n); Writeln('Bukv -a- = ',n); Readln; end. и больше ничего добавлять не надо. Откампилируйте и запустите полученный файл. В окне введёте свою строку и получите примерно это: |
Часовой пояс GMT +4, время: 15:28. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.