IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> И опять эта строка..
Merlin
сообщение 8.12.2005 14:11
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Задача : Составить программу для вычеркивания из слов текста всех букв, стоящих на нечетных местах после буквы "а".

Помогите разобраться с задачкой.

1. Под вычёркиванием понимется удаление ?
2. Не могу что то разобраться, как найти буквы, стоящие на нечётных местах ?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 8.12.2005 14:14
Сообщение #2


Гость






Цитата
1. Под вычёркиванием понимется удаление ?
Именно удаление...
Цитата
2. Не могу что то разобраться, как найти буквы, стоящие на нечётных местах ?

i := 1;
while i <= {длины СЛОВА} do begin
{ s[i] - будут буквы на НЕчетных местах }
inc(i, 2);
end;


Хотя по-моему задание немного некорректное... Смотри:
Цитата
perestanovki
какие буквы будешь удалять? n, v, i? Они же стоят на 1, 3, 5 месте после a... НО!!! В то же время с начала слова они как раз стоят на четных (8, 10, 12) позициях...
 К началу страницы 
+ Ответить 
Merlin
сообщение 8.12.2005 15:06
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Program;
Var
st:string;
i:integer;
begin
writeln('Введите строку');
readln('st);
while i<=length(st) do begin
if s[i]='a' then delete(st, ......


А дальше не знаю, я совсем уже запутался dry.gif


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 8.12.2005 15:49
Сообщение #4


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


тебе же volvo показал как надо сделать ...

1 вариант :

i := 2;
while(i<=length(s)) do begin
if s[pred(i)] = 'a' then
delete(s,i,1);
inc(i,2);
end;


2 вариантб чувствительный к сдвигу, то есть из строки

amama получится aaa, это наверное и нужно

i := 2;
while(i<=length(s)) do begin
if s[pred(i)] = 'a' then begin
delete(s,i,1);
dec(i);
end;
inc(i,2);
end;


Сообщение отредактировано: volvo - 5.11.2006 21:41


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Merlin
сообщение 8.12.2005 16:16
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


good.gif Спасибо за помощь


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Merlin
сообщение 19.12.2005 16:29
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Меня препод завалил, задание я не так понял...

При вводе строки : amnmnmn

Должно получиться : annn

Подскажите как это сделать ?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.12.2005 16:35
Сообщение #7


Гость






mad.gif А при вводе "ammnmnmn" что должно быть? Почему ты все время даешь САМЫЕ неподходящие примеры?
 К началу страницы 
+ Ответить 
klem4
сообщение 19.12.2005 16:37
Сообщение #8


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Merlin, Надо всего чуть-чуть подумать

i := 2;
while(i<=length(s)) do
if s[succ(i)] = 'n' then begin
delete(s,i,1);
inc(i);
end
else inc(i,2);



Volvo, я думаю тут надо удалять элементы, стоящие на четных позиция, после которых стоит буква 'n'

Сообщение отредактировано: volvo - 5.11.2006 21:42


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.12.2005 16:47
Сообщение #9


Гость






klem4,
Цитата
Надо всего чуть-чуть подумать
и к тебе тоже относится... Ты не удаляешь буквы ПОСЛЕ "а", ты удаляешь ПЕРЕД "n" ... Я для чего задал вопрос, как ты думаешь? Просто от скуки? Тогда перечитай задание в первом посте...
 К началу страницы 
+ Ответить 
Merlin
сообщение 19.12.2005 16:55
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Вот ещё пара примеров( я думаю так должно быть ) :

1).Ввод строки : amaanon
Вывод :aaao


2).Ввод строки : ammnmnmn
Вывод : ammm


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 19.12.2005 17:09
Сообщение #11


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Volvo, извини, ты прав yes2.gif

Merlin, ты можешь выложить задание а не тестовые примеры, как видишь мои догадки были не правилными, а заниматься дешифровкой твоих примеров и выискивать в них каки-либо закономерности желания нету ..


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Merlin
сообщение 19.12.2005 17:43
Сообщение #12


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Цитата
Merlin, ты можешь выложить задание


Задание ?

Задача : Составить программу для вычеркивания из слов текста всех букв, стоящих на нечетных местах после буквы "а".

to klem4:

Ты условие спрашивал или моё решение ?
Если решение, то я незнаю как сделать эту задачу, поэтому и обратился за помощью.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 19.12.2005 17:55
Сообщение #13


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Ну все ... теперь я точно понял что ты от нас хочешь

в строке ammnmnmn

удаляем выделенные символы ... получается amnnn


uses crt;
var
s : string;
i : byte;

begin
clrscr;
readln(s);

i := 1;

while (i<=length(s)) and (s[i] <> 'a') do inc(i);

inc(i);

if i<=length(s) then begin
if not(odd(i)) then inc(i);
while(i<=length(s)) do begin
delete(s,i,1);
inc(i);
end;
end;

writeln('s=',s);

readln;
end.


А задача звучала в таком случае у тебя некорректно, дожно быть так : После первого вхождения буквы A удалить все символы, стоящие на нечетных позициях Я прав ?!

Сообщение отредактировано: volvo - 5.11.2006 21:42


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Merlin
сообщение 19.12.2005 18:11
Сообщение #14


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


smile.gif Спасибо за задачу... теперь я смогу переделать под любое условие, если опять препод начнёт возникать...


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 26.04.2024 10:33
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"