powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создание и использование модулей в С++
4 сообщений из 4, страница 1 из 1
Создание и использование модулей в С++
    #32822566
magnolija
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно создать файл с арифметическими операциями
пример функция вычисления суммы чисел A и B длины n

Число представляется как массив

Вот что я делала:

1. Создала такой файл с телом модуля digits.c

#include "digits.h"
DIGIT Add(DIGIT C[], const DIGIT A[], const DIGIT B[], int n)
{
TWODIGIT T;
DIGIT d = 0;
int i;
for (i = 0; i < n; i++)
{
T = (TWODIGIT)A[ i ] + B[ i ] + d;
C[ i ] = LODIGIT(T);
d = HIDIGIT(T);
}
return d; }

2. Заголовочный файл модуля digits.h:

#ifndef DIGITS_H
#define DIGITS_H 1

#define LODIGIT(T)((DIGIT)(T))
#define HIDIGIT(T)((DIGIT)((T)>>8))

typedef unsigned __int8 DIGIT;
typedef unsigned __int16 TWODIGIT;

DIGIT Add(DIGIT C[], const DIGIT A[], const DIGIT B[], int n);

#endif

3. основная программа:

#include <iostream>
#include <conio.h>
#include "digits.h"

void main() {
const int N=5;
DIGIT REZ[N];
DIGIT PIR[N];
DIGIT ANT[N];

cout << "vvod pervogo cisla:\n";
int ch;
for(int i=0;;i++){
cin>>ch;
if(ch==-1)break;
PIR[ i ]=ch;
};

cout << "vvod vtorogo cisla:\n";
//cin >> str2;
for(int i=0;;i++){
cin>>ch;
if(ch==-1)break;
ANT[ i ]=ch;
};

DIGIT Add(REZ, PIR, ANT, N);

cout << "Rezultat: ";
int k=0;
for (int i=N-1;i>=k;i--) //vyvod rezultata;
{ cout <<int(REZ[ i ])<<' '; }
cout << "\n";
}
getch();}

Помогите разобраться что сделано не так.
...
Рейтинг: 0 / 0
Создание и использование модулей в С++
    #32822745
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
// digits.h
#ifndef DIGITS_H
#define DIGITS_H

#define LODIGIT(T)((DIGIT)(T))
#define HIDIGIT(T)((DIGIT)((T)>> 8 ))

typedef unsigned __int8 DIGIT;
typedef unsigned __int16 TWODIGIT;

#ifdef __cplusplus
extern "C" {
#endif
DIGIT Add(DIGIT C[], const DIGIT A[], const DIGIT B[], int n);
#ifdef __cplusplus
}
#endif
#endif 

// main.cpp
#include <iostream>
#include <conio.h>
#include "digits.h"

void main() {
const int N= 5 ;
DIGIT REZ[N];
DIGIT PIR[N];
DIGIT ANT[N];

std::cout << "vvod pervogo cisla:\n";
int ch;
for(int i= 0 ;;i++){
std::cin>>ch;
if(ch==- 1 )break;
PIR[ i ]=ch;
};

std::cout << "vvod vtorogo cisla:\n";
//cin >> str2;
for(int i= 0 ;;i++){
std::cin>>ch;
if(ch==- 1 )break;
ANT[ i ]=ch;
};

// DIGIT Add(REZ, PIR, ANT, N);

std::cout << "Rezultat: ";
int k= 0 ;
for (int i=N- 1 ;i>=k;i--) //vyvod rezultata;
{ std::cout <<int(REZ[ i ])<<' '; }
std::cout << "\n";
}
getch();
}

В смысл обработки я не вникал.
...
Рейтинг: 0 / 0
Создание и использование модулей в С++
    #32822793
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я поставил комментарий на строку
// DIGIT Add(REZ, PIR, ANT, N);
подумав, что Вы вводите декларацию функции, а Вы видимо хотели функцию вызвать. Тогда так:
Код: plaintext
Add(REZ, PIR, ANT, N);

зы: И впредь, чтобы получить ответ на вопрос, надо его сначала задать, иначе понять с чем же у Вас проблемы крайне затруднительно.
...
Рейтинг: 0 / 0
Создание и использование модулей в С++
    #32824442
magnolija
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но у меня выкидывает ошибку Unresolved external 'Add'
Как ее исправить?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создание и использование модулей в С++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]