Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 07.05.2014, 11:04   #1 (permalink)
SunHab
Новичок
 
Регистрация: 28.04.2014
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Программа с символьными данными

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

Старый 07.05.2014, 11:04
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Так же вы можете найти интересующую вас информацию в аналогичных топиках

Программа на Си
ДК Панасоник, диск с данными
Помогите выбрать ноутбук с сильным звуком и хорошими техническими данными

Старый 07.05.2014, 11:30   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от SunHab Посмотреть сообщение
Добрый день! Нужна помощь в написании программы для 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.
Vladimir_S вне форума   Ответить с цитированием
Старый 07.05.2014, 11:56   #3 (permalink)
SunHab
Новичок
 
Регистрация: 28.04.2014
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Легко. Правда, это для НОРМАЛЬНОГО Паскаля, а не АВС, так что уж сами поправьте, если что.
Код:
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, 13:03   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

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

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.