Форум программистов, компьютерный форум CyberForum.ru

По заданным параметрам ввести граф используя заданные правила - C++

Восстановить пароль Регистрация
 
LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
08.09.2014, 20:10     По заданным параметрам ввести граф используя заданные правила #1
По заданным параметрам 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

Вот что сам сделал точнее попытался сделать.

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
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    
    int a,b,c,d,n,x,i,j;
 
    cout<<"Введите параметры";
    cin>>a>>b>>c>>d;
    if 
        d mod 3=0 then 14
    else
    if d mod 3=1 then 13
    else
    if d mod 3=2 then 15
 for (i=1;i<10;i++) do
    for (j=1;j<10;j++) do
    if x=a*i+b*i/c mod d=<1
        then
        cout<<"Граф:"<<x;
    return 0;
}
Добавлено через 21 час 48 минут
Я просто застрял на выводе списков вершин и количестве рёбер.
То есть я правила описал в условном операторе,открыл циклы и уже по заданной формуле считаю и тогда лишь вывожу.

Точнее я так по алгоритму рассчитывал,но вижу что формулу или не туда впихиваю или зря циклы открыл.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2014, 20:10     По заданным параметрам ввести граф используя заданные правила
Посмотрите здесь:

С++ Ввести, используя списки два больших целых числа и выполнить арифметические операции(+,-,*,/) C++
Считать граф из файла (граф задан матрицей) представить его в виде списка и записать список заново в файл C++
ввести код мобильного оператора. Вывести его название и тариф . используя .Switch 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 то программа компилируется но не работает уже на вводе.

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
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <stdlib.h>
 
using namespace std;
 
void write(a,b,c,d,n)
{
    if (d % 3 == 0)
    n = 14;
  else
  if (d % 3 == 1) 
    n = 13;
  else
  if (d % 3 == 2)
    n = 15;
  cout<<"Количество вершин = " <<n;
}
 
void mnreber(a,b,c,d,n)
{
 int i, j, f;
  double k;
 
  for (i = 0 ;i<n;i++){
    for (j = 0;j<n;j++){
      k = ((a * i) + (b * j)) / c;
      f = floor(k);
      if (f % d<= 1) 
      {
        cout<<i<<' '<<j;
      }
      else
      cout<<"Пусто!";
}
}
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{   
  setlocale(LC_ALL,"Russian");
  int a,b,c,d,n;
  cout<<"Введите значения параметров";
  cout<<'a = ';
  cin>>a;
  cout<<'b = ';
  cin>>b;
  cout<<'c = ';
  cin>>c;
  cout<<'d = ';
  cin>>d;
  write(a,b,c,d,n);
  mnreber(a,b,c,d,n);
  system("pause");
    return 0;
}
LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
12.09.2014, 15:17  [ТС]     По заданным параметрам ввести граф используя заданные правила #3
Уже не нужно.
LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
17.09.2014, 22:27  [ТС]     По заданным параметрам ввести граф используя заданные правила #4
Снова актуально:

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
// laba_1.cpp: По заданным параметрам a,b,c,d ввести граф(список рёбер) использующие следующие правила
//Программа вводит вершины a,b,c,d и получает n(список рёбер)
 
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <stdlib.h>
 
using namespace std;
 
int MyArr[15][15];
 
void write(int a, int b,int c,int  d,int n)
{
    if (d % 3 == 0)
    n = 14;
  else
  if (d % 3 == 1) 
    n = 13;
  else
  if (d % 3 == 2)
    n = 15;
  cout<<"Количество вершин = " <<n;
}
 
void reber(int a, int b,int c,int  d,int n)
{
 int i, j, f;
  bool k;
 
  for (i = 0 ;i<n;i++){
    for (j = 0;j<n;j++){
      f = (a * i) + (b * j) / c;
      if (f % d<= 1) 
      {
        cout<<i<<' '<<j;
      }
      else
      cout<<"Пусто!";
}
}
for (i = 0 ;i<n;i++){
    for (j = 0;j<n;j++){
        if (MyArr[i, j] == MyArr[j, i])  k = true;
      else
        k = false;
  if (k = true) 
    cout<<"Неор";
  else
    cout<<"Ор";
    }
}
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{   
  setlocale(LC_ALL,"Russian");
  int a,b,c,d,n;
  cout<<"Введите значения параметров";
  cout<<'a = ';
  cin>>a;
  cout<<'b = ';
  cin>>b;
  cout<<'c = ';
  cin>>c;
  cout<<'d = ';
  cin>>d;
  write(a,b,c,d,n);
  reber(a,b,c,d,n);
  system("pause");
    return 0;
}
Программа компилируется но не считает,вот что на выходе:
Миниатюры
По заданным параметрам ввести граф используя заданные правила  
LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
18.09.2014, 21:24  [ТС]     По заданным параметрам ввести граф используя заданные правила #5
С вводом проблемы решил,но до конца не работает всё равно,вот что выдаёт(Внизу на рисунке)

Он не видит процедуру reber хотя она в main определена

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
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <stdlib.h>
 
using namespace std;
 
int a,b,c,d,n;
int MyArr[15][15];
 
void write(int a, int b,int c,int  d,int n)
{
    if (d % 3 == 0)
    n = 14;
  else
  if (d % 3 == 1)
    n = 13;
  else
  if (d % 3 == 2)
    n = 15;
  cout<<"Количество вершин = " <<n;
}
 
void reber(int a, int b,int c,int  d,int n)
{
 int i, j, f;
  bool k;
 for (i = 0 ;i<n;i++)
 {
    for (j = 0;j<n;j++)
    {
      f = (a * i) + (b * j) / c;
      if (f % d<= 1)
      {
        cout<<i<<' '<<j;
      }
      else
    cout<<"Пусто!";
}
}
for (i = 0 ;i<n;i++)
{
    for (j = 0;j<n;j++)
    {
        if (MyArr[i][j] == MyArr[j][i])  k = true;
      else
        k = false;
  if (k = true)
    cout<<"Неор";
  else
    cout<<"Ор";
    }
}
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{  
  setlocale(LC_ALL,"Russian");
  cout<<"Введите значения параметров\n";
  cout<<"a = ";
  cin>>a;
  cout<<"b = ";
  cin>>b;
  cout<<"c = ";
  cin>>c;
  cout<<"d = ";
  cin>>d;
  write(a,b,c,d,n);
  reber(a,b,c,d,n);
  system("pause");
    return 0;
}
Миниатюры
По заданным параметрам ввести граф используя заданные правила  
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4923 / 2666 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
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 строке присваивание вместо сравнения, для последнего используют оператор ==
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 1
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 и т.п.).
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 1
18.09.2014, 21:49     По заданным параметрам ввести граф используя заданные правила #8
Цитата Сообщение от MrGluck Посмотреть сообщение
В 48 строке присваивание
k уже логическая переменная. Зачем писать масло-масляное.
Пишем
C++
1
if(k)
LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
18.09.2014, 22:15  [ТС]     По заданным параметрам ввести граф используя заданные правила #9
Спасибо вам,заработало но проблемы уже с выводом

На 1-ом рисунке показано как должно выводить(код написанный на Паскале),а на 2-ом где всё вместе намешано,это уже моё))(при том что вводимые значения одинаковые),в чём еще может быть ошибка.

А глобальные переменные это иногда зло,но без них порой никак.
Миниатюры
По заданным параметрам ввести граф используя заданные правила   По заданным параметрам ввести граф используя заданные правила  
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4923 / 2666 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
18.09.2014, 23:32     По заданным параметрам ввести граф используя заданные правила #10
Цитата Сообщение от LaMusic Посмотреть сообщение
А глобальные переменные это иногда зло,но без них порой никак.
В вашем случае ещё "как".
LaMusic, исправленный код выложите, телепаты в отпуске.
LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
20.09.2014, 21:11  [ТС]     По заданным параметрам ввести граф используя заданные правила #11
Вот код.Считает правильно а вот вывод хромает,пытался вчера и сегодня сам разобрать,уже циклы закрывал и открывал в других местах но всё равно всё вперемешку.

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
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <stdlib.h>
 
using namespace std;
 
int a,b,c,d,n;
int MyArr[15][15];
 
void write()
{
    if (d % 3 == 0)
    n = 14;
  else
  if (d % 3 == 1) 
    n = 13;
  else
  if (d % 3 == 2)
    n = 15;
  cout<<"Количество вершин = " <<n;
}
 
void reber()
{
 int i, j, f;
  bool k;
 for (i = 0 ;i<n;i++)
 {
    for (j = 0;j<n;j++)
    {
      f = (a * i) + (b * j) / c;
      if (f % d<= 1) 
      {
        cout<<' '<<i;
        cout<<' '<<j;
      }
      else
    cout<<"Пусто!";
}
}
for (i = 0 ;i<n;i++)
{
    for (j = 0;j<n;j++)
    {
        if (MyArr[i][j] == MyArr[j][i])  k = true;
      else
        k = false;
  if (k = true) 
    cout<<"Неор";
  else
    cout<<"Ор";
    }
}
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{   
  setlocale(LC_ALL,"Russian");
  cout<<"Введите значения параметров\n";
  cout<<"a = ";
  cin>>a;
  cout<<"b = ";
  cin>>b;
  cout<<"c = ";
  cin>>c;
  cout<<"d = ";
  cin>>d;
  write();
  reber();
  system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2014, 20:16     По заданным параметрам ввести граф используя заданные правила
Еще ссылки по теме:

Написать программу, которая будет выводить значения АЧХ и ФЧХ по заданным параметрам C++
C++ Генератор квадрата из звездочек по заданным параметрам
C++ Ввести из файла неориентированный нагруженный граф в список смежности, используя вектор векторов

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

Или воспользуйтесь поиском по форуму:
LaMusic
34 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 34
24.09.2014, 20:16  [ТС]     По заданным параметрам ввести граф используя заданные правила #12
Можно закрывать)
Yandex
Объявления
24.09.2014, 20:16     По заданным параметрам ввести граф используя заданные правила
Ответ Создать тему
Опции темы

Текущее время: 07:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru