Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Программа с символьными данными (http://www.tehnari.ru/f41/t96192/)

SunHab 07.05.2014 11:04

Программа с символьными данными
 
Добрый день! Нужна помощь в написании программы для Pascal ABC
задача звучит так:
Программа, отделяющая из введенной строки символов отдельные
слова (пробел - символ-разделитель) и выводящую их перечень.
Заранее спасибо!

Vladimir_S 07.05.2014 11:30

Цитата:

Сообщение от SunHab (Сообщение 1030383)
Добрый день! Нужна помощь в написании программы для Pascal ABC
задача звучит так:
Программа, отделяющая из введенной строки символов отдельные
слова (пробел - символ-разделитель) и выводящую их перечень.
Заранее спасибо!

Легко. Правда, это для НОРМАЛЬНОГО Паскаля, а не АВС, так что уж сами поправьте, если что.
Код:

Var
 S:string;
 i,N:integer;
 W:Array[1..128] of String;

Begin
 writeln('Enter the string: ');
 readln(S);
 N:=1;
 i:=0;
 Repeat
  Inc(i);
  W[N]:='';
  While (S[i]<>' ') and (i<=Length(S)) do
  begin
    W[N]:=W[N]+S[i];
    Inc(i);
  end;
  If S[i]=' ' then Inc(N);
 Until i>=Length(S);

 For i:=1 to N do Writeln(W[i]);
 Readln
End.


SunHab 07.05.2014 11:56

Цитата:

Сообщение от Vladimir_S (Сообщение 1030387)
Легко. Правда, это для НОРМАЛЬНОГО Паскаля, а не АВС, так что уж сами поправьте, если что.
Код:

Var
 S:string;
 i,N:integer;
 W:Array[1..128] of String;

Begin
 writeln('Enter the string: ');
 readln(S);
 N:=1;
 i:=0;
 Repeat
  Inc(i);
  W[N]:='';
  While (S[i]<>' ') and (i<=Length(S)) do
  begin
    W[N]:=W[N]+S[i];
    Inc(i);
  end;
  If S[i]=' ' then Inc(N);
 Until i>=Length(S);

 For i:=1 to N do Writeln(W[i]);
 Readln
End.


Выдает ошибку:"Ошибка времени выполнения: Индекс находился вне границ массива" Что делать?

Vladimir_S 07.05.2014 13:03

Цитата:

Сообщение от SunHab (Сообщение 1030393)
Выдает ошибку:"Ошибка времени выполнения: Индекс находился вне границ массива" Что делать?

Не знаю. У меня, естественно, работает исправно. Какую строку вводите?
И да, вроде этот идиотский АВС не любит открытых строк. Попробуйте поставить, например
S:String[200];
W:Array[1..10] of String[10];
Может быть, так сожрет?


Часовой пояс GMT +4, время: 02:28.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.