слова с метограммой составить цепочку пошаговым методом, понел но не совсем что делать |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
слова с метограммой составить цепочку пошаговым методом, понел но не совсем что делать |
maksimla |
Сообщение
#1
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
5 задание.
Словом метаграмма называется слово, полученное изменить одну букву в слове. Из несколько слов можно сделать цепочку метаграмм, соединяющею два слова. Самая маленькая цепочка есть слово и его метаграмма. напишите программа которая определила два слова можно соединить метаграмной цепочкой. Первичные данные написаны в файле duom.txt . На первой строчке написан натуральное число n (2 ≤ n ≤ 20), на остальных n строчках по одному на писаному слову. Слово не больше 100 символов больших литовских букв. Результат записывается в файл rez.txt. Если два первичные файловых слова можно соединить цепочкой, то в единственный результат записывает слово MOZNO. В другом случае записываем NEMOZNO. первичные данные и результат первичные данные 4 RYTAS BATAS RATAS BADAS Результат MOZNO Объяснение RYTAS - RATAS - BATAS ДОПОЛНИТЕЛЬНО НАПИСАТЬ ГЕНЕРАТОР СЛОВ всего 20 слов вопрос в словах должна быть такая же самая длина слова чтобы было соединено например BATAS RATA ? а тут обязательно два первых слова соединить? я так думаю что сперва как-то так надо все слова в массив потом сравниваем слово. слово сравниваем по буквам и если в слове не совпадает одна буква то совпадает и это как-то true и все если нет то берем первое и третье слово и смотрим совпадает или нет и так далее. и как написать методом обратным методом (пошаговым методом)? -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
Lapp |
Сообщение
#2
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
вопрос в словах должна быть такая же самая длина слова чтобы было соединено например Судя по условию, допускается только замена букв, но не добавление/удаление. То есть все слова должны быть равной длины.BATAS RATA ? а тут обязательно два первых слова соединить? я так думаю что сперва как-то так надо все слова в массив потом сравниваем слово. слово сравниваем по буквам и если в слове не совпадает одна буква то совпадает и это как-то true и все если нет то берем первое и третье слово и смотрим совпадает или нет и так далее. и как написать методом обратным методом (пошаговым методом)? В принципе, ты все правильно думаешь. А написать можно прмерно так (с рекурсией): const Нужный вывод в файл сделай сам. Что неясно - спрашивай . Добавлено через 11 мин. ДОПОЛНИТЕЛЬНО НАПИСАТЬ ГЕНЕРАТОР СЛОВ Генератор слов сделать легко, но только если брать все латинские (извини, литовских не знаю) буквы полностью случайно, то, боюсь, на двадцати словах результат будет NEMOZNO с подавляющей вероятностью. Так что, если хочется иногда получать MOZNO, то нужно генерить не просто так.. всего 20 слов PS лучше сказать NEVOZMOZNO, слова "неможно" в русском нет . -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
maksimla |
Сообщение
#3
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
кажется тут более менее все понятно только это непонятно или я забыл что оно значит или делает
l:=Length(w[1]); -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
Lapp |
Сообщение
#4
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
кажется тут более менее все понятно только это непонятно или я забыл что оно значит или делает
Это как раз самое простое. Функция Length возвращает длину строки. Поскольку (как я уже говорил) все слова должны быть одинаковой длины, то достаточно узнать длину одного из них и сохранить, чтобы потом использовать.l:=Length(w[1]); Значит, с рекурсией все ясно? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
maksimla |
Сообщение
#5
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
да спасибо все понятно
-------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
maksimla |
Сообщение
#6
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
а я не ожидал что с генератором не справлюсь вот сделал простой генератор но чего то ошибка есть можете исправить пожалуйста
const -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
Lapp |
Сообщение
#7
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
но чего то ошибка есть Ты все же говори, какая именно ошибка. У тебя там много ошибок, я не знаю, на какой ты застрял.1. Мой совет: сначала сделай программу для латинских букв и отладь, а потом переходи на литовские, если нужно. 2. Почему ты используешь один параметр (i) для двух вложенных циклов? Это грубейшая ошибка. 3. Почему ты делаешь переменное количество букв в слове?? Я же говорил уже.. Да еще до ста букв! Что, бывают такие слова в литовском? 4. Зачем тебе множество a? Сделай массив букв, примерно вот так: const 5. Почему у тебя множество стоит в параметре random? Сделай примерно так: c:=a[random(NLetters)+1]; Еще раз: если спрашиваешь про ошибку - говори, пожалуйста, про какую.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
maksimla |
Сообщение
#8
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
Ты все же говори, какая именно ошибка. У тебя там много ошибок, я не знаю, на какой ты застрял. 1. Мой совет: сначала сделай программу для латинских букв и отладь, а потом переходи на литовские, если нужно. 2. Почему ты используешь один параметр (i) для двух вложенных циклов? Это грубейшая ошибка. 3. Почему ты делаешь переменное количество букв в слове?? Я же говорил уже.. Да еще до ста букв! Что, бывают такие слова в литовском? 4. Зачем тебе множество a? Сделай массив букв, примерно вот так: const 5. Почему у тебя множество стоит в параметре random? Сделай примерно так: c:=a[random(NLetters)+1]; Еще раз: если спрашиваешь про ошибку - говори, пожалуйста, про какую.. 1. а какая разница сперва латинские или литовские буквы 2. забыл наверное 3 одинаковое количиство букв в слове делаю. Самое большое слово кажется 40 букв в слове есть. Я исхожу из задачи что "Слово считается недлинее чем 100 символов" исходя из программы поэтому написал так . 4. незнаю смотрел что то все. а как вы сделали я хотел тоже както так то об этом забыл и не нашел в книжке . 5 а я сам не заметил что я много ошибок сделал да притом же и глупых ошибок не знаю что со мной случилось . Вот написал как вы сказали но вы сейчас смеяться будете в файл не хочет выводить по словам все в одну строчку пишет const -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
volvo |
Сообщение
#9
|
Гость |
Цитата в файл не хочет выводить по словам все в одну строчку пишет Правильно делает... Ты ж Writeln делаешь не в файл, а надо бы в файл: Writeln(t) |
maksimla |
Сообщение
#10
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
да уж спасибо сам даже засмеялся я что не увидел такого
всем спасибо можно тему закрывать Сообщение отредактировано: maksimla - -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
Текстовая версия | 23.12.2024 19:47 |