Изменение кода |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Изменение кода |
ds2207 |
28.12.2014 19:21
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Дима Репутация: 0 |
Задачка: Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами – запятая или не менее одного пробела, за последним словом - точка.
Напечатать те слова последовательности, которые отличны от последнего слова, предварительно преобразовав каждое из них по следующему правилу: - оставить в слове только первые вхождения каждой буквы. Код: Код program q; var s: string; i: integer; m: set of char; function posl(x: string): string; begin while (pos(' ', x) > 0) do begin Delete(x, 1, pos(' ', x)); end; Delete(x, pos('.', x), 1); posl := x; end; begin readln(s); while pos(' ', s) > 0 do begin m := []; if (copy(s, 1, pos(' ', s) - 1) <> posl(s)) and (pos(' ', s) > 1) then for i := 1 to pos(' ', s) do begin if not (s[i] in m) then Write(s[i]); include(m, s[i]); end; Delete(s, 1, pos(' ', s)); end; end. Переделайте,пожалуйста код,чтобы в нём отсутствовали функции . Сообщение отредактировано: ds2207 - 28.12.2014 23:02 |
Федосеев Павел |
28.12.2014 22:15
Сообщение
#2
|
Бывалый Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: 8 |
Я так понимаю, что ты бросаешь сообщения "на удачу"="мне повезёт".
Раз не можешь переделать - значит код не твой. Тогда хотя бы разберись, как это работает и переделай. Когда будет видна твоя работа - можно будет помочь исправить ошибки. Или, если трудно, если это не твоё, то смени специальность или подумай, может в тебе другие наклонности - например, ты хороший повар, кафельщик, бетонщик, менеджер по продажам, врач. |
ds2207 |
28.12.2014 22:34
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Дима Репутация: 0 |
Я бросаю эти сообщения не "на удачу",а в надежде найти помощь,т.к. в этой сфере я совсем недавно и как работают функции не понимаю.Я понимаю отдельные участки кода,но полностью изменить этот код я не могу,кроме того у меня очень мало времени,поэтому я и обратился сюда за помощью.Что же касается "если трудно, если это не твоё" я вам скажу вот что:во-первых я не нуждаюсь в вашем,безусловно,глупом совете,а во-вторых "если трудно",то нужно идти до конца,а не сдаваться,как предлагаете вы.Всё начинается с малого.Далеко не у всех людей всё получается с самого начала.
|
Федосеев Павел |
28.12.2014 22:46
Сообщение
#4
|
Бывалый Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: 8 |
Ну вот и начни с малого.
Отформатируй текст исходников для облегчения понимания - я предлагаю форматтер исходного кода JCF - по этой и этой ссылкам. Очень удобно, да и преподавателю сдавать не стыдно (они обычно фыркают, если нет отступов). После этого "проявится" структура программы: program q; Теперь видно, хоть от чего ты хочешь избавиться. |
Федосеев Павел |
28.12.2014 23:34
Сообщение
#5
|
Бывалый Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: 8 |
Я не пойму условие задачи. Что нужно:
1. сначала нужно найти преобразованное последнее слово, запомнить его в переменной. Потом выделять слова, преобразовывать, сравнивать с последним и в случае неравенства выодить на печать. или 2. нужно выделять слова, сравнивать с последним, и если различны, то произвести преобразование и вывести на печать? |
ds2207 |
28.12.2014 23:40
Сообщение
#6
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Дима Репутация: 0 |
Второе: нужно вывести по одной(первой) букве каждого,различного с последним слова
|
Федосеев Павел |
28.12.2014 23:44
Сообщение
#7
|
Бывалый Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: 8 |
Тогда изменения будут заключатся в ведении новой переменной LastWord: string
Перед основным циклом найдёшь последнее слово LastWord и в цикле будешь сравнивать не с posl, а с LastWord. |
ds2207 |
28.12.2014 23:54
Сообщение
#8
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Дима Репутация: 0 |
Большое спасибо)
|
Федосеев Павел |
29.12.2014 0:07
Сообщение
#9
|
Бывалый Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: 8 |
Справился? Или это сарказм?
|
ds2207 |
1.01.2015 19:47
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Дима Репутация: 0 |
|
Текстовая версия | 27.09.2024 16:37 |