Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Then begin. NewNode:=New(pNode); NewNode^.Value:=v;
NewNode: =New(pNode); NewNode^.Value: =v; NewNode^.NextNode: =fHead; NewNode^.ArcList: = nil; fHead: =NewNode; Inc(fNodesNumber); end else Writeln('Узел со значением ', v, ' в графе уже есть'); end; // procedure tOrGraph.AddNode При исключении узла из графа необходимо исключить и все дуги, инцидентные этому узлу. Реализация графа с помощью линейных односвязных списков не позволяет иметь прямой доступ к дугам, входящим в узел, и для их поиска нужно просматривать все списки дуг графа. Операция выполняется в три этапа: сначала удаляются все дуги, выходящие из исключаемого узла, затем отыскиваются и удаляются все дуги, входящие в исключаемый узел, и только после этого исключается сам узел. Исключаемый узел должен присутствовать в списке узлов графа. function tOrGraph.DeleteNode(DisNode: pNode): tValue; // Исключение узла DisNode из графа с исключением инцидентных ему дуг // и возвращение информации, содержащейся в исключенном узле Var Node, PrevNode: pNode; // текущий и предшествующий узлы Arc, PrevArc: pArc; // текущая и предшествующая дуги Begin // 1. Удаление дуг, исходящих из узла DisNode While DisNode^.ArcList< > nil do begin Arc: =DisNode^.ArcList; DisNode^.ArcList: = Arc^.NextArc; Dispose(Arc); Dec(fArcsNumber); end; // 2. Поиск и удаление дуг, входящих в узел DisNode Node: =fHead; While Node< > nil do begin Arc: =Node^.ArcList; PrevArc: = nil; if Arc< > nil then begin // если список дуг узла Node не пуст While (Arc^.RearNode< > DisNode) and (Arc^.NextArc< > nil) do begin PrevArc: =Arc; Arc: = Arc^.NextArc; end; if Arc^.RearNode=DisNode then begin // удаление if PrevArc= nil then Node^.ArcList: = Arc^.NextArc // удаляется первая дуга else PrevArc^.NextArc: = Arc^.NextArc; // удаляется не первая дуга Dispose(Arc); Dec(fArcsNumber); end; end; Node: =Node^.NextNode; end; // 3. Исключение узла DisNode из списка узлов графа DeleteNode: =DisNode^.Value; PrevNode: = nil; Node: =fHead; While DisNode< > Node do begin PrevNode: =Node; Node: = Node^.NextNode; end; if PrevNode= nil then fHead: =DisNode^.NextNode // Node – первый узел else PrevNode^.NextNode: =DisNode^.NextNode; // Node – не первый узел Dispose(Node); Dec(fNodesNumber); end; // function tOrGraph.DeleteNode При выполнении операции просмотра графа в файл поочередно выводятся узлы графа и для каждого узла перечисляются исходящие из него дуги: procedure tOrGraph.Revision(var f: Text); // просмотр графа Var Node: pNode; Arc: pArc; Begin Node: = fHead; While Node< > nil do begin Write(f, 'Узел ', NodeValue(Node), ': '); Arc: =Node^.ArcList;
|