Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 23
1

Структурное программирование - проверить корректность кода

28.10.2015, 09:14. Показов 527. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет форумчане!Прошу вашей помощи!Есть программа полностью работающая,но в самом конце программы преподаватель говорит,что записано не правильно функция,а по моему это так и должно быть!Помогите разобраться!Код прилагаю!Получается,в последней части программы где "инициализация целого числа",мне говорят,что функция написанная там не верна,помогите разобраться,так ли это или нет!Заранее спасибо,респект и уважуха!
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#include "stdio.h"
#include "math.h"
 
int n = (4 % 15) + 10;
char sys[]="0123456789ABCDEFGHIJKLMNO";
 
// Заполнение массива значениями '0'
int DigitClean(int* msNum)
{
  int i;
  
  for(i = 0; i < 10; i++)
    msNum[i] = 0;
 
  return *msNum;    
}
// Печать цифры в системе с основанием N
void _printfChar(int k, int notation)
{
  if (!((k >= 0) && (k < notation)))
    k = 0;
 
  printf("%c", sys[k]);
}
// Вывод числа на экран
void printnumber(int* msNum, int notation)
{
  int i;
  
  for(i = 0; i < 10; i++)
    _printfChar(msNum[i], n);
}
// Копирование числа
void Copy(int* Dest, int* To)
{
  int i;
  
  for(i = 0; i < 10; i++)
    To[i] = Dest[i];
}
// Сумма чисел
int* Sum(int* Dest, int* To)
{
  int i, Res[10];
  int* pRes = &Res[0];
  
  *pRes = DigitClean(pRes);
 
  for(i = 9; i > 0; i--)
  {
    pRes[i] = pRes[i] + Dest[i] + To[i];
    
    if ((pRes[i] >= n) && (i > 0))
    {
      pRes[i] = pRes[i] - n;
      pRes[i - 1] = pRes[i - 1] + 1; 
    }     
  }
  
  return pRes;
}
// Разность чисел
int* Substraction(int* Dest, int* To)
{
  int i, Res[10];
  int* pRes = &Res[0];
  
  *pRes = DigitClean(pRes);
  
  for(i = 9; i >= 1; i--)
  {
    pRes[i] = (Dest[i] + pRes[i]) - To[i];
    
    if ((pRes[i] < 0) && (i > 0))
    {
      pRes[i] = n + pRes[i];
      pRes[i - 1] = pRes[i - 1] - 1;
    }
  }
  
  return pRes;
}
// Перевод из N'осн в осн10
int NToDigit(char* Dest, int Notation)
{
  int k, j, Ind, res = 0;
 
  for(k = 9; k >= 0; k--)
  {
    Ind = -1;
 
    for(j = 0; ((j < Notation) && (Ind == -1)); j++)
      if (Dest[k] == sys[j])
        Ind = j;
 
    if (Ind != -1)
      res = res + ( (Ind) * ((int)pow(Notation, 10 - (k + 1))) );
  }  
  
  return res;
}
// Перевод из 10'осн в оснN
int DigitToN(int x, char *m, int Notation)
{
  int k, i = -1, res = x;
  int buf[10]; 
 
  for(k = 0; k < 10; k++)
    buf[k] = 0;
    
  while(res >= Notation)
  {
    i++;
    buf[i] = res % Notation;
    res = res / Notation;
  }
  
  buf[i + 1] = res;
  
  for(k = 0; k < 10; k++)
    m[k] = sys[buf[9 - k]];
    
  return *m;
}
 
main()
{
  char NumN[10], *pNumN = &NumN[0];
  int Num1[10], Num2[10], i, a, b;
  int *pNum1 = &Num1[0], *pNum2 = &Num2[0];
 
  printf("Основание системы счисления %i\n", n);
  
  *pNum1 = DigitClean(pNum1); 
  Num1[9] = 7; //7; 1
  Num1[8] = 1; //7; 1
  
  printf("\nЧисло в %iй системе: ", n);
  printnumber(pNum1, n);  
  
  Copy(pNum1, pNum2);
  printf("\nРузультат копирования: ");  
  printnumber(pNum2, n); 
  
  *pNum2 = DigitClean(pNum2);  
  
  Num2[9] = 7; // 10
  
  printf("\n\nA = ");
  printnumber(pNum1, n);  
 
  printf("\nB = ");
  printnumber(pNum2, n);  
 
  printf("\nРезультат сложения A + B: ");
  printnumber(Sum(pNum1, pNum2), n);
 
  printf("\nРезультат вычитания A - B: ");
  printnumber(Substraction(pNum1, pNum2), n); 
 
  // Инициализация целого числа
  a = 115;  
  *pNumN = DigitToN(a, pNumN, n);
  b = NToDigit(pNumN, n);
  
  printf("\n%i -> %s -> %i", a, pNumN, b);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2015, 09:14
Ответы с готовыми решениями:

Проверить корректность кода работы с указателями
Всем добра! Есть тупой вопрос. Например, такая вот функция на C, которая должна что-то сделать с...

Создать электронный учебник на тему "структурное программирование"
у меня такая проблема, нужно составить электронный учебник на тему структурное программирование в...

Проверить корректность решения задач
1)Ввести последовательность символов, заканчивающуюся '@'. Распечатать только те из них, которые...

Проверить корректность объявления переменных, указателей
Имеется программа на С - #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; void...

2
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
28.10.2015, 09:20 2
Возможно верно, возможно нет. Сам код рабочий (не без ляпов конечно). Формулу в студию, если не сложно.
0
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 23
28.10.2015, 16:42  [ТС] 3
Какую именно формулу надо!?И если быть точнее,то мне говорят,что там записана совсем не инициализация целого числа!Вот я и спрашиваю,что именно там записано и как верно записать,эту инициализацию
З.Ы код не мой просто(покупной)
0
28.10.2015, 16:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2015, 16:42
Помогаю со студенческими работами здесь

Проверить корректность реализации динамического массива
Проверьте пожалуйста или я правильно сделал динамический массив!! #include&lt;iostream.h&gt;...

Проверить корректность составления блок-схемы
Правильно ли я составил блок-схему? для программы: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...

Проверить корректность реализации односвязного списка
Проверьте код, кому не сложно. Задача была реализовать односвязной список: функции создания,...

Списки; разобрать код и проверить комментарии на корректность
Имеется функция для работы со связанными списками. Мне не понятно что если второе значение...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru