![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Kiass |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 7 Пол: Женский Реальное имя: Пелагея Репутация: ![]() ![]() ![]() |
Задав с клавиатуры последовательность символов, реализовать обработку ее, как указано в варианте. Исходные данные задать самостоятельно, учитывая специфику конкретного варианта.
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами - не менее одного пробела, за последним словом - точка. Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству: слово совпадает с конечным отрезком латинского алфавита (z, yz, xyz и т.д.). |
Lapp |
![]()
Сообщение
#2
|
|||
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Задав с клавиатуры последовательность символов, реализовать обработку ее, как указано в варианте. Исходные данные задать самостоятельно, учитывая специфику конкретного варианта. Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами - не менее одного пробела, за последним словом - точка. Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству: слово совпадает с конечным отрезком латинского алфавита (z, yz, xyz и т.д.). Kiass, ты забыл задать вопрос. С чем у тебя затруднения? показывай, что сделал, и говори, что не получается. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
Rian |
![]()
Сообщение
#3
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 396 Пол: Мужской Репутация: ![]() ![]() ![]() |
С чем у тебя затруднения? показывай, что сделал, и говори, что не получается. видимо не знает с чего начать) 60% решения
var
st,abc,sub,first:string;
i,x:integer;
begin
first:='';
abc:='abcdefghijklmnoprstvxyz';
st:=' xyz xvn dfghnv klmn rthrt xz xyz abc .';
for i:=1 to length(st) do
if (st[i]<>' ') and (st[i-1]=' ') then begin
for x:=i+1 to length(st) do
if st[x]=' ' then begin
sub:=copy(st,i,x-i);
...
-------------------- Objective-C, Unity3d
|
Kiass |
![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 7 Пол: Женский Реальное имя: Пелагея Репутация: ![]() ![]() ![]() |
Теперь вопрос состоит в последующих 40 % решения
![]() |
Rian |
![]()
Сообщение
#5
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 396 Пол: Мужской Репутация: ![]() ![]() ![]() |
Теперь вопрос состоит в последующих 40 % решения ![]() и какие действия должна делать эта часть? -------------------- Objective-C, Unity3d
|
IUnknown |
![]()
Сообщение
#6
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Ада: Разработчик Embarcadero Delphi: Сторонник Free Pascal: Разработчик Репутация: ![]() ![]() ![]() |
Что, не можешь определить, совпадает ли найденное слово с конечными символами алфавита?
if pos(sub, abc) = length(abc) - length(sub) + 1 then // является. Иначе - нет
При условии, что выделил слово в переменную subs правильно, разумеется. Добавлено через 15 мин. Кстати, Rian, в латинском алфавите еще и буквы Q, U и W присутствуют, ага. Их всего 26, а не 23 как у тебя... |
Rian |
![]()
Сообщение
#7
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 396 Пол: Мужской Репутация: ![]() ![]() ![]() |
sorry my bad english
![]() -------------------- Objective-C, Unity3d
|
Lapp |
![]()
Сообщение
#8
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
в латинском алфавите еще и буквы Q, U и W присутствуют, ага. Их всего 26, а не 23 как у тебя... Хотя, по условию задачи нужны только 8 последних.. но именно в них сидит львиная доля выпавших букавог ))-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Kiass |
![]()
Сообщение
#9
|
Группа: Пользователи Сообщений: 7 Пол: Женский Реальное имя: Пелагея Репутация: ![]() ![]() ![]() |
А можно было для тех кто в танке написать задачу от начала до конца, чтоб вбить ее в Делфи, нажать на F8 и бабац, она что то напишет, чтоб потом пойти к преподу и сдать эту оочень хорошую лабу. ммммм?
Так есть вариант что кто нибудь напишет полное решение задачи? Сообщение отредактировано: Kiass - |
Lapp |
![]()
Сообщение
#10
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
А можно было для тех кто в танке написать задачу от начала до конца А тем, кто в танке - им ничего не надо. Главное - маршировать в ногу.Этот форум не для тех, кто в танке. Он для тех, кто не хочет в танк. И кто готов сделать усилие вникнуть и пожертвовать своим драгоценным временем и постараться понять. Говори, что конкретно неясно. Добавлено через 5 мин. Упс, только сейчас заметил, что пол поменялся.. Так что танк тебе не грозит )). Но подход остается прежним - либо ты проявляешь желание чему-то научиться, либо ты вряд ли найдешь поддержку здесь. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Kiass |
![]()
Сообщение
#11
|
Группа: Пользователи Сообщений: 7 Пол: Женский Реальное имя: Пелагея Репутация: ![]() ![]() ![]() |
Спасибо, помогли. Дай бог вам здоровья.
|
Lapp |
![]()
Сообщение
#12
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Дай бог вам здоровья. А тебе - ума ). Заходи, если будут серьезные виды на обучение (а не на спихивание заданий). -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Rian |
![]()
Сообщение
#13
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 396 Пол: Мужской Репутация: ![]() ![]() ![]() |
и смысл идти учица на прогрмиста (ку) если небыло желания даже 2+2 научится складывать?
и буфером обмена пользоваться... берешь первую часть добавляешь то что volvo дал и энды проставляешь скок нуна... -------------------- Objective-C, Unity3d
|
Kiass |
![]()
Сообщение
#14
|
Группа: Пользователи Сообщений: 7 Пол: Женский Реальное имя: Пелагея Репутация: ![]() ![]() ![]() |
мне ума, а вам вежливости бы не помешало. На программиста никто и не собирался учиться. Без вас разберусь, высокомерные люди.
Добавлено через 2 мин. Вам лишь бы только всех пообсирать. |
Lapp |
![]()
Сообщение
#15
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
мне ума, а вам вежливости бы не помешало. На программиста никто и не собирался учиться. Без вас разберусь, высокомерные люди. Добавлено через 2 мин. Вам лишь бы только всех пообсирать. "мне не помогли, когда я просила все за меня написать - значит, всех обсираете,"- так что ли? ![]() Вежливости, говоришь? А ты сказала спасибо за ответы тебе? хоть одно? (сарказм в конце не считается) А ты сказала "пожалуйста", когда спрашивала? хоть раз? Kiass, дорогая, я с удовольствием тебе первый помогу научиться. Ну, хотя бы притворись, что тебя это интересует, в конце-то концов! Ну как можно приходить и говорить "мне это на фиг не нужно, вы мне напишите, я сдам и пойду"?.. Ну, сама посуди - оно нам надо? А потом еще все удивляются - почему это весь софт такой кривой и глючный? Да потому, что так вот "учатся".. Ты загляни в другие темы. Тут с великим удовольствием помогают тем, кто хочет научиться. Ну или просто решить и не возвращаться - но сам (с помощью)! От этого тоже есть польза. Тем, кто приходит и говорит "напишите мне", я лично прямым текстом говорю: желаю тебе не сдать. Попробуй хоть немного разобраться. Я понимаю, что ты не собираешься становиться программером. Но учиться, чтоб спихнуть - неправильно. Не нравится программирование - пойди в деканат и скажи, чтоб тебе заменили этот курс другим. Последний раз тебе говорю: захочешь написать программу сама (с нашей помощью) и получить удовольствие - приходи, мы обязательно поможем. Успехов тебе. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Kiass |
![]()
Сообщение
#16
|
Группа: Пользователи Сообщений: 7 Пол: Женский Реальное имя: Пелагея Репутация: ![]() ![]() ![]() |
Верно, прошу прощения. Только покидать Вас я еще не собираюсь
![]() Посмотрите "ПОЖАЛУЙСТА" ![]() Множество, как я поняла, должно содержать M:=['z','yz','xyz','wxyz','vwxyz','uvwxyz','tuvwxyz','stuvwxyz']; Только все равно "фигня" получается, т.е. не работает. program Project1;
{$APPTYPE CONSOLE}
var
M:Set Of char;
first, st, st2, st3:string;
i:integer;
begin
M:=['s'..'z'];
first:='';
writeln('vvedite stroku');
readln(st);
st:=' ';
for i:=1 to length(st) do
begin
if (st[i] <> ' ') then st2:=st2+st[i];
if st[i] = ' ' then
begin
if st2[i] in ['M'] then
begin
st3:=st3+st2;
st2:=' ';
end
else
begin
st2:='';
end;
if st2[i] in ['M'] then
st3:=st3+st2;
writeln('Slova: ',st3);
readln;
end;
end;
end.
|
Lapp |
![]()
Сообщение
#17
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Верно, прошу прощения. Только покидать Вас я еще не собираюсь Ну и хорошо ).![]() Цитата Множество, как я поняла, должно содержать То есть, это слова, составляющие строку ввода? Тогда их можно задать либо в файле, либо по-простому - строковой константой )). Потому что вводить каждый раз при отладке такой в высшей степени осмысленный текст - зафигачишься..M:=['z','yz','xyz','wxyz','vwxyz','uvwxyz','tuvwxyz','stuvwxyz']; Цитата Только все равно "фигня" получается, т.е. не работает. Ну, ессно.. Ты сразу после ввода стираешь входную строку (закладываешь в нее пробел). Ну, и не только это.. Ты довольно сильно отошла от того, что написал Rian. И вставила что-то про 'M' (что явно к делу не относится, следовательно - содрала кусок с чужой задачи)).Можно вернуться к варианту Rian'а. Это будет лучше еще и с той т.з., что я сейчас отвалюсь в постель (у меня обнаружилась t=101) и буду тихо себе грипповать.. Но у него там не все чисто.. Rian, с твоим кодом могут быть проблемы при длине строки не 32 символа.. Я бы все же работал с Pos. Типа так const
l= 8;
abc: string[l]= 'abcdefghijklmnopqrstuvwxyz';
s: string= 'z yz xyz wxyz vwxyz uvwxyz tuvwxyz stuvwxyz';
...
// подготовка строки
while (Length(s)>0) and (s[1]=' ') do Delete(s,1,1); // удаляем лидирующие пробелы
while (Length(s)>0) and (s[Length(s)]=' ') do Delete(s,1,1); // удаляем оконечные пробелы
while Pos(' ',s)>0 do Delete(s,Pos(' ',s),1); // удаляем лишние пробелы из середины
s:= s+' '; // добавляем пробел в конец для единообразия обработки
w1:= Copy(s,1,Pos(' ',s)-1); // копируем первое слово в w1
Delete(s,1,Pos(' ',s); // удаляем первое слово из строки
while Length(s)>0 do begin
w:= Copy(s,1,Pos(' ',s)-1); // копируем следующее слово в w
Delete(s,1,Pos(' ',s); // удаляем это слово из строки
if (w<>w1) and (Pos(w,abc)=Length(abc)-Length(w))+1) then // проверка условия вывода
writeln(w);
end;
....
Как-то так.. Очень извиняюсь за сумбурность. Rian, ты либо поправь свой код, либо используй мой кусок. Если что не так - звиняйте, мозги крутятся со скрипом, раз в 5 медленнее, даром что горячие... Все, я отвалился.. Kiass, ты спрашивай про все, что неясно. Добавлено через 3 мин. да, еще одно: если все слова по 8 символов, то 50 слов с пробелами это 450. Нужно использовать длинные строки. Kiass, ты правда используешь Delphi или это случайно попало (я имею в виду {$APPTYPE CONSOLE})? Ответь, пожалуйста, какой у тебя компилятор на самом деле. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Kiass |
![]()
Сообщение
#18
|
Группа: Пользователи Сообщений: 7 Пол: Женский Реальное имя: Пелагея Репутация: ![]() ![]() ![]() |
Мне нужно на делфи.
и 'z yz xyz wxyz vwxyz uvwxyz tuvwxyz stuvwxyz'; это не строка ввода. Строку по-идеи нужно задавать с клавиатуры, а на эти как бы слова должно оканчиваться вводимое слово, и если в слове есть последовательность из этих букв, то слово выводится на экран, если нет то нет. P.S. Сначала я задание не поняла, теперь я в нем запуталась. |
Rian |
![]()
Сообщение
#19
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 396 Пол: Мужской Репутация: ![]() ![]() ![]() |
Мне нужно на делфи. вроде все букафки, еще что-то?
procedure TForm1.Button1Click(Sender: TObject);
var
st,abc,sub,first:string;
i,x:integer;
begin
first:='';
abc:='abcdefghijklmnopqrstuvwxyz';
st:='xyz xvn dfghnv stuvwxyz klmn z rthrt xz yzxyz abc yz.';
st:=' '+st; // готовим строку для обработки
for i:=1 to length(st) do
if (st[i]<>' ') and (st[i-1]=' ') then begin
for x:=i+1 to length(st) do
if (st[x]=' ') or (st[x]='.') then begin
sub:=copy(st,i,x-i);
if first='' then first:=sub;
if (pos(sub, abc) = length(abc) - length(sub) + 1) //проверяем на конец абс
and (sub<>first) //не равно первому слову
then memo1.Lines.Add(sub); //выодим
break;
end
end;
end;
Цитата Можно вернуться к варианту Rian'а. Это будет лучше еще и с той т.з., что я сейчас отвалюсь в постель (у меня обнаружилась t=101) и буду тихо себе грипповать.. Но у него там не все чисто.. Rian, с твоим кодом могут быть проблемы при длине строки не 32 символа.. Я бы все же работал с Pos. Типа так отрезать кусок строки это можно, но не тяжеловат ли метод? а какие проблемы с длиной больше 32 символа? ЗЫ конечно только не "грипповать", а набираться сил!!!) -------------------- Objective-C, Unity3d
|
![]() ![]() |
![]() |
Текстовая версия | 21.04.2025 21:58 |