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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2011, 13:11   #1
Чумак Татьяна
Пользователь
 
Регистрация: 27.03.2011
Сообщений: 23
По умолчанию Написали программу.....

Написали программу, но я не знаю как она работает. Уважаемые программисты, обьесните как она работает. Пожалуйста!
Вот код программы:
Код:
Program lab7;
Const
  Mn_b:Set of Char = ['a'..'z'];
  Mn_b1:Set of Char = ['A'..'Z'];
Var
  St,Buf:String;
  i,j,dl:Byte;
  Nashla:Boolean;
begin
  Readln(St);
  Buf:='';
  Nashla:=False;
  For i:=1 to Length(St) do
  Begin
    If (St[i] <> ' ') and (i <= Length(St)) then Buf:=Buf+St[i];
    If (St[i] = ' ') or (i = Length(St)) then
    Begin
      If Buf<>'' then
      Begin
        dl:=Length(Buf);
        For j:=1 to Length(Buf) do
        If (Buf[j] in Mn_b) or (Buf[j] in Mn_b1) then
        Begin
          Nashla:=True;
          Break
        End;
        If Nashla then Delete(St,Pos(Buf,St),Dl);
        Buf:='';
        Nashla:=False
      End;
    End;
  End;
  Writeln(St);
  Readln
End.
Зарание большое спасибо!

Последний раз редактировалось AlDelta; 07.04.2011 в 13:14.
Чумак Татьяна вне форума Ответить с цитированием
Старый 07.04.2011, 13:29   #2
Nikita++
Пользователь
 
Регистрация: 19.10.2010
Сообщений: 80
По умолчанию

Вы знаете что она должна делать, но не знаете как? Или вообще ничего не знаете?
Nikita++ вне форума Ответить с цитированием
Старый 07.04.2011, 13:39   #3
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
Написали программу, но я не знаю как она работает.
Стыдно должно быть!У вас задание, как щас помню, удалить из строки слова, если в них есть латинские буквы. Читаем внимательно комментарии + откройте вы уже учебник по Паскалю
Код:
Const
  Mn_b:Set of Char = ['a'..'z'];
  Mn_b1:Set of Char = ['A'..'Z'];
Var
  St,Buf:String;//St - исходная стрка, buf - пременная для хранения отдельных слов
  i,j,dl:Byte;
  Nashla:Boolean;
begin
  Readln(St);//вводим строку
  Buf:='';  // Вспомогательная строку делаем пустой
  Nashla:=False; // изначально мы ничего не нашли
  For i:=1 to Length(St) do //пробегаем строку посимвольно
  Begin
    If (St[i] <> ' ') and (i <= Length(St)) then Buf:=Buf+St[i]; // Если очередной символ не пробел и не последний, то это часть одного слова
    If (St[i] = ' ') or (i = Length(St)) then // Нашли пробел или дошли до последнего символа - получившуюся строку считаем словом
    Begin
      If Buf<>'' then  // проверяем не пустая ли у нас строка
      Begin
        dl:=Length(Buf); // определяем длину получившегося слова
        For j:=1 to Length(Buf) do // посимвольно проверяем ето слово
        If (Buf[j] in Mn_b) or (Buf[j] in Mn_b1) then // Проверяем есть ли в слове латинские буквы
        Begin
          Nashla:=True; // Да, есть такие буквы
          Break   // Выходим из цикла. Дальше проверять не имеет смысла
        End;
        If Nashla then Delete(St,Pos(Buf,St),Dl); // Если были найдены буквы удаляем  слово из строки
        Buf:=''; // Очищаеам вспомогательную строку
        Nashla:=False // Готовим переменную к следующему слову
      End;
    End;
  End;
  Writeln(St); // Выводим результат
  Readln
End;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 07.04.2011, 13:40   #4
Чумак Татьяна
Пользователь
 
Регистрация: 27.03.2011
Сообщений: 23
По умолчанию

Я знаю, что она должна делать. Она должна удалять из текста все слова, которые имеют хотя бы одну латинскую букву. Но я не знаю,как она работает. Я стала в универе защищать ее, а у меня спросили, как она работает и какая у нее идея. Подскажите пожалуйста, чтобы я смогла ее защитить.

Ой простите, мне очень стыдно. Но у меня на носу модуль и я не знаю за что хвататься. Вот по-этому обратилась к вам, что бы вы хобя бы с чем-то помогли.
Спасибо за помощь!!

Последний раз редактировалось AlDelta; 07.04.2011 в 13:48.
Чумак Татьяна вне форума Ответить с цитированием
Старый 07.04.2011, 13:52   #5
Nikita++
Пользователь
 
Регистрация: 19.10.2010
Сообщений: 80
По умолчанию

Ну тут уже все написали...))

Только у меня она почему-то не совсем правильно работает
Nikita++ вне форума Ответить с цитированием
Старый 07.04.2011, 13:56   #6
Чумак Татьяна
Пользователь
 
Регистрация: 27.03.2011
Сообщений: 23
По умолчанию

а почему? У меня она работает, только почему-то не выдает результат. А у вас?
Чумак Татьяна вне форума Ответить с цитированием
Старый 07.04.2011, 14:02   #7
Nikita++
Пользователь
 
Регистрация: 19.10.2010
Сообщений: 80
По умолчанию

А вы пробовали вводить не латинские символы? Может просто пустую строку выдает.
Nikita++ вне форума Ответить с цитированием
Старый 07.04.2011, 14:09   #8
Чумак Татьяна
Пользователь
 
Регистрация: 27.03.2011
Сообщений: 23
По умолчанию

Я пробовала вводить латинское слово sabotage. Но она все
равно выдает пустую строку.
Я не знаю, что делать!
Чумак Татьяна вне форума Ответить с цитированием
Старый 07.04.2011, 14:13   #9
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Ну так sabotage это не латинское слово, а английское
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 07.04.2011, 14:30   #10
Чумак Татьяна
Пользователь
 
Регистрация: 27.03.2011
Сообщений: 23
По умолчанию

Ну может быть вы подскажете, какое слово латинское?
Чумак Татьяна вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программу на С ноунейм Помощь студентам 3 28.12.2010 20:24
Программу на СИ. ноунейм Помощь студентам 0 28.12.2010 13:32
Программу на СИ ноунейм Помощь студентам 4 27.12.2010 22:52
Написал программу, помогите натянуть Шейдеры или как нибудь модифицировать программу WMLite Паскаль, Turbo Pascal, PascalABC.NET 0 16.06.2009 13:57
напишите программу nyncuk Помощь студентам 3 19.06.2008 14:39