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

Внешний интерфейс - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 18:56     Внешний интерфейс #1
Здравствуйте, помогите написать программу с использованием внешнего интерфейса для программы:
Все четные элементы целочисленного массива К(п) поместить в массив L(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
59
60
61
62
63
64
65
66
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
main() 
{
    int n,ch,nech;
    system("chcp 1251");                 
    system("cls");
    cout<<"Кол-во элементов массива: ";
    cin>>n;
    int *p=new int[n];          // выделение памяти под n элементов
    cout<<endl<<"\tВведите элементы массива\n";
    for (int i = 0; i < n; i++)
    {
        cin>>*(p+i);cout<<setw(2);
    }
 
    ch=0;nech=0;
    for (int i = 0; i < n; i++)
    {
        if (*(p+i)%2)                // проверка на нечетность элемента
        {
            nech++;                // подсчитывание кол-ва нечетных элементов
        }
        if (!(*(p+i)%2) && p[i]!=0)  // проверка на четность элемента
        {
            ch++;                  // подсчитывание кол-ва четных элментов
        }
    }
 
    int *p1=new int[nech];      // выделение памяти для нечетных элементов
    int *p2=new int[ch];       // выделение памяти для четных элементов
    ch=0;nech=0;
 
    for (int i = 0; i < n; i++)
    {
        if (*(p+i)%2)             // проверка на нечетность элемента
        {
            *(p1+nech)=*(p+i);
            nech++;              // подсчитывание кол-ва нечетных элментов
        }
        if (!(*(p+i)%2) && *(p+i)!=0)        // проверка на четность элемента
        {
            *(p2+ch)=*(p+i);
            ch++;              // подсчитывание кол-ва четных элментов
        }
        
    }
    
    cout<<"\nКол-во нечетных элементов : "<<nech;
    cout<<"\nМассив из нечетных элементов: ";
    for (int i = 0; i <= nech-1; i++)
    {
        cout<<setw(3)<<*(p1+i);     
    }
 
    cout<<"\n\nКол-во четных элементов : "<<ch;
    cout<<"\nМассив из четных элементов: ";
    for (int i = 0; i <= ch-1; i++)
    {
        cout<<setw(3)<<*(p2+i);
    }
    cout<<"\n\n";
    system("pause");
    delete(p); delete(p1); delete(p2);
}
1.Входные данные должны вводиться из файла.
2.Выходные данные должны выводиться в файл.
3.Обеспечить в программе многовариантную обработку данных, т.е. во входном файле должны находиться не один вариант данных, а любое количество вариантов данных.
4.В выходном файле должны находиться все варианты данных в соответствии с входным файлом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2012, 18:56     Внешний интерфейс
Посмотрите здесь:

C++ Неразрешенный внешний символ
C++ Внешний файл
C++ Внешний файл
C++ Неразрешенный внешний символ
неразрешенный внешний элемент C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
23.06.2012, 19:34     Внешний интерфейс #2
FILE
fopen
fscanf
fprintf

религия запрещает использовать?)
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 20:14  [ТС]     Внешний интерфейс #3
Цитата Сообщение от Invader_Zim Посмотреть сообщение
FILE
fopen
fscanf
fprintf
fscanf на замену cin
fprintf на замену cout
а куда подставить FILE, fopen?
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
23.06.2012, 20:16     Внешний интерфейс #4
Цитата Сообщение от Invader_Zim Посмотреть сообщение
FILE
fopen
fscanf
fprintf

религия запрещает использовать?)
Форум по C++. Зачем использовать Си? STL намного удобнее, имхо
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
23.06.2012, 20:18     Внешний интерфейс #5
Книжку по Си открой и узри, что FILE это структура, fopen открывает файл

Добавлено через 1 минуту
zulkis, Кому как. Мне нравятся Сишные функции)
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 20:34  [ТС]     Внешний интерфейс #6
Invader_Zim, вопрос был куда их подставить, в какое место? Если не трудно, подставьте в программу
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
23.06.2012, 20:44     Внешний интерфейс #7
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
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
FILE *F1;
main() 
{
    F1=fopen("1.txt","r");
    int n,ch,nech;
    system("chcp 1251");                 
    system("cls");
    int *p=new int[n];
    int i=0;
    while(!feof(F1)||i<n)
    {
       fscanf(F1,"%d",p[i]);
       i++;
    }
 if(i-n!=1)
    n=i+1;
    ch=0;nech=0;
    for (int i = 0; i < n; i++)
    {
        if (*(p+i)%2)                // проверка на нечетность элемента
        {
            nech++;                // подсчитывание кол-ва нечетных элементов
        }
        if (!(*(p+i)%2) && p[i]!=0)  // проверка на четность элемента
        {
            ch++;                  // подсчитывание кол-ва четных элментов
        }
    }
 
    int *p1=new int[nech];      // выделение памяти для нечетных элементов
    int *p2=new int[ch];       // выделение памяти для четных элементов
    ch=0;nech=0;
 
    for (int i = 0; i < n; i++)
    {
        if (*(p+i)%2)             // проверка на нечетность элемента
        {
            *(p1+nech)=*(p+i);
            nech++;              // подсчитывание кол-ва нечетных элментов
        }
        if (!(*(p+i)%2) && *(p+i)!=0)        // проверка на четность элемента
        {
            *(p2+ch)=*(p+i);
            ch++;              // подсчитывание кол-ва четных элментов
        }
        
    }
//а тут печать в файл. Ради воспитательного эффекта не пишу)
    system("pause");
    delete(p); delete(p1); delete(p2);
}
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 21:06  [ТС]     Внешний интерфейс #8
Цитата Сообщение от Invader_Zim Посмотреть сообщение
//а тут печать в файл. Ради воспитательного эффекта не пишу)
по идее fprintf("C:\temp\1.txt","r");, т.е. запись в файл, заданный путем, но не хочет
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
23.06.2012, 21:08     Внешний интерфейс #9
Цитата Сообщение от flock Посмотреть сообщение
по идее fprintf("C:\temp\1.txt","r");, т.е. запись в файл, заданный путем, но не хочет
По вашему то, что написали - как должно работать?
fprintf - не судьба?
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 21:10  [ТС]     Внешний интерфейс #10
zulkis, не знаю, плохо разбираюсь в С++
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 21:14  [ТС]     Внешний интерфейс #11
Invader_Zim, посоветуйте хорошую книгу или сайт по С++ для понятия новичку
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
23.06.2012, 21:20     Внешний интерфейс #12
flock, Дейтел и Дейтел: Как программировать на С++
Герберт Шилдт Полный справочник по с++
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 21:27  [ТС]     Внешний интерфейс #13
Invader_Zim, спасибо, посмотрю
а как все же вывести?
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
23.06.2012, 21:30     Внешний интерфейс #14
flock,
C++
1
2
for(int i=0;i<n;i++)
    fprintf(F1,"%d",p[i]);
а ларчик просто открывался)
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 21:36  [ТС]     Внешний интерфейс #15
Invader_Zim, не хочет запускаться
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
23.06.2012, 21:37     Внешний интерфейс #16
flock, Ошибку в студию!
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 21:47  [ТС]     Внешний интерфейс #17
При запуске выскакивает окно и сообщение:"Project1 Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004011D8. Read of address 00000012'.Process stopped. Use Step or Run to continue." Окно просто так не закрывается, только принудительно

Посмотрите, пожалуйста, еще раз, может какой косяк есть:
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
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
FILE *F1;
main()
{
    F1=fopen("C:\temp\1.txt","r");
    int n,ch,nech;
    system("chcp 1251");
    system("cls");
    int *p=new int[n];
    int i=0;
    while(!feof(F1)||i<n)
    {
       fscanf(F1,"%d",p[i]);
       i++;
    }
 if(i-n!=1)
    n=i+1;
    ch=0;nech=0;
    for (int i = 0; i < n; i++)
    {
        if (*(p+i)%2)                // i?iaa?ea ia ia?aoiinou yeaiaioa
        {
            nech++;                // iian?eouaaiea eie-aa ia?aoiuo yeaiaioia
        }
        if (!(*(p+i)%2) && p[i]!=0)  // i?iaa?ea ia ?aoiinou yeaiaioa
        {
            ch++;                  // iian?eouaaiea eie-aa ?aoiuo yeiaioia
        }
    }
 
    int *p1=new int[nech];      // auaaeaiea iaiyoe aey ia?aoiuo yeaiaioia
    int *p2=new int[ch];       // auaaeaiea iaiyoe aey ?aoiuo yeaiaioia
    ch=0;nech=0;
 
    for (int i = 0; i < n; i++)
    {
        if (*(p+i)%2)             // i?iaa?ea ia ia?aoiinou yeaiaioa
        {
            *(p1+nech)=*(p+i);
            nech++;              // iian?eouaaiea eie-aa ia?aoiuo yeiaioia
        }
        if (!(*(p+i)%2) && *(p+i)!=0)        // i?iaa?ea ia ?aoiinou yeaiaioa
        {
            *(p2+ch)=*(p+i);
            ch++;              // iian?eouaaiea eie-aa ?aoiuo yeiaioia
        }
 
    } 
     fprintf(F1,"%d",p[i]);               //a ooo ia?aou a oaee. ?aae ainieoaoaeuiiai yooaeoa ia ieoo)
    system("pause");
    delete(p); delete(p1); delete(p2);
}
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
23.06.2012, 22:33     Внешний интерфейс #18
flock, Грубый доступ. Самая коварная ошибка. Ищется тяжело. надо посмотреть, где есть выход за пределы массива
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 23:32  [ТС]     Внешний интерфейс #19
Invader_Zim, а что значит выход за пределы массива?попытка использования больше памяти, чем доступно? и как этого избежать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2012, 23:44     Внешний интерфейс
Еще ссылки по теме:

Неразрешенный внешний символ C++
неразрешенный внешний символ C++
C++ c++ ссылка на внешний символ

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

Или воспользуйтесь поиском по форуму:
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
23.06.2012, 23:44     Внешний интерфейс #20
flock, Этого можно избежать только когда следиш чтобы небыло такой ситуации:
C++
1
2
int a[3];
a[5]=5;
Но это в общем случае. Бывает что такая запись канает)
Yandex
Объявления
23.06.2012, 23:44     Внешний интерфейс
Ответ Создать тему
Опции темы

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