Сколько каких дорог? - Pascal

Узнай цену своей работы

Формулировка задачи:

Здравствуйте,помогите пожалуйста написать код.В городе Новые Васюки на некоторых дорогах введено одностороннее движение. Схема дорог задана в виде весовой матрицы графа, числа обозначают длины дорог. Если длины дорог из пункта А в пункт Б разные, это означает, что есть две разные дороги. Найдите отдельно количество дорог в Новых Васюках с односторонним и двусторонним движением. Входные данные В первой строке вводится количество перекрёстков в Новых Васюках N ( 1 ≤ N ≤ 1000 ). В следующих N строках записано по N чисел, разделённых пробелами – длины дорог между каждой парой перекрёстков. Ноль означает, что дороги между этими перекрёстками нет. Выходные данные Программа должна вывести два числа в одной строке, разделив их пробелом: сначала количество дорог с односторонним движением, потом – количество дорог с двусторонним движением. Примеры входные данные 5 0 2 3 4 0 2 0 5 0 7 3 6 0 8 0 0 0 0 0 0 0 7 0 9 0 выходные данные 5 3

Решение задачи: «Сколько каких дорог?»

textual
Листинг программы
var
  n,i,j,o,d:integer;
  a:array[1..1000,1..1000] of integer;
begin
  readln(n);
  for i:=1 to n do
    for j:=1 to n do read(a[i,j]);
    for i:=1 to n do
      for j:=1 to n do if a[i,j]>0 then if a[i,j]=a[j,i] then d:=d+1 else o:=o+1;
   writeln(o,' ',d div 2)
end.

Объяснение кода листинга программы

  1. Объявление переменных:
    • n - целочисленная переменная, обозначает размерность массива
    • i - целочисленная переменная, используется в цикле for
    • j - целочисленная переменная, используется в цикле for
    • o - целочисленная переменная, счетчик отрицательных значений в массиве
    • d - целочисленная переменная, половина счетчика положительных значений в массиве
    • a - двумерный массив 1000x1000 с целочисленными значениями
  2. Считывание значения n с клавиатуры
  3. Заполнение массива a значениями:
    • С помощью двух вложенных циклов for происходит считывание значений для каждой ячейки массива a[i,j] из ввода
  4. Подсчет количества дорог:
    • Снова используются два вложенных цикла for для прохождения по каждой ячейке массива a[i,j]
    • Если значение ячейки больше нуля, то проверяется, равно ли оно значению в ячейке a[j,i]
    • Если они равны, увеличивается счетчик d на единицу, иначе увеличивается счетчик o на единицу
    • После этого выводится результат в виде o и d div 2
  5. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы