Сложно.Трудно.Помогите., Множества и записи... |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Сложно.Трудно.Помогите., Множества и записи... |
Archie |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Руслан Репутация: 0 |
13.22 type слово=packed array[1..9] of char;
номер телефона=100000...999999; знакомый=record фамилия:слово; номер:номертелефона; end; страница=array[1..20] of знакомый; запясная книжка=array['A'..'Z'] of страница; Считая, что на каждой странице записной книжки указаны фамилии, начинающиеся с одной и той же буквы - индекса этой страницы, описать логическую функцию: а) номера (ЗК,НТ,Ф), определяющую, есть ли в записной книжке ЗК сведения о знакомом с фамилией Ф, и, если есть, присваивающую параметру Ф фамилию этого знакомого. 14.33 Описать логическю функцию Path (G,N,K,D), которая определяет, есть ли в ориентированном графе G путь из вершины N в вершину K, и, если есть, присваивает параметру D длину (число дуг) кратчайшего пути из N в K. Использовать следующее представление графа: type вершина = (b1,b2,b3,b4,b5,b6,b7,b8); соседи = set of вершина; граф = array[вершина] of соседи; (G[x] - множество вершин, которые ведут дуги из вершины x) Помогите пожалуйста...в субботу сдавать эту лабораторную, а сделать не получсется...жду ответов. Сообщение отредактировано: Archie - |
Lapp |
Сообщение
#2
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
|
Archie |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Руслан Репутация: 0 |
program _13_22; Хз - верно или нет...по суи да, но как то коряво. а вторую даж не понял. помогите плиз. Сообщение отредактировано: Archie - |
Lapp |
Сообщение
#4
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
но как то коряво. а вторую даж не понял. помогите плиз. Коряво, да.. но бывает намнооооого корявее! Что касается второй - интересная задача. Думаю, тут можно использовать рекурсивный перебор. 1. Заводишь array[все вершины]of вершина - это путь P. 2. Такой же массив для хранения минимального пути, Pmin. 3. Заводишь глобальную переменную типа вершина для длины пути L. 4. Такую же переменную для хранения длины минимального пути Lmin. 5. Для удобства можно завести еще и множество S из вершин для обозначения пройденных (хотя они уже есть в пути, но проверка множества будет происходить быстрее). 6. Заводишь булевскую переменную Found. 7. Делаешь процедуру, в которую передаешь как параметр исходную вершину (а). В этой процедуре увеличиваешь длину пути L на 1, добавляешь вершину а к пути P[L]:=a. Потом проверяешь: - если а=х (х = это конечная вершина), то Found:=true и проверяешь - если L<Lmin, то кладешь Pmin:=P и Lmin:=L, затем выходишь. Если а не равно х, то добавляешь вершину в множество S пройденных вершин и проходишь по всем соседям этой вершины (то есть вызываешь эту же процедуру с соседом качестве параметра), исключая уже пройденные. Потом выходишь, удаляя эту вершину из P и из S, а также уменьшая L на единицу. Эту процедуру вызываешь из главной программы, предварительно присвоив L:= и Lmin:=High(вершины) Коряво, конечно, описал.. Но примерно так. Отладка - после кодиррования алгоритма Если хочешь затравку: вот начало той процедуры (не исключено, что его нужно будет корректировать). procedure Search(a:tVertex); -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Archie |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Руслан Репутация: 0 |
У меня не получается...а завтра лабу сдавать. напиши пожалуйста всё решение второй задачи.
|
Lapp |
Сообщение
#6
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Не получается - выложи хотя бы то, что пытался сделать.
Пойми - все решать за тебя я не буду. Даже не надейся. Помочь - помогу. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Текстовая версия | 23.12.2024 20:28 |