Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/10: Рейтинг темы: голосов - 10, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 03.09.2013
Сообщений: 9

Решение математических задач на PureBasic

03.09.2013, 15:29. Показов 2078. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста, сижу далеко не один день ломаю голову, читаю в интернете, ну не получается решить задание.
Нужна лишь одна функция(Procedure)
она получает лишь один параметр, и одно число на выходе
есть двумерный массив, например ввиде таблицы:
__1 2 3 4 5
1| 0 0 0 1 0
2| 0 0 0 0 1
3| 0 0 0 1 1
4| 1 0 1 0 0
5| 0 1 1 0 0
в данном примере число 5 это и есть тот параметр, который получает функция, то есть сколько на сколько будет массив
и уже заранее массив известен и заполнен
представьте что это 5 городов, а цифра 1 означает между которыми есть дорога, 0 между которыми нет дорог
число которое рассчитывает функция, это между сколькими городами есть путь
например из 1 города можно попасть в город 2: 1-4-3-5-2
из 4 города в первый: 4-1
например
a=func(b)
a - число между сколькими городами есть путь
b - число, сколько всего городов
массив с городами уже заполнен
заранее прям огромное спасибо, если прям кодом поможете, это очень сильно меня спасёт
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.09.2013, 15:29
Ответы с готовыми решениями:

Нужна ваша помощь в решении задач!!
Уважаемые форумчане, прошу помощи в решение задач. задача 1: (синус заменяется на косинус) нужно решить номер 11. задача...

Использование условных операторов при решении задач
1) Даны две переменные целого типа: А и В. Если их значения не равны, то присвоить каждой переменной максимальное из этих значений, а если...

Помощь в решении двух задач.
1. Даны а, в, с. Напечатать наибольшее из попарных произведений этих чисел. Если это число будет больше 27, то вычислить и напечатать S1...

15
 Аватар для logincyberforu
30 / 31 / 0
Регистрация: 26.08.2013
Сообщений: 282
03.09.2013, 16:45
на сколько я понял дана сумма городов, и таблица. Нужно исходя из этой таблицы вернуть сумму дорог между городами...
код дать не смогу, но если сможеш строки запихнуть в масивы, типа строка1=dim1 то както так:
procedure.i (kolichestvo_gorodov.i)
i.i = kolichestvo_gorodov.i
dim t.i(i) пытаемся создать масивы для городов, то есть где масив 1(сумма городов)=первому городу/ хз получится ли
for ii=1 to i ;создаём цикл для города
dim a.i= ... впихиваем в масив a значение строки ii
с.i=0 обнуляем количество дорог для текущего города
for iii=1 to i ;проверяем наличае путей между текущим городом и остальными
if a(iii)=1 если есть дорога
c=c+1 то плюсуем единичку к сумме дорог для текущего города
endif завершааем условие проверки наличия дорог
next завершаем цикл сумировани наличия дорог для текущего города
t(ii)=c присваиваем переменной масива количество дорог
next переходим к следующему городу
return (t) хотя хз как правильно вернуть массив
endproceddure
в результате имеем масив где в переменной 1 соответствующей первому городу содержится количество дорог соединяющих его с остальными, то же для других городов

но вероятно автор имел в виду наличае дорог между конкретными городами, или возможности проезда....
0
Эксперт по электронике
6570 / 3197 / 335
Регистрация: 28.10.2011
Сообщений: 12,475
Записей в блоге: 7
03.09.2013, 16:47
В примере есть несоответствие. Указано что 1 - есть дорога, но в тоже время, утверждается что имеется путь между городами, которые в таблице отмечены нулями.
Почему первая диагональ нулей отмечена красным цветом? А вторая диагональ (в которой тоже нули) никак не отмечена?

Функции можно передавать сам массив, а его размер будет вычислен в ней.
PureBasic
1
2
3
4
Procedure Func(Array Test(2))
  x1=ArraySize(Test(), 1) ; Первая размерность.
  x2=ArraySize(Test(), 2) ; Вторая размерность.
EndProcedure
1
 Аватар для logincyberforu
30 / 31 / 0
Регистрация: 26.08.2013
Сообщений: 282
03.09.2013, 16:51
Shaggy74,
ежели же нужна сумма всех путей между городами то вставь п процедуру ещё следующий цикл
for s=1 to i
total=t(s)+total
next
return total
1
0 / 0 / 0
Регистрация: 03.09.2013
Сообщений: 9
03.09.2013, 17:00  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
В примере есть несоответствие. Указано что 1 - есть дорогоа, но в тоже время, утверждается что имеется путь между городами, которые в таблице отмечены нулями.
Почему диагональ нулей отмечена красным цветом? А вторая диагональ (в которой тоже нули) никак не отмечена?
1-это дорога напрямую, например из города 1 в город 4 есть путь
но и из города 1 в город 2 есть путь, функция и должна сама его найти, потому что напрямую нет дороги, но через другие города можно добраться
красным цветом нули отметил, просто что впринципе не возможно дороги из города 1 в город 1, или из города 2 в город 2

Добавлено через 8 минут
logincyberforu, спасибо, сейчас поразбираюсь
0
 Аватар для logincyberforu
30 / 31 / 0
Регистрация: 26.08.2013
Сообщений: 282
03.09.2013, 17:02
Цитата Сообщение от Shaggy74 Посмотреть сообщение
1-это дорога напрямую, например из города 1 в город 4 есть путь
но и из города 1 в город 2 есть путь, функция и должна сама его найти, потому что напрямую нет дороги, но через другие города можно добраться
красным цветом нули отметил, просто что впринципе не возможно дороги из города 1 в город 1, или из города 2 в город 2
в таком случае решение невозможно. либо нужно вкачестве исходных параметров передать пункт отправки и назначения, где результатом может быть либо вариация путей либо кратчайший путь. либо в качестве исходного параметра нужно передать не сумму городов а конкретный город где в качестве результата может быть возвращено количество прямых сообщений.
1
0 / 0 / 0
Регистрация: 03.09.2013
Сообщений: 9
03.09.2013, 17:05  [ТС]
Цитата Сообщение от logincyberforu Посмотреть сообщение
в таком случае решение невозможно. либо нужно вкачестве исходных параметров передать пункт отправки и назначения, где результатом может быть либо вариация путей либо кратчайший путь. либо в качестве исходного параметра нужно передать не сумму городов а конкретный город где в качестве результата может быть возвращено количество прямых сообщений.
а если я алгоритм обдумаю и напишу, сможете закодить? у меня есть мысль как это можно сделать, вроде всё реально
0
 Аватар для logincyberforu
30 / 31 / 0
Регистрация: 26.08.2013
Сообщений: 282
03.09.2013, 17:15
Shaggy74, упс не внимательно прочёл... в таком случае может быть возвращён только двумерный массив, где значения первого масива есть название города, а значения второй степени вариации путей, но таких вариаций будет уйма, так как каждый город соединён как минимум сдвумя городами (по идее) и при поиске путей количество членов второго масива будет возрастать пропорционально количестве 1 для данного города. То есть прога найдёт пути через все города с которыми данный город имеет дороги, но более того она найдёт и дороги через все вторые города и даже до нного количества кругов между двумя городами а затем путь к третьему, то есть результат будет огромен...

Добавлено через 5 минут
Shaggy74, наврятли ты сможеш обдумать такой алгоритм... в результате никак не может быть одна переменная, при общем количестве городов. то есть перефразирую тебя: если есть карта и 16783 городов то как мне проехать от неизвестно откуда в неизвестно куда? согласись звучит дико. Вероятно ты имел в виду рассчитать одной функцией кратчайший путь от начального города до конечного, но в таком случае асчёт будет только теоритическим... так как вместо 1 лучше написать расстояние между городами.


вобщемто я не полностью уловил суть вопроса.... вероятно
1
0 / 0 / 0
Регистрация: 03.09.2013
Сообщений: 9
03.09.2013, 17:25  [ТС]
сейчас попробую понятней изложить
вложил к сообщению картинку, сразу скажу что на скорую руку сделал, на картинке по сути изображена табличка с 1 поста только графически
задача в чём
из 1 города во второй можно попасть? -да
1-4-3-5-2
значит +1
из 1 города можно попасть в третий? -да
1-4-3
значит ещё +1
и так далее до пятого
следующий второй город:
из второго можно попасть в третий? -да
2-5-3
значит +1
и так далее к пятому
и так все города, а итог это всё что мы на складывали +1
у меня в голове есть идея алгоритма, но не могу в код реализовать
Миниатюры
Решение математических задач на PureBasic  
0
 Аватар для logincyberforu
30 / 31 / 0
Регистрация: 26.08.2013
Сообщений: 282
03.09.2013, 17:37
Shaggy74, добавь линию между городом 1 и 2 и получится пипец, - то есть из города 3 в город 4 можно будет попасть не только 3-4 но и 3-5-2-1-4. или 3-5-2-1-2-1-5 но этот вариант можно исключить... а если будет дорога межу городами 1 и5 то опять же 3-5-1-4, тут конечно на первый взгляд возникает мысль чем меньше городов тот результат и нужен, но что если количество городов равное? И не стоит забывать что функция получает только сколичество городов то есть в нашем примере 5 а что если нужно попасть из города 3 в город 4 ?
1
0 / 0 / 0
Регистрация: 03.09.2013
Сообщений: 9
03.09.2013, 17:40  [ТС]
Цитата Сообщение от logincyberforu Посмотреть сообщение
добавь линию между городом 1 и 2 и получится пипец, - то есть из города 3 в город 4 можно будет попасть не только 3-4 но и 3-5-2-1-4
а мне надо что бы считало за 1 путь, то есть если есть путь между 3 и 4 городами то прибавляет один, вне зависимости сколько путей
из города 3 в город 4 можно попасть напрямую, так же прибавляется один
в итоге не будет заоблочного результата
0
 Аватар для logincyberforu
30 / 31 / 0
Регистрация: 26.08.2013
Сообщений: 282
03.09.2013, 17:43
Shaggy74, то есть тебе сам путь не нужен, нужна только сумма всех возможных путей?
1
0 / 0 / 0
Регистрация: 03.09.2013
Сообщений: 9
03.09.2013, 17:45  [ТС]
да, путь не нужен, нужно число - количество пар городов между которыми реально построить путь
0
 Аватар для logincyberforu
30 / 31 / 0
Регистрация: 26.08.2013
Сообщений: 282
03.09.2013, 18:08
Shaggy74, тогда если не учитывая длину и при обязательном условии что из каждого города ведёт не менее двух дорог:
procedure way(summa) начинаем процедуру где в качестве исходного есть количество гороов
dim cyty(summa) создаём массив для хранения путей для конкретного города
for i=1 to summa начинаем цикл для данного города
w=0 обнуляем счётчик путей который остался от прошлого города
dim d = впихиваем в масив строку i
for ii=1 to summa запускаем цикл подсчёта путей из города
if d(ii)=1 если из города есть дорога к другому городу то
w=w+1 прибавляем к сумме дорог 1
next заканчиваем цикл подсчёта дорог для данного города
cyty(i)=w-1 присваем городу количество путей и вычитаем путь по которому мы приехали в него (дабы не делать круги)
next заканчиваем цикл присвоения количества дорог для городов
for i=1 to summa начинаем цикл общего подсчёта путей
total=total*cyty(i) сам процесс подсчёта путей так как кроме той дороги которая нас привела в определённый город есть ещё не менее одной дороги которая предложит не менее одной дороги.......... которая приведёт на к цели
next заканчиваем цикл общего подсчёта

результат будет приблизительным, я гдето забыл еденичку, то есть если города будут расположены в кольце то будет две дороги но функция вернёт 1, вроде
return total

что же касается самой идеи умножения исходящих дорог за вычетом одной, спорить не буду, проверь на примере 4х городов. Функция вернёт общее количество сумм всех возможных путей. (приблизительно грю же гдето 1 забыл) хотя зачем тебе такая инфа ума не приложу...
упс пар городов... ну по идее надо тогда число под корень загнать или на чтото разделить... но если из каждого города выходит минимум две дороги то алгоритм будет иной..
хотя загнался я уже...
1
0 / 0 / 0
Регистрация: 03.09.2013
Сообщений: 9
03.09.2013, 18:27  [ТС]
блин что-то реально слишком всё) попробую свои мысли сформулировать)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38171 / 21106 / 4307
Регистрация: 12.02.2012
Сообщений: 34,697
Записей в блоге: 14
03.09.2013, 21:09
Как много букв...

Это задача формулируется так: дана матрица смежности неориентированного графа. Нужно определить связен граф или нет.

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

Решения задач в Windows Form
Помогите с решением задач. Нужно срочно сдать для зачета, а у меня проблемы с Visual Basic. Прошу прощения за наглость, но я напишу много...

Решение задач с использованием рекурсии
Когда я обратился к поисковой системе, то я не нашёл ни одного упоминания о рекурсии. Испытав шок, я решил создать эту тему на QBasic....

Напишите коды в визуал бесик для решения задач
1)Дана сторона квадрата а. Найти его периметр Р=4*а 2)Дана сторона квадрата а. Найти его площадь. 3)Даны стороны прямоугольника a, б....

Решение задач на практику
Помогите решить 3,4,6,7 задачи На каждый вопрос создавайте по одной теме ...

Решение задач
помогите пожалуйста сделать первые 2 задания, никак не пойму и не могу понять, не могу сессию из-за этого закрыть. Запрещено размещать...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru