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

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

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

> слова с метограммой составить цепочку пошаговым методом, понел но не совсем что делать
maksimla
сообщение 15.03.2009 10:10
Сообщение #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 и все если нет то берем первое и третье слово и смотрим совпадает или нет и так далее.
и как написать методом обратным методом (пошаговым методом)?





--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
maksimla
сообщение 20.03.2009 18:53
Сообщение #2


Знаток
****

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

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


Цитата(Lapp @ 20.03.2009 12:55) *

Ты все же говори, какая именно ошибка. У тебя там много ошибок, я не знаю, на какой ты застрял.

1. Мой совет: сначала сделай программу для латинских букв и отладь, а потом переходи на литовские, если нужно.

2. Почему ты используешь один параметр (i) для двух вложенных циклов? Это грубейшая ошибка.

3. Почему ты делаешь переменное количество букв в слове?? Я же говорил уже.. Да еще до ста букв! Что, бывают такие слова в литовском? blink.gif

4. Зачем тебе множество a? Сделай массив букв, примерно вот так:
const
a: array [1..NLetters] of char=
('A','А','B','C','И','D','E','Ж','Л','F','G','H','I','Б','Y','J','K','L','M','N','O','P','R','S','Р','T','U','Ш','Ы','V','Z','Ю');

5. Почему у тебя множество стоит в параметре random? Сделай примерно так:
  c:=a[random(NLetters)+1];

Еще раз: если спрашиваешь про ошибку - говори, пожалуйста, про какую..

1. а какая разница сперва латинские или литовские буквы
2. забыл наверное
3 одинаковое количиство букв в слове делаю. Самое большое слово кажется 40 букв в слове есть. Я исхожу из задачи что "Слово считается недлинее чем 100 символов" исходя из программы поэтому написал так .
4. незнаю смотрел что то все. а как вы сделали я хотел тоже както так то об этом забыл и не нашел в книжке .
5 а я сам не заметил что я много ошибок сделал да притом же и глупых ошибок не знаю что со мной случилось .

Вот написал как вы сказали но вы сейчас смеяться будете в файл не хочет выводить по словам все в одну строчку пишет
const
NLetters=32;
a: array [1..NLetters] of char=
('A','À','B','C','È','D','E','Æ','Ë','F','G','H','I','Á','Y','J','K','L','M','N','O','P','R','S','Ð','T','U','Ø','Û','V','Z','Þ');
var
n,i,x,j: integer;
t:text;
c:char;
begin
assign (t, 'duom.TXT');
rewrite (t);
randomize;
n:= random(100)+1;
x:= random(20)+1;
writeln(t,x);
for i:=1 to x do
begin
for j:=1 to n do
begin
c:= a[random(NLetters)+1];
write(t,c);
end;
writeln;
end;
close(t);
end.



--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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