Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Delphi Что за ошибка raised exception EconvertError? https://www.cyberforum.ru/ delphi-beginners/ thread1484555.html
Что за ошибка происходит при вводе чисел? procedure TForm3.Button1Click(Sender: TObject); begin R:=StrToFloat(edit1.text); a:=StrToFloat(edit2.Text); H:=StrToFloat(edit3.Text); G:=StrToFloat(edit4.Text); asect:=strtofloat(edit5.Text); H1:=StrToFloat(edit6.Text); h11:=StrToFloat(edit7.Text);
Вывод по 3 слова в Мемо Delphi
Помогите сделать так, чтобы выводил сообщение от клиента по 3 слова. Если 4 слова и более, то он выводит только первых 3 слова. ... if BytesRead = 0 then Break; SetLength(Buff, BytesRead); Memo1.lines.Add(Buff); //где-то тут ...
Delphi Сохранение в файл по дате У меня в программе происходит автоматическое сохранение журнала поиска в файл, но надо сделать так, чтоб имя файла постоянно задавалось само (дата+время) procedure TForm1.reg; var fileName: string; begin if FileExists( ExtractFilePath(Application.EXEName)+'\reg.csv') then begin // end else https://www.cyberforum.ru/ delphi-beginners/ thread1484482.html Delphi Расчет симплекс методом Не могу найти причину, почему данная программа не считает результат.. https://www.cyberforum.ru/ delphi-beginners/ thread1484432.html
В чем ошибка при описании массива? Delphi
otvety:array of string=(('1','2','3'),('4','5','6'));Ребят помогите не могу понять в чем здесь ошибка,ругается на размерность массива!!!
Delphi Добавление файлов в архив, ZipForge Например на диске D есть архив 123.zip, как с помощью компонента ZipForge добавить туда файлы? https://www.cyberforum.ru/ delphi-beginners/ thread1484380.html
Delphi Клиент+Сервер Прошу помощи, знаю было тонны инфы про это, но до меня так и не доперло. В общем есть клиент, и сервер, клиент по нажатию кнопки(естественно) посылает файл с логом действий пользователя, на сайт в базу данных, когда я захожу в программу админ панель, нажав кнопку обновить, программа должна искать на сайте в дирректории .../Log_Files/LogAction.txt файл, и загружать его в memo. Как сделать... https://www.cyberforum.ru/ delphi-beginners/ thread1484368.html Delphi Изменение размеров главного окна
Создать меню с командами: Input size, Choose, Change, Exit. Команда Change при старте программы запрещена, пока Input size не будет задан. При выборе команды Input size открывается диалоговое окно, содержащее: - два поля ввода типа TEdit с метками Size x, Size y; - кнопку типа TButton. Обеспечить возможность ввода значений в поля Size x, Size y. Значения интер¬претируются как количество...
Delphi Метрики Холстеда https://www.cyberforum.ru/ delphi-beginners/ thread1484281.html
Ребята, нужна ваша помощь. Нужна программа на Delphi (Метрики Холстеда). Задание таково: Мальчик пришел в магазин, в нем 3 вида конфет. У каждого вида своя цена. Нужно написать программу, в которую можно забивать вес, определенного вида конфет, которая рассчитает сумму покупки и сдачи. P.S. Купить он может сразу 3 вида конфет (например: 200 г. Взлетных, 100 г. Ирисок, 400 г. Птичьего молока).
Delphi Авторизация пользователя с ограниченным количеством попыток Всем привет! На форме для авторизации имеется два элемента edit (для пароля и для имя пользователя). При введении пароля более 3 раз одного и того же пользователя должна происходить блокировка этого пользователя. Подскажите пожалуйста как это сделать при помощи array. Заранее спасибо :-) https://www.cyberforum.ru/ delphi-beginners/ thread1484246.html
Delphi Создать программу, вычисляющую тангенс угла
Создать программу, вычисляющую тангенс угла. Необходимо поместить в форму два компонента Tedit для ввода значения и результата и кнопку Tbutton для вычисления значения тангенса. Исключить *ввод символов вместо цифр и получение значения тангенса угла 90 градусов. Предусмотреть возможность ввода значений в радианах.
Delphi Ошибка https://www.cyberforum.ru/ delphi-beginners/ thread1484083.html
Всем привет,по нажатию кнопки должен строиться кратчайший путь по методу Дейкстры. На форме расположена кнопка и имэйдж(будущий путь). Данные я загружаю из текстового файла. Ошибка возникает при нажатие на кнопку Вот сам код unit Unit1; interface uses
0 / 0 / 1
Регистрация: 15.03.2015
Сообщений: 66
0

Неправильно строит граф - Delphi - Ответ 7792907

22.06.2015, 10:39. Показов 397. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
Нужно найти кратчайший путь по методу Дейкстры.
Данные беру из файла:
5
50 150
250 50
190 250
400 70
440 250
0 150 150 10000000 10000000
100 0 100 50 200
150 100 0 10000000 110
10000000 50 10000000 0 50
10000000 200 110 50 0

Должен путь проходить через верхние ребра,а у меня как на крине.
Может кто посмотреть мой код и указать на мои ошибки,почему неправильно рисует.
Неправильно строит граф

Вот сам код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Screen: TImage;
    procedure Button1Click(Sender: TObject);
    procedure LoadGraph;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
type Vertex = record                                {Вершина графа}
Marked  : Boolean;                              {индикатор состояния}
DistFromStart :Integer;                         {расстояние от с тартовой вершины}
PrevVertex :Integer;                                {предыдущая вершина}
id : Integer;
x, y : Integer;
end;
 
const StartVertex = 0;                              {стартовая вершина}
      FinishVertex = 7;                             {финишная вершина}
 
var
  Form1: TForm1;
  M : array of array of Integer;
  N : Integer;
  V : array of Vertex;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var i         :Integer;                             {счетчик цикла}
    NotMarked :Integer;                             {кол-во неотмеченных вершин}
    vm, pv    :Integer;                             {индекс вершин}
    MinDist   :Integer;                             {текущее минимальное расстояние}
begin
    LoadGraph;                              {загрузить граф}
    Form1.Screen.Canvas.Brush.Color := clWhite;             {очистить экран}
    Form1.Screen.Canvas.FillRect(Rect(0,0,600,400));
 
    for i := 0 to N - 1 do
    begin
      V[i].Marked := false;                         {ни одна вершина не отмечена}
      V[i].DistFromStart :=M[StartVertex,i];                {начальное расстояние}
end;
 
V[StartVertex].Marked :=true;                           {отметить стартовую вершину}
V[StartVertex].PrevVertex := -1;                        {у стартовой вершины нет предыдущей}
NotMarked := N - 1;                             {начальное кол-во неотмеченных вершин}
 
while NotMarked <> 0 do                             {пока есть неотмеченные вершины}
begin
    MinDist := 10000000;
    for i := 0 to N - 1 do
    if not V[i].Marked and (V[i].DistFromStart < MinDist) then
    begin                                   {найти неотмеченную вершину}
      vm := i;                              {С мин. значением DistFromStart}
      MinDist := V[i].DistFromStart;
    end;
    V[vm].Marked := true;                           {отметить её}
    NotMarked := NotMarked - 1;
 
    for i := 0 to N - 1 do
      if not V[i].Marked then                       {цикл по всем неотмеченным вершинам}
        if V[i].DistFromStart > V[vm].DistFromStart + M[vm,i] then
        begin
        V[i].DistFromStart := V[vm].DistFromStart + M[vm,i];
        V[i].PrevVertex := vm;
        end;
end;
 
 
Form1.Screen.Canvas.MoveTo(V[FinishVertex].x, V[FinishVertex].y);
 
pv := V[FinishVertex].PrevVertex;                       {ввод полученного маршрута}
repeat
    Form1.Screen.Canvas.LineTo(V[pv].x, V[pv].y);
    pv := V[pv].PrevVertex;
until pv = -1;
 
 
Form1.Screen.Canvas.Brush.Color := clRed;                   {ввод вершин графа}
for i := 0 to N - 1 do
    Form1.Screen.Canvas.FillRect(Rect(V[i].x - 5, V[i].y - 5,
                      V[i].x + 5, V[i].y + 5));
end;
 
procedure TForm1.LoadGraph;
var F    : TextFile;
    i, j : Integer;
begin
  AssignFile(F, 'graph.txt');
  FileMode := 0;
  Reset(F);
 
  ReadLn(F, N);
  SetLength(M, N, N);
  SetLength(V, N);
  for i := 0 to N - 1 do
    ReadLn(F, V[i].x, V[i].y);
  for i := 0 to N - 1 do
      for j := 0 to N - 1 do
      Read(F, M[i,j]);
      CloseFile(F);
end;
 
 
end.


Вернуться к обсуждению:
Неправильно строит граф Delphi
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2015, 10:39
Готовые ответы и решения:

Masonry неправильно строит статьи
Добрый вечер. Решил подключить masonry для постройки сетки статьей в блоге. Все ок, но заметил что...

Двойной маятник по методу Эйлера на паскале неправильно строит график
где может быть ошибка program dm; const n=5000 ; var H,W,C,M,q:real; i:integer; s:string;...

Граф задан цепными списками. Построить его реберный граф
Дорогие форумчане, прошу помочь с написанием данной программы: Граф задан с помощью цепных...

Как преобразовать неориентированный граф в ориентированный граф из матричной записи
Есть ли какой нибудь алгоритм преобразования Неориентированный графа в ориентированный граф из...

0
22.06.2015, 10:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.06.2015, 10:39
Помогаю со студенческими работами здесь

Ориентированный граф задан матрицей смежности. Нарисовать граф с наименьшим количеством пересечений
Ориентированный граф задан матрицей смежности. Нарисовать граф с наименьшим количеством...

Реализовать граф от 1 до 10: граф связный; -число от 1 до 10, могут повторяться
Реализовать граф от 1 до 10: граф связный; -число от 1 до 10, могут повторяться. Добавить рандом...

Дан список, содержащий смешанный граф. Выбрать из него однонаправленные ветви и занести в результирующий граф
Помогите, пожалуйста решить эту зайку. Очень прошу...

Считать граф из файла (граф задан матрицей) представить его в виде списка и записать список заново в файл
помогите очень срочно надо. считать граф из файла (граф задан матрицей) представить его в виде...

Проверьте задачку по циклам, неправильно работает. [думаю что неправильно]
Спасибо что решили зайти. Задание выгладит так: http://*******/PW95p А результат выплнения:...

Неправильно работает цикл for, и функции работают неправильно
1) Неправильно работает цикл for(k=0...). Входит только 1 раз, дальше вылетает. Делал пошаговую...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru