Воронина
?>

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

Информатика

Ответы

shilinmikhaillg
Const n=5; var   p: array[1..n,1..n] of real;   i,j: integer; begin   randomize;   for i: =1 to n do       for j: =1 to n do           p[i,j]: =random(1000);   for i: =1 to n do       for j: =1 to n do           if i< j then p[i,j]: =0           else if i> j then p[i,j]: =round(p[i,j]);   // далее с массивом можно работать. например, вывести. end.
apetrov13
Стандартный вид числа - это его представление в виде x = a*10^b,  где a - число большее, либо равное 1, но меньшее 10, b - любое целое число, называемое порядком числа.  любое число можно представить в таком виде и притом единственным образом.  например,  1436 = 1,436*10^3 - порядок равен 3  0,000427 = 1436 = 4,27*10^3 - порядок равен -4  5,257 = 5,257*10^0 - порядок равен 0.  стандартный вид числа удобен для проведения некоторых расчётов, в том случае, когда числа большие или маленькие. в большинстве случаем результат невозможно вычислить точно - только приближённо, да это и не нужно - сами числа тоже могут быть записаны приближённо.  над числами, записанными в стандартном виде, производятся следующие действия:   1. умножение и деление.  для этого перемножают (делят) их основания (точно не помню, как именно они называются - речь идёт о числе a в записи x = x = a*10^b - это будет основание результата, затем складывают (вычитают) порядки - это будет порядок результата. такой способ применим, если основание результата больше либо равно 1, но меньше 10. в противном случае, запятую в основании сдвигают влево или вправо так, чтобы основание стало больше либо равно1, но меньше 10, и одновременно увеличивают или уменьшают порядок на столько, на сколько сдвинули запятую.  пример  4,521*10^8 * 9,436*10^-3 = (4,521*9,436)*10^(8+(-3)) = 42,66*10^5 - оставляем столько значащих цифр, сколько было в одном из сомножителей (в общем случае, наибольшее число значащих цифр) . значащая цифра - это первая ненулевая цифра.  основание получилось больше 10, сдвигаем запятую влево на 1 и на столько же увеличиваем порядок: 4,266*10^6  2. сложение и вычитание.  если порядки двух чисел, записанных в стандартном виде, равны, то основание суммы (разности) равно сумме (разности) оснований - порядок следует оставить тем же.  4,236*10^-8 + 1,157*10^-8 = 5,393*10^-8  если сумма получилась больше 10, запятую в основании сдвигают на 1 влево, и порядок увеличивают на 1.  если порядки чисел не равны, то как правило, порядок результата равен наибольшему из порядков слагаемых (потому что число с маленьким порядком мало изменит число с большим порядком, будучи прибавленным к нему) . но не всегда. могут быть случаи, когда основание слагаемого с большим порядком близко к 10. в этом случае порядок результата может быть больше порядка этого числа на 1.  например:   9,939*10^13 + 7.143*10^11 = 9,939*10^-13 + 0,071*10^13 = 10,01*10^13 = 1,001*10^14  (числа к одинаковому порядку, оставив одинаковое число цифр) .  3. возведение в степень и извлечение корня.  можно применять тогда, когда степень - обычное натуральное число. основание возводится в степень, а порядок умножается на показатель степени. при несоответствующем основании сдвигаем запятую и изменяем порядок.  (6,789*10^5)^2 = 46,09*10^10 = 4,609*10^11  4. потенцирование и логарифмирование  применяется редко. вычисления крайне неудобны.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Напишите программу, которая вводит из файла весовую матрицу графа и определяет длины всех оптимальных маршрутов с алгоритма флойда-уоршелла.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

catsk8
akremlev2015
miss1380
vasilyevjob6
ShALIGINA
vera4
Coverplus30
asvavdeeva
Panei
спец387
ekaterinasamoylova4705
catmos
espectr-m
Dmitrii_Shamilevich2019
magazin7452834