Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
#1

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

23.06.2012, 18:56. Просмотров 1449. Ответов 34
Метки нет (Все метки)

Здравствуйте, помогите написать программу с использованием внешнего интерфейса для программы:
Все четные элементы целочисленного массива К(п) поместить в массив 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.В выходном файле должны находиться все варианты данных в соответствии с входным файлом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2012, 18:56
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Внешний интерфейс (C++):

Внешний файл
есть программа нужно, чтобы она брала данные через внешний файл #include...

Внешний файл
Нужно, чтобы: 1 программа:Брала числа из внешнего файла 2 программа:Брала...

интерфейс
qt, winAPI, wxWidgets, winForms, MFC... что там еще можно использовать для...

Интерфейс
Задание по практике состоит из программ на си. Нужно написать интерфейс, где...

Интерфейс в с++
Нужно использовать интерфейс. От которого будут наследоваться несколько...

Неразрешенный внешний символ
Кароч дело в том что вечно видает ошибку в MFC1&gt;Figure.obj : error LNK2019:...

34
Invader_Zim
Twilight Parasite
153 / 149 / 7
Регистрация: 21.07.2011
Сообщений: 908
23.06.2012, 19:34 #2
FILE
fopen
fscanf
fprintf

религия запрещает использовать?)
0
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?
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
23.06.2012, 20:16 #4
Цитата Сообщение от Invader_Zim Посмотреть сообщение
FILE
fopen
fscanf
fprintf

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

Добавлено через 1 минуту
zulkis, Кому как. Мне нравятся Сишные функции)
0
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 20:34  [ТС] #6
Invader_Zim, вопрос был куда их подставить, в какое место? Если не трудно, подставьте в программу
0
Invader_Zim
Twilight Parasite
153 / 149 / 7
Регистрация: 21.07.2011
Сообщений: 908
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);
}
1
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 21:06  [ТС] #8
Цитата Сообщение от Invader_Zim Посмотреть сообщение
//а тут печать в файл. Ради воспитательного эффекта не пишу)
по идее fprintf("C:\temp\1.txt","r");, т.е. запись в файл, заданный путем, но не хочет
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
23.06.2012, 21:08 #9
Цитата Сообщение от flock Посмотреть сообщение
по идее fprintf("C:\temp\1.txt","r");, т.е. запись в файл, заданный путем, но не хочет
По вашему то, что написали - как должно работать?
fprintf - не судьба?
0
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 21:10  [ТС] #10
zulkis, не знаю, плохо разбираюсь в С++
0
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 21:14  [ТС] #11
Invader_Zim, посоветуйте хорошую книгу или сайт по С++ для понятия новичку
0
Invader_Zim
Twilight Parasite
153 / 149 / 7
Регистрация: 21.07.2011
Сообщений: 908
23.06.2012, 21:20 #12
flock, Дейтел и Дейтел: Как программировать на С++
Герберт Шилдт Полный справочник по с++
1
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 21:27  [ТС] #13
Invader_Zim, спасибо, посмотрю
а как все же вывести?
0
Invader_Zim
Twilight Parasite
153 / 149 / 7
Регистрация: 21.07.2011
Сообщений: 908
23.06.2012, 21:30 #14
flock,
C++
1
2
for(int i=0;i<n;i++)
    fprintf(F1,"%d",p[i]);
а ларчик просто открывался)
0
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 21:36  [ТС] #15
Invader_Zim, не хочет запускаться
0
Invader_Zim
Twilight Parasite
153 / 149 / 7
Регистрация: 21.07.2011
Сообщений: 908
23.06.2012, 21:37 #16
flock, Ошибку в студию!
0
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);
}
0
Invader_Zim
Twilight Parasite
153 / 149 / 7
Регистрация: 21.07.2011
Сообщений: 908
23.06.2012, 22:33 #18
flock, Грубый доступ. Самая коварная ошибка. Ищется тяжело. надо посмотреть, где есть выход за пределы массива
1
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
23.06.2012, 23:32  [ТС] #19
Invader_Zim, а что значит выход за пределы массива?попытка использования больше памяти, чем доступно? и как этого избежать?
0
Invader_Zim
Twilight Parasite
153 / 149 / 7
Регистрация: 21.07.2011
Сообщений: 908
23.06.2012, 23:44 #20
flock, Этого можно избежать только когда следиш чтобы небыло такой ситуации:
C++
1
2
int a[3];
a[5]=5;
Но это в общем случае. Бывает что такая запись канает)
0
23.06.2012, 23:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2012, 23:44
Привет! Вот еще темы с решениями:

неразрешенный внешний элемент
Помогите пожалуйста. Пробую писать на C++ написал лабу с помощью функций, по...

Неразрешенный внешний символ
Привет всем, помогите исправить ошибку: Ошибка 1 error LNK2001: неразрешенный...

Неразрешенный внешний символ
Ошибка LNK1120 неразрешенных внешних элементов: 1 Ошибка LNK2019 ссылка на...

Неразрешенный внешний символ
Здравствуйте! Недавно скачала библиотеку DocxFactory и решила, собственно,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru