LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
|
||||||
#1 | ||||||
По заданным параметрам ввести граф используя заданные правила - C++08.09.2014, 20:10. Просмотров 504. Ответов 11
Метки нет Все метки)
(
По заданным параметрам a,b,c,d ввести граф(список рёбер) использующие следующие правила h={14,если d mod 3=0; 13,если d mod 3=1; 15,если d mod 3=2;}
Программа вводит вершины a,b,c,d и получает n(список вершин) и количество рёбер. (i,j) Э x a*i+b*j/c mod d=<1 Вот что сам сделал точнее попытался сделать.
Я просто застрял на выводе списков вершин и количестве рёбер. То есть я правила описал в условном операторе,открыл циклы и уже по заданной формуле считаю и тогда лишь вывожу. Точнее я так по алгоритму рассчитывал,но вижу что формулу или не туда впихиваю или зря циклы открыл.
0
|
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
08.09.2014, 20:10 |
Я подобрал для вас темы с готовыми решениями и ответами на вопрос По заданным параметрам ввести граф используя заданные правила (C++):
11
Ввести из файла неориентированный нагруженный граф в список смежности, используя вектор векторов - C++
Поиск в базе автомобилей по заданным параметрам - C++ По заданным параметрам (диаметра и длины) найти вес арматуры - C++ Написать программу, которая будет выводить значения АЧХ и ФЧХ по заданным параметрам - C++ Проверить, является ли ориентированный граф, с заданным количеством узлов и рёбер, деревом - C++ |
LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
|
||||||
10.09.2014, 11:07 [ТС] | #2 | |||||
Ругается на a,b,c,d,n которые в скобках,но убрать их не получается так как в главной программе я хочу вывести их результаты,которые я считаю в процедура mnreber.
и такой вид ошибки в строках 12 и 25 - write: вероятно, инициализатор, использующий стиль функции, является определением функции. Но если я например удалю из скобок буквы a,b,c,d,n то программа компилируется но не работает уже на вводе.
0
|
LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
|
|
12.09.2014, 15:17 [ТС] | #3 |
Уже не нужно.
0
|
LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
|
||||||
17.09.2014, 22:27 [ТС] | #4 | |||||
Снова актуально:
0
|
LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
|
||||||
18.09.2014, 21:24 [ТС] | #5 | |||||
С вводом проблемы решил,но до конца не работает всё равно,вот что выдаёт(Внизу на рисунке)
Он не видит процедуру reber хотя она в main определена
0
|
MrGluck
Модератор
![]() ![]() 7727 / 4763 / 731
Регистрация: 29.11.2010
Сообщений: 13,014
|
|
18.09.2014, 21:37 | #6 |
При передачи в функцию переменной по значению, внутри функции ведётся работа с её локальной копией, оригинал остаётся неизменным.
При объявлении локальных переменных (а это происходит при объявлении параметров функции) с теми же именами, что и глобальные переменные, при работе компилятор отдаёт предпочтение локальным. (Что стандарт по этому поводу говорит я искать ленюсь, сообщаю лишь результаты, основанные на опыте работы с gcc и VS). У вас глобальные переменные a, b, c, d, n не меняются. Вот так вот вы и узнали, что глобальные переменные - зло. Перенесите объявление a, ... n в main и сделайте передачу в функции переменных, которые должны меняться по ссылке. Хотя в функции write, например, вы могли бы и возвращать значение, записывая его в n. Название правда функций у вас неочевидное, впрочем как и переменных. Однако, если названия a, b, c, d - неинформативные, то вот write должен вести запись куда-либо во внешний источник. Добавлено через 1 минуту В 48 строке присваивание вместо сравнения, для последнего используют оператор ==
0
|
zss
Модератор
![]() |
|
18.09.2014, 21:43 | #7 |
Можно
void write(int a, int b,int c,int d,int n) заменить на void write() void reber(int a, int b,int c,int d,int n) - на void reber() А переменные оставить глобальными. Хотя так делать не рекомендуется. Глобальными переменные делаются в исключительных случаях, но тогда им даются осмысленные имена (Velosity, Pi и т.п.).
0
|
LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
|
|
18.09.2014, 22:15 [ТС] | #9 |
Спасибо вам,заработало но проблемы уже с выводом
На 1-ом рисунке показано как должно выводить(код написанный на Паскале),а на 2-ом где всё вместе намешано,это уже моё))(при том что вводимые значения одинаковые),в чём еще может быть ошибка. А глобальные переменные это иногда зло,но без них порой никак.
0
|
MrGluck
Модератор
![]() ![]() 7727 / 4763 / 731
Регистрация: 29.11.2010
Сообщений: 13,014
|
|
18.09.2014, 23:32 | #10 |
В вашем случае ещё "как".
LaMusic, исправленный код выложите, телепаты в отпуске.
0
|
LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
|
||||||
20.09.2014, 21:11 [ТС] | #11 | |||||
Вот код.Считает правильно а вот вывод хромает,пытался вчера и сегодня сам разобрать,уже циклы закрывал и открывал в других местах но всё равно всё вперемешку.
0
|
LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
|
|
24.09.2014, 20:16 [ТС] | #12 |
Можно закрывать)
0
|
24.09.2014, 20:16 | |
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
24.09.2014, 20:16 |
Привет! Вот еще темы с ответами:
12
Используя вектор и заданные алгоритмы, выполнить указанную задачу - C++
Используя заданные разделители продублировать слова-палиндромы через один пробел - C++ Используя стандартные правила шахматной игры, определить бьют фигуры друг друга или нет - C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |