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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2012, 13:53   #1
mimit
Пользователь
 
Регистрация: 18.10.2012
Сообщений: 49
По умолчанию Символьные переменные

Две задачки
1)Дано предложение. Вставить «*» после всех букв «а» и «А».
Код:
var
  S:string;
  i:integer;

begin
  writeln('Введите предложение');
  readln(s);
  for i :=1 to length(s) do
    if (s[i]='а') or (s[i]='А')
      then
        insert('*',s,i+1);
  writeln(s);
  readln;
end.
2)Дано предложение. Удалить из него все русские буквы
Код:
var
  s: string;
  i:integer;

begin
  writeln('Введите предложение');
  readln(s);
  for i:=1 to length(s) do
    if (s[i]>='А') and (s[i]<='я')
      then
        delete(s,i,1);
  writeln(s);
  readln;
end.
я написал две задачки помогите проверить их.
mimit вне форума Ответить с цитированием
Старый 07.12.2012, 13:55   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

все таки лучше использовать while или обратный For для таких задач
и по 2 задаче в русских буквах есть промежуток - поэтому А..я не прокатит
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 07.12.2012, 14:06   #3
mimit
Пользователь
 
Регистрация: 18.10.2012
Сообщений: 49
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
все таки лучше использовать while или обратный For для таких задач
и по 2 задаче в русских буквах есть промежуток - поэтому А..я не прокатит
А как узнать какой промежуток от А до я
mimit вне форума Ответить с цитированием
Старый 07.12.2012, 15:25   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
А как узнать какой промежуток от А до я
тут надо знать, под какую платформу (операционку) вы запускаете свою программу на Паскале (какая кодовая таблица символов используется).
Вы под каким Паскалем проверяете свои программы?
Если под TurboPascal (операционнка MS DOS - принятая кодовая таблица OEM, она же 866),
тогда можно написать так:
Код:
  writeln('Введите предложение');
  readln(s);
  for i:=length(s) downto 1 do
    if (s[i]>='А') and (s[i]<='Я') 
    or  (s[i]>='а') and (s[i]<='п') 
    or  (s[i]>='р') and (s[i]<='я') 
    or  (s[i]='Ё') 
    or  (s[i]='ё') 
      then
        delete(s,i,1);
  writeln(s);
а можно написать универсальныу программу на Паскале, которая будет корректно работать на той платформе, на которой она скомпилирована (заботу о кодовой таблице мы оставляем на совести компилятора).
Код:
const RusLetter = 
'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяЁё';
var
  s: string;
  i:integer;
begin
  writeln('Введите предложение');
  readln(s);
  for i:=length(s) downto 1 do
    if Pos(s[i], RusLetter)>0 then delete(s,i,1);
  writeln(s);
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
символьные переменные [Te[M]ka] Паскаль, Turbo Pascal, PascalABC.NET 18 18.01.2011 20:51
Символьные переменные Chuvak ot dushi Паскаль, Turbo Pascal, PascalABC.NET 3 03.01.2011 16:04
Переменные экземпляра,класса, константы и переменные cop08 Общие вопросы .NET 3 20.12.2010 21:56
Символьные переменные. Строки. Паскаль Oda33 Помощь студентам 2 16.11.2010 21:09
Помогите пожалуйста на "Символьные переменные" apetr Паскаль, Turbo Pascal, PascalABC.NET 4 30.11.2008 07:41