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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2014, 21:30   #1
faiter_on
Пользователь
 
Регистрация: 02.10.2014
Сообщений: 16
По умолчанию PascalABC

Помогите пожалуйста.

Задание. Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 прописных латинских букв; между соседними словами - запятая, за последним словом - точка. Напечатать те слова, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними - только большие.

Задав с клавиатуры последовательность символов, реализовать обработку ее.
Исходные данные задать самостоятельно, учитывая специфику конкретного варианта.
В программе должны быть предусмотрены процедуры ввода-вывода последовательности символов и ее обработки. Исходные данные должны вводиться с проверкой на область допустимых значений.
faiter_on вне форума Ответить с цитированием
Старый 19.10.2014, 21:52   #2
Donald Ervin Knuth
Пользователь
 
Аватар для Donald Ervin Knuth
 
Регистрация: 15.10.2014
Сообщений: 16
По умолчанию

Код:
program sortslov;
var
rt:string;
volp:integer;
{------------------- начало процедуры ввода----------------------}
procedure vvod;
var
ddate:string[255]; { Сюда будем грузить предложение с клавиатуры }
begin
writeln('Введите латинские слова (не более 5 букв в слове)');
writeln('между соседними словами - запятая, за последним словом - точка ');
writeln('Пример: hello,world.');
readln(ddate);writeln('Введено= ',ord(ddate[0]),' символов'); 
rt:=ddate;
volp:=ord(ddate[0])-1; { точку за борт }
end;
{--------------------начало процедуры обработки------------------}
procedure obrabotka (dd:string);
var
t,k:integer;
zap,sl:string; 
slova:array [1..30] of string; 
begin { разбиваем на слова }
sl:='';t:=1;zap:=',';
  for k:=1 to volp do
    begin 
      if (dd[k]<>zap) then sl:=sl+dd[k]
                        else 
                          begin
                            slova[t]:=sl;
                            sl:='';{ обнуляем накопитель}
                            t:=t+1;
                          end;
     end;
    {обработка слов теперь}
  for k:=2 to t-1 do
    begin
      if (slova[k-1]<slova[k])and(slova[k]<slova[k+1]) then
      writeln(slova[k])
      else
      writeln('Не соответствуют условию слово=',slova[k]);
    end;  
end;
begin
vvod;
obrabotka (rt);
end.
g25092011
Donald Ervin Knuth вне форума Ответить с цитированием
Старый 21.10.2014, 22:55   #3
faiter_on
Пользователь
 
Регистрация: 02.10.2014
Сообщений: 16
По умолчанию

Спасибо большое!
faiter_on вне форума Ответить с цитированием
Старый 07.12.2014, 19:46   #4
faiter_on
Пользователь
 
Регистрация: 02.10.2014
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Donald Ervin Knuth Посмотреть сообщение
Код:
program sortslov;
var
rt:string;
volp:integer;
{------------------- начало процедуры ввода----------------------}
procedure vvod;
var
ddate:string[255]; { Сюда будем грузить предложение с клавиатуры }
begin
writeln('Введите латинские слова (не более 5 букв в слове)');
writeln('между соседними словами - запятая, за последним словом - точка ');
writeln('Пример: hello,world.');
readln(ddate);writeln('Введено= ',ord(ddate[0]),' символов'); 
rt:=ddate;
volp:=ord(ddate[0])-1; { точку за борт }
end;
{--------------------начало процедуры обработки------------------}
procedure obrabotka (dd:string);
var
t,k:integer;
zap,sl:string; 
slova:array [1..30] of string; 
begin { разбиваем на слова }
sl:='';t:=1;zap:=',';
  for k:=1 to volp do
    begin 
      if (dd[k]<>zap) then sl:=sl+dd[k]
                        else 
                          begin
                            slova[t]:=sl;
                            sl:='';{ обнуляем накопитель}
                            t:=t+1;
                          end;
     end;
    {обработка слов теперь}
  for k:=2 to t-1 do
    begin
      if (slova[k-1]<slova[k])and(slova[k]<slova[k+1]) then
      writeln(slova[k])
      else
      writeln('Не соответствуют условию слово=',slova[k]);
    end;  
end;
begin
vvod;
obrabotka (rt);
end.
Помогите пожалуйста. В этой программе реализовать ввод из текстового файла и обработку символьных последовательностей, состоящих из любых символов.
faiter_on вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PascalABC stalker161reg Помощь студентам 0 25.12.2013 15:18
PascalABC Юся=) Помощь студентам 0 28.12.2011 00:42
PascalABC Юся=) Помощь студентам 8 23.12.2011 00:11
PascalABC ludan Помощь студентам 0 22.10.2011 22:50
3D в PascalABC Рудко Дмитрий Паскаль, Turbo Pascal, PascalABC.NET 6 09.02.2010 13:02