Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/30: Рейтинг темы: голосов - 30, средняя оценка - 4.73
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730

Найти минимальный маршрут перемещения от первой остановки до второй

14.11.2011, 18:31. Показов 5886. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Четыре трамвайных маршрута города представлены структурой типа граф. Узлы структуры соответствуют остановкам трамвайных маршрутов и дополнительно включают название остановок. Для двух названий остановок, введенных в режиме диалога, найти минимальный маршрут перемещения от первой остановки до второй (по минимальной сумме расстояний пройденных остановок).

Не могу ни как сделать, у меня уже голова кругом идет (((( ужас просто...может есть опытные ?

Добавлено через 1 минуту
Консольное приложение

Добавлено через 1 минуту
чуть чуть есть ((( но не правильно


C#
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
Console.WriteLine("Печатаем матрицу смежности : ");
   for (i = 0; i < 9; i++)
    {
     for (j = 0; j < 9; j++)
      Console.Write("\t" + a[i, j]);
     Console.WriteLine();
    }
   Console.WriteLine();
   // печать номеров вершин графа
   for (i = 0; i < 9; i++) Console.Write("\t" + i);
   Console.WriteLine();
   // печать массива минимальных расстояний
   for (i = 0; i < 9; i++) Console.Write("\t" + d[i]);
   Console.WriteLine();
   // печать массива маршрутов
   for (i = 0; i < 9; i++) Console.Write("\t" + post[i]);
   Console.WriteLine();
   Console.WriteLine();
   int dlin;
   // печать маршрутов стягивоющего дерева
   for (i = 0; i < 9; i++)
    {
     dlin = d[i];
     Console.Write("Путь № {0}-{1} длина пути = {2}\t\t{3}", i, begver, dlin,i);
     p = i;
     if (i != begver)
      {
       do
        {
         p = post[p];
         if (p!=0) Console.Write("\t" + p);
        }
       while (p != 0);
       Console.WriteLine();
      }
     else Console.WriteLine();            
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.11.2011, 18:31
Ответы с готовыми решениями:

Найти минимальный маршрут перемещения от первой остановки до второй (по количеству пройденных остановок)
Четыре трамвайных маршрута города представлены структурой типа граф. Узлы структуры соответствуют остановкам трамвайных маршрутов и...

Найти минимальный маршрут перемещения от первой остановки до второй
Четыре трамвайных маршрута города представлены структурой типа граф. Узлы структуры соответствуют остановкам трамвайных маршрутов и...

Найти минимальный маршрут перемещения трамваев
Четыре трамвайных маршрута города представлены структурой типа граф. Узлы структуры соответствуют остановкам трамвайных маршрутов и...

10
38 / 40 / 6
Регистрация: 10.11.2011
Сообщений: 70
14.11.2011, 19:11
а расстояния между остановками есть?
0
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730
14.11.2011, 19:25  [ТС]
SergiiK, Четыре трамвайных маршрута города представлены структурой типа граф. Узлы структуры соответствуют остановкам трамвайных маршрутов и дополнительно включают название остановок. Для двух названий остановок, введенных в режиме диалога, найти минимальный маршрут перемещения от первой остановки до второй (по минимальной сумме расстояний пройденных остановок). -


это все что известно
0
38 / 40 / 6
Регистрация: 10.11.2011
Сообщений: 70
14.11.2011, 19:37
поищи какой нибудь рисунок графа и выложи. Просто не понятно - это произвольные лини, которые пересекаются где захотят, или они пересекаются в начальной и конечной точках.
0
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730
14.11.2011, 19:46  [ТС]
вот граф
Миниатюры
Найти минимальный маршрут перемещения от первой остановки до второй  
0
38 / 40 / 6
Регистрация: 10.11.2011
Сообщений: 70
14.11.2011, 20:08
я построил матрицу инцидентности и заполнил ее длинами участков, пока идеи закончились, завтра гляну еще. Вот код:

C#
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
public class Station
  {
    public string StationName;
    public double Distance;
 
    public Station(string stationName, double distance)
    {
      StationName = stationName;
      Distance = distance;
    }
  }
  
  class Program
  {
    static void Main(string[] args)
    {
      Station[][] graph = new Station[5][];
      string stationStart;
      string stationEnd;
      int numberOfStations;
 
      graph[0] = new Station[] 
      { 
        new Station("a", 10), 
        new Station("b", 20), 
        new Station("c", 15), 
        new Station("d", 8),
        new Station("e", 0)
      };
 
      graph[1] = new Station[] 
      { 
        new Station("a", 10), 
        new Station("f", 12), 
        new Station("c", 15), 
        new Station("g", 18),
        new Station("e", 0)
      };
 
      graph[2] = new Station[] 
      { 
        new Station("a", 10), 
        new Station("h", 25), 
        new Station("i", 75), 
        new Station("e", 0)
      };
 
      graph[3] = new Station[] 
      { 
        new Station("a", 10), 
        new Station("j", 88),
        new Station("e", 0)
      };
 
      for (int g = 0; g < 4; g++) // перебираем маршруты
      {
        Console.WriteLine("  Граф №{0}:", g + 1);
        for (int s = 0; s < graph[g].Length - 1; s++) // Перебираем станции
        {
          Console.WriteLine("От станции {0} до {1} станции {2} км", graph[g][s].StationName, graph[g][s + 1].StationName, graph[g][s].Distance);
        }
        Console.WriteLine();
      }
 
      Console.Write("Имя станции отправления: ");
      stationStart = Console.ReadLine();
 
      Console.Write("Имя станции назначения:  ");
      stationEnd = Console.ReadLine();
 
      //Находим список допустимых станций
      List<string> stations = new List<string>();
 
      for (int g = 0; g < 4; g++) // перебираем маршруты
      {
        for (int s = 0; s < graph[g].Length; s++) // Перебираем станции
        {
          if (!stations.Contains(graph[g][s].StationName))
          {
            stations.Add(graph[g][s].StationName);
          }
        }
      }
      numberOfStations = stations.Count();
      
      //Строим матрицу инцидентности и заполняем ее длинами участков
      double[,] matrix = new double[numberOfStations, numberOfStations];
      for (int row = 0; row < numberOfStations; row++ )
      {
        for (int column = 0; column < numberOfStations; column++ )
        {
          if (row == column)
          {
            matrix[row, column] = 0;
            continue;
          }
 
          for (int g = 0; g < 4; g++) // перебираем маршруты
          {
            for (int s = 0; s < graph[g].Length - 1; s++) // Перебираем станции
            {
              if (string.Compare(graph[g][s].StationName, stations[row]) == 0 &&
                  string.Compare(graph[g][s+1].StationName, stations[column]) == 0)
              {
                matrix[row, column] = graph[g][s].Distance;
              }
            }
          }
          
        }
      }
 
 
 
      Console.ReadLine();
    }
  }
Если вдруг ты знаешь как из этой матрицы получить комбинацию маршрутов - напиши!
Мне не хватает теории работы с графами!
0
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730
14.11.2011, 20:53  [ТС]
SergiiK, теории ? Всегда пожалуйста
В теории графов существует два простых определения понятия дерева. Не разбирая теоремы, доказывающие справедливость этих определений приведем их текст. Первое определение утверждает, что деревом является связанный граф, в котором число дуг на единицу меньше числа вершин.
Второе определение более очевидное – деревом называется связанный граф без циклов.
Дерево, полученное из графа путем удаления некоторых ребер, называется стягивающим деревом этого графа или каркасом.
Например, на рисунке 6.1 представлен граф типа «звезда», который может быть представлен несколькими стягивающими деревьями.

В теории графов неиспользованные ребра (удаленные ребра графа из которого получено стягивающее дерево) называются хордами.
Если к стягивающему дереву добавить произвольную хорду, то полученный граф содержит в точности один цикл.
На этой идее строятся алгоритмы получения всего множества циклов графа, что часто имеет прикладной характер, например, при анализе электрических цепей по закону Кирхгофа.


Существует множество различных алгоритмов нахождения стягивающих деревьев.
Рассмотрим алгоритм нахождения стягивающего дерева, в котором использован известный Вам алгоритм Дейкстры – нахождения минимальных маршрутов от заданной вершины до остальных вершин графа.
Это возможно, так как существует теорема, доказывающая, что «набор» минимальных маршрутов от заданной вершины до остальных вершин графа есть стягивающее дерево.
Напомню идею алгоритма нахождения минимального маршрута между вершинами графа. Например, существуют три смежные вершины 1,2 и 3. Расстояние между вершинами 1 - 2 равно 5, вершинами 2 – 3 равно 3, а вершинами 3 – 1 равно 1. При выборе маршрута между вершинами 1 – 2 графа используется маршрут 1 – 3 – 2. Ребро 1 – 2 удаляется из графа.

Использование приведенного алгоритма позволяет строить стягивающие деревья. Так как «перебор» вершин графа в алгоритме осуществляется в порядке возрастания вершин (использован цикл for), то при «равенстве» двух маршрутов в стягивающем дереве остается первый вариант.
В качестве исходного графа для программной реализации задачи построения стягивающего дерева связанного графа, выбран граф, для которого уже существует программная реализация в визуальной среде программирования Delphi (граф изображен на рисунке 6.3).
Алгоритм построения стягивающего дерева использует алгоритм нахождения минимальных маршрутов Дейкстры. Отличие от ранее рассмотренной программой реализации этого алгоритма заключается в том, что можно задавать значение начальной вершины.
Алгоритм Дейкстры
Алгоритм Дейкстры требует использования трех массивов, размерность которых соответствует количеству вершин графа.
Первый массив, массив «постоянных» вершин, будет хранить минимальные маршруты от заданной вершины графа до всех остальных его вершин. Первоначально в этот массив записывается номер начальной вершины (вершины, от которой будем находить минимальные расстояния для всех других вершин графа). Название массива соответствует названию выбранных вершин в алгоритме Дейкстры, согласно которому сначала все вершины графа объявляются «временными», а выбранные вершины называются «постоянными». Начальная вершина объявляется «постоянной».
Второй массив предназначен для хранения минимальных расстояний от заданной вершины графа до всех остальных его вершин. Первоначально в него переписывается строка матрицы смежности, соответствующая номеру выбранной вершины.
В третьем массиве логического типа отмечаются выбранные (постоянные) вершины графа. Первоначально «постоянной» вершиной графа является только начальная вершина.
Далее выбирается «временная» вершина, до которой расстояние от начальной (постоянной) вершины минимально. Эта вершина объявляется вершиной k. Проверяются все маршруты от «постоянной» вершины до всех «временных» вершин графа как непосредственно, так и через вершину k. Минимальные расстояния заносятся в во второй массив, а в первый массив, в соответствующую позицию, записывается k, если маршрут минимального расстояния проходил через вершину k.
Далее вершина k объявляется «постоянной» (это фиксируется в третьем массиве) и алгоритм поиска следующей вершины графа повторяется относительно новой «постоянной» вершины.
0
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
14.11.2011, 22:10
irineyxxx, я здесь набросал полную реализацию алгоритма Дейкстры.

Цитата Сообщение от irineyxxx Посмотреть сообщение
в режиме диалога
Это мне лень было делать, сами допишите. Все значения я вбивал вручную в коде программы, чтобы каждый раз их не набирать. Пример для алгоритма (заменил только нумерацию вершин на буквенную), а так же сам алгоритм, был взят от сюда. Хочу заметить только то, что там (в этой ссылке) есть небольшая опечатка в алгоритме - найдете ее сами.
А теперь сама реализация.
Программа состоит из таких блоков:
-
Сама вершина графа
C#
1
2
3
4
5
6
7
8
9
10
11
using System.Collections.Generic;
 
sealed public class Node
{
    public List<Link> Links { get; set; }
 
    public Node()
    {
        Links = new List<Link>();
    }
}

-
Связь между вершинами
C#
1
2
3
4
5
sealed public class Link
{
    public double Distance { get; set; }
    public string Node { get; set; }
}

-
Вспомогательный класс для алгоритма Дейкстры
C#
1
2
3
4
5
6
7
8
9
10
11
sealed public class Description
{
    public bool Visited { get; set; }
    public double Distance { get; set; }
 
    public Description()
    {
        Visited = false;
        Distance = double.PositiveInfinity;
    }
}

-
И собственно сам граф
C#
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
using System.Linq;
using System.Collections.Generic;
 
sealed public class Graph
{
    private Dictionary<string, Node> nodes;
 
    public Graph()
    {
        nodes = new Dictionary<string, Node>();
    }
 
    public void AddNode(string name)
    {
        nodes.Add(name, new Node());
    }
    public void AddLinkToNode(string start, string end, double distance, bool isOriented)
    {
        nodes[start].Links.Add(new Link { Node = end, Distance = distance });
        if (!isOriented)
            nodes[end].Links.Add(new Link { Node = start, Distance = distance });
    }
 
    public double FindShortestDistance(string start, string end)
    {
        // Алгоритм Дейкстры.
        Dictionary<string, Description> info = new Dictionary<string, Description>(this.nodes.Count);
        foreach (string current in this.nodes.Keys)
            info.Add(current, new Description());
        info[start].Distance = 0;
 
        // Пока все вершины непосещенные.
        while (!info.Select(x => x.Value.Visited).Aggregate((x, y) => x & y))
        {
            // Находим непосещенную вершину с минимальной меткой.
            string current = info.Where(x => !x.Value.Visited
                && x.Value.Distance == info.Where(y => !y.Value.Visited).Min(y => y.Value.Distance))
                .First().Key;
            // Находим все непосещенные соседние вершины для текущей вершины.
            List<Link> neighbors = nodes[current].Links.Where(x => !info[x.Node].Visited).ToList();
            // Рассматриваем новую длину пути для каждой соседней вершины.
            foreach (Link link in neighbors)
            {
                double distance = info[current].Distance + link.Distance;
                if (info[link.Node].Distance > distance)
                    info[link.Node].Distance = distance;
            }
            // Отмечаем текущую вершину как посещенная.
            info[current].Visited = true;
        }
 
        return info[end].Distance;
    }
}

Для проверки я писал
вот такой
C#
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
using System;
 
class Program
{
    static void Main()
    {
        int count = 6;
        string[] names = { "A", "B", "C", "D", "E", "F" };
 
        // Дан взвешенный ОРИЕНТИРОВАННЫЙ граф G(V,E) без петель и дуг отрицательного веса.
        // Найти кратчайшие пути от некоторой вершины a графа G до всех остальных вершин этого графа.
        // Все входные параметры методов данного графа считаются достоверными - нет проверок корректности параметров.
        Graph graph = new Graph();
 
        // Заполнение графа вершинами.
        for (int i = 0; i < count; ++i)
            graph.AddNode(names[i]);
 
        // Создание у вершин связей.
        // Последнее значение говорит о том, что эта связь двунаправленная.
        graph.AddLinkToNode("A", "B", 7, false);
        graph.AddLinkToNode("A", "C", 9, false);
        graph.AddLinkToNode("A", "F", 14, false);
        graph.AddLinkToNode("B", "C", 10, false);
        graph.AddLinkToNode("B", "D", 15, false);
        graph.AddLinkToNode("C", "D", 11, false);
        graph.AddLinkToNode("C", "F", 2, false);
        graph.AddLinkToNode("D", "E", 6, false);
        graph.AddLinkToNode("E", "F", 9, false);
 
        Console.WriteLine(graph.FindShortestDistance("A", "B")); // Ответ 7.
        Console.WriteLine(graph.FindShortestDistance("A", "C")); // Ответ 9.
        Console.WriteLine(graph.FindShortestDistance("A", "D")); // Ответ 20.
        Console.WriteLine(graph.FindShortestDistance("A", "E")); // Ответ 20.
        Console.WriteLine(graph.FindShortestDistance("A", "F")); // Ответ 11.
    }
}
код.

В принципе и все. Вроде все необходимое освятил. Если что-то не понятно, спрашивайте.

P.S. Никакие массивы не использовались.
2
38 / 40 / 6
Регистрация: 10.11.2011
Сообщений: 70
15.11.2011, 12:00
Работает вроде:

C#
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace Graphs
{
  class Program
  {
    /// <summary>
    /// Связь между вершинами графа
    /// </summary>
    public class Link
    {
      public double Distance { get; set; }
      public string Node { get; set; }
    }
    
    /// <summary>
    /// Вершина графа
    /// </summary>
    public class Node
    {
      public List<Link> Links { get; set; } // ребра к другим вершинам
 
      public Node()
      {
        Links = new List<Link>();
      }
    }
 
    /// <summary>
    /// Вспомогательный класс для алгоритма Дейкстры
    /// </summary>
    public class Description
    {
      public bool Visited { get; set; }
      public double Distance { get; set; }
 
      public Description()
      {
        Visited = false;
        Distance = double.PositiveInfinity;
      }
    }
 
    /// <summary>
    /// Граф
    /// </summary>
    public class Graph
    {
      private Dictionary<string, Node> nodes;
 
      public Graph()
      {
        nodes = new Dictionary<string, Node>();
      }
 
      /// <summary>
      /// Добавить вершину графа
      /// </summary>
      /// <param name="name">Имя вершины графа</param>
      public void AddNode(string name)
      {
        nodes.Add(name, new Node());
      }
      
      /// <summary>
      /// Добавить ребро графа
      /// </summary>
      /// <param name="start">Начальная вершина графа</param>
      /// <param name="end">Конечная вершина граф</param>
      /// <param name="distance">расстояние</param>
      /// <param name="isOriented">двунаправленная связь</param>
      public void AddLinkToNode(string start, string end, double distance, bool isOriented)
      {
        nodes[start].Links.Add(new Link { Node = end, Distance = distance });
        if (!isOriented)
          nodes[end].Links.Add(new Link { Node = start, Distance = distance });
      }
 
      /// <summary>
      /// Нахождение минимального расстояния
      /// </summary>
      /// <param name="start">Начальная вершина графа</param>
      /// <param name="end">Конечная вершина граф</param>
      /// <returns>расстояние</returns>
      public double FindShortestDistance(string start, string end)
      {
        // Алгоритм Дейкстры.
        Dictionary<string, Description> info = new Dictionary<string, Description>(this.nodes.Count);
        foreach (string current in this.nodes.Keys)
          info.Add(current, new Description());
        info[start].Distance = 0;
 
        // Пока все вершины непосещенные.
        while (!info.Select(x => x.Value.Visited).Aggregate((x, y) => x & y))
        {
          // Находим непосещенную вершину с минимальной меткой.
          string current = info.Where(x => !x.Value.Visited
                  && x.Value.Distance == info.Where(y => !y.Value.Visited).Min(y => y.Value.Distance))
                  .First().Key;
          // Находим все непосещенные соседние вершины для текущей вершины.
          List<Link> neighbors = nodes[current].Links.Where(x => !info[x.Node].Visited).ToList();
          // Рассматриваем новую длину пути для каждой соседней вершины.
          foreach (Link link in neighbors)
          {
            double distance = info[current].Distance + link.Distance;
            if (info[link.Node].Distance > distance)
              info[link.Node].Distance = distance;
          }
          // Отмечаем текущую вершину как посещенная.
          info[current].Visited = true;
        }
        return info[end].Distance;
      }
 
      // список всех вершин 
      public string ShowNodes()
      {
        string result = string.Empty;
        foreach (var node in nodes)
        {
          result += node.Key + " ";
        }
        return result;
      }
 
    }
 
    static void Main(string[] args)
    {
      // Вершины графа
      string[] nodeNames = { "A", "B", "C", "D", "E", "F" };
      
      // Заполнение графа вершинами.
      Graph graph = new Graph();
      for (int i = 0; i < nodeNames.Length; i++)
        graph.AddNode(nodeNames[i]);
 
      // Создание у вершин связей.
      // Последнее значение говорит о том, что эта связь двунаправленная.
      graph.AddLinkToNode("A", "B", 7, false);
      graph.AddLinkToNode("A", "C", 9, false);
      graph.AddLinkToNode("A", "F", 14, false);
      graph.AddLinkToNode("B", "C", 10, false);
      graph.AddLinkToNode("B", "D", 15, false);
      graph.AddLinkToNode("C", "D", 11, false);
      graph.AddLinkToNode("C", "F", 2, false);
      graph.AddLinkToNode("D", "E", 6, false);
      graph.AddLinkToNode("E", "F", 9, false);
 
      string stationStart; // станция отправления
      string stationEnd; // станция назначения
 
      Console.WriteLine("Имеются следующие станции: {0}", graph.ShowNodes());
 
      Console.Write("Введите имя станции отправления: ");
      stationStart = Console.ReadLine();
 
      Console.Write("Введите имя станции назначения:  ");
      stationEnd = Console.ReadLine();
 
      double distance = graph.FindShortestDistance(stationStart, stationEnd);
      
      Console.WriteLine("Кратчайший маршрут от станции {0} до станции {1} = {2}", stationStart, stationEnd, distance);
 
      Console.ReadLine();
    }
  }
}
Добавлено через 2 минуты
А тебе, Blood-Angel, от меня спасибо. Задачка интересная.
А на счет
Цитата Сообщение от Blood-Angel Посмотреть сообщение
P.S. Никакие массивы не использовались.
не согласен. Любая коллекция внутри себя содержит массив.
1
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730
15.11.2011, 12:09  [ТС]
SergiiK, Спасибо!!!
0
12 / 12 / 7
Регистрация: 13.11.2010
Сообщений: 65
23.02.2012, 01:01
Blood-Angel,

А есть возможность прикрутить вашу прогу к форме + самим задовать вершины и их вес, а то пытался, все никак не получается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.02.2012, 01:01
Помогаю со студенческими работами здесь

Найти минимальный элемент первой строки, которого нет во второй строке
Даны 2 строки с 30 числами. Найти минимальный элемент первой строки, которого нету во второй строке

В первой половине массива найти максимальный элемент, во второй половине минимальный
Дан одномерный массив размером N. Заполнить массив случайными элементами. В первой половине массива найти максимальный элемент, во второй...

Найти максимальный элемент в первой половине массива и минимальный - во второй половине массива
Здравствуйте, помогите пожалуйста сделать программу. Задание: Дан массив А размерностью k. Найти в исходном массиве максимальный...

Создать таблицу и найти в ней минимальный элемент, затем найти второй минимальный элемент и узнать расстояние между ними
Например у нас есть таблица Минимальным элементом является 1, а следующим минимальным элементом является 4. Между ними расстояние 3. Я...

Найти минимальный элемент в первой половине массива
Дан двумерный массив целых чисел из 4 столбцов и 4 строк. Найти минимальный элемент в первой половине массива (просмотр вести по строкам) и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru