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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2008, 22:24   #1
XaMeJleoH
 
Аватар для XaMeJleoH
 
Регистрация: 14.12.2008
Сообщений: 6
Вопрос Задача со строками (Pascal)

Нужна помощь с программой.
Дана вот такая задача:

Строка представляет собой фамилию, имя и отчество. Слова разделены одним или несколькими пробелами.Преобразовать исходную строку в три строки и удалить из слов все символы, отличные от русских букв.

Вот небольшой алгоритм, как нужно сделать:
http://school180.3dn.ru/scan0002.jpg

Пожалуйста помогите, очень нужно.

Последний раз редактировалось XaMeJleoH; 14.12.2008 в 22:39.
XaMeJleoH вне форума Ответить с цитированием
Старый 15.12.2008, 00:17   #2
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

как то так:
Код:
Const M=['А'..'Я', 'а'..'п','р'..'я'];
var mas:array[1..3] of string;
      stroka:string;
      i,t:integer;

begin
write('Введите строку: ');
readln(stroka);

for i:=1 to length(stroka) do
    if (stroka[i]<>' ') and ((stroka[i-1]=' ') or (i=1)) then
      begin
          while stroka[i]<>' '  do 
             begin
               slovo:=slovo+stroka[i];
               inc(i);
            end;
          inc(t);
          mas[t]:=slovo;
       end;


for i:=1 to 3 do
 begin 
  slovo:=mas[i];
    for t:=1 to length(slovo) do
      if not (slovo[t] in M) then
         begin
            delete(slovo,t,1);
            dec(t);
            mas[i]:=slovo;
        end;
  end;

end.
Викдон вне форума Ответить с цитированием
Старый 15.12.2008, 00:23   #3
XaMeJleoH
 
Аватар для XaMeJleoH
 
Регистрация: 14.12.2008
Сообщений: 6
По умолчанию

Выводит ошибку,после ввода строки.
Еще, вы забыли дописать, slovo:string;
XaMeJleoH вне форума Ответить с цитированием
Старый 15.12.2008, 00:52   #4
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

Код:
Const M=['А'..'Я', 'а'..'п','р'..'я'];
var mas:array[1..3] of string;
      stroka,slovo:string;
      i,t:integer;

begin
write('Введите строку: ');
readln(stroka);

 while i<=length(stroka) do
    begin
    inc(i);
    if (stroka[i]<>' ') and ((stroka[i-1]=' ') or (i=1)) then
      begin
       slovo:='';
            while (stroka[i]<>' ') do
             begin
                slovo:=slovo+stroka[i];
                 inc(i);
                  if i>length(stroka) then
                    begin
                     dec(i);
                     break;
                    end;
             end;
          inc(t);
          mas[t]:=slovo;

      end;
   end;

for i:=1 to 3 do
 begin
  slovo:=mas[i];
    for t:=1 to length(slovo) do
      if not (slovo[t] in M) then
         begin
            delete(slovo,t,1);
            dec(t);
            mas[i]:=slovo;
        end;
  end;

 for i:=1 to 3 do
  write(mas[i],' ');
readln;
end.
Викдон вне форума Ответить с цитированием
Старый 15.12.2008, 01:00   #5
XaMeJleoH
 
Аватар для XaMeJleoH
 
Регистрация: 14.12.2008
Сообщений: 6
По умолчанию

Выдаёт ошибку.После ввода строки, программа зависает,нажимаю Ctrl+ break , указывает то на 41,то на 39 строку.
XaMeJleoH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача в Visual C++ 6.0, работа со строками Serezhik Visual C++ 6 30.11.2008 20:31
Работа со строками. Задача Memfis_nya Общие вопросы C/C++ 4 16.11.2008 18:42
Задача со строками Panda Помощь студентам 8 02.07.2008 09:10
задача на работу с файлами и строками MiH@N Помощь студентам 8 24.06.2008 00:44
Задача со строками Klyan Общие вопросы C/C++ 6 21.09.2007 22:22