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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.68
Bi-2
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 17
#1

Записать результаты проги в файл - C++

11.04.2010, 12:34. Просмотров 2676. Ответов 1
Метки нет (Все метки)

есть пр-ма выполняющая перемножение эл-ов под четными номерами, подсчет суммы элементов между 1-м и последним нулевыми элементами и преобразования массива (сначала отрицательные потом положительные)
программа выполняется...работает.....собственно нужно вывести результаты ее(программы) выполнения в файл...т.е. все как в 'черном окне'...записать в текстовый файл!....help!
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
#include <iostream.h>                          //Подключаем библиотеку функций ввода-вывода
  
const int nmax = 100;                          //Задаем постоянную - максимальное кол-во элементов в массиве
//Объявляем процедуры и функции
float chetnproizv(int, float[]);               //функция подсчета произведения четных элементов
int vvod(float[]);                             //функция ввода массива
void summezdu0(int, float[]);                  //процедура подсчета суммы элементов между 1-м и последним нулевыми элементами
void preobrmas(int, float[], float[]);         //процедура преобразования массива (сначала отрицательные потом положительные)
 
//главная функция программы
void main()
{
    //Объявление переменных
    int i;                                     //счетчик цикла
    int n;                                     //Количество элементов в массиве
    float V[nmax];                             //исходный массив вещественных чисел
    float V1[nmax];                            //преобразованный массив вещественных чисел
    float p;                                   //Произведение четных элементов массива
    n = vvod(V);                               //вызов функции ввода массива
    p = chetnproizv(n, V);                     //вызов функции подсчета произведения четных элементов
    cout<<"Proizvedenie chetnih elementov = "<<p<<endl;  //вывод произведения четных элементов
    summezdu0(n, V);                           //вызов функции подсчета суммы эл-тов между крайними нулями
    cout<<"Ishodnii massiv:"<<endl;            //вывод "Исходный массив"
    for (i=0; i<n; i++)                        //с помощью цикла
        cout<<V[i]<<"  ";                      //выводим все элементы исходного массива
    cout<<endl;                                //переход на следующую строку
    preobrmas(n, V, V1);                       //вызов функции преобразования массива (сначала отрицательные, затем положительные)
    cout<<"Preobrazovannii massiv:"<<endl;     //вывод "Преобразованный массив"
    for (i=0; i<n; i++)                        //с помощью цикла
        cout<<V1[i]<<"  ";                     //выводим все элементы преобразованного массива
    cout<<endl;                                //переход на следующую строку
 
}
 
//функция ввода элементов массива
//выходные параметры:
//n - число элементов массива
//V - массив вещественных чисел
int vvod(float V[nmax])
{
    int i;                                     //переменная цикла
    int n;                                     //число элементов массива
    do                                         //выполнить (начало цикла)
    {
        cout<<"Vvedite chislo elementov"<<endl;  //вывод "Введите число элементов"
        cin>>n;                                //ввод n (считать с клавиатуры)
        if (n<=0 || n>nmax)                    //если n меньше или равно 0 или больше nmax
                                               //вывести "Число элементов должно быть между 1 и nmax" 
            cout<<"Chislo elementov dolzno bit' mezdu 1 i "<<nmax<<endl;
    } while (n<1 || n>nmax);                   //пока n не будет в пределах от 1 до nmax
    for (i=0; i<n; i++)                        //цикл от 0 до n-1
    {
        cout<<"Vvedite element "<<i+1<<": ";   //вывод "Введите элемент i+1"
        cin>>V[i];                             //ввод i-го элемента массива
    }
    return n;                                  //функция возвращает n - число элементов массива
}
 
//функция подсчета произведения четных элементов массива
//входные параметры:
//n - число элементов массива
//V - массив элементов
//выходной параметр:
//произведение четных элементов массива
float chetnproizv(int n, float V[nmax])
{
    int i;                                     //счетчик цикла
    float p = 1;                               //начальное значение произведения
    for (i=0; i<n; i++)                        //цикл по всем элементам массива
        if ((i+1) % 2 == 0)                    //если номер четный (делится на 2 без остатка)
            p = p*V[i];                        //умножаем p на этот на элемент
    return p;                                  //возвращаем полученное произведение
}
 
//процедура подсчета суммы элементов между крайним левым и крайним правым нулевыми элементами
//входные параметры:
//n - число элементов массива
//V - массив элементов
void summezdu0(int n, float V[nmax])
{
    int i = 0;                                 //счетчик цикла (задаем ему 1-й элемент массива)
    int k1 = -1, k2 = n;                       //k1 - номер первого нулевого элемента, пока не найден k1=-1
                                               //k2 - номер последнего нулевого элемента, пока не найден k2=n
    float sum = 0;                             //сумма элементов между k1 и k2
    while (i<n && k1==-1)                      //цикл (пока не перебраны все элементы массива с начала
    {                                          //или не найден крайний левый 0)
        if (V[i]==0)                           //если i-й элемент равен 0
            k1=i;                              //запоминаем его номер в k1
        i++;                                   //увеличиваем i на 1
    }                                          //конец цикла
    i = n;                                     //задаем i последний элемент массива
    while (i>=0 && k2==n)                      //цикл (пока не перебраны все элементы массива с конца
    {                                          //или не найден крайний правый ноль)
        if (V[i]==0)                           //если i-й элемент равен 0
            k2=i;                              //запоминаем его номер в k2
        i--;                                   //уменьшаем i на 1
    }                                          //конец цикла
    if (k1==-1 || k2==n || k1==k2)             //если не найдены k1 или k2 или k1=k2
        cout<<"Nedostatochno nuley v massive!"<<endl;  //вывод "Недостаточно нудей в массиве"
    else                                       //иначе
    {
        for (i=k1; i<=k2; i++)                 //цикл от k1 до k2
            sum=sum+V[i];                      //считаем сумму
                                               //вывод "Сумма между первый и последним нулями равна sum"
        cout<<"Summa elementov mezdu pervim i poslednim nulevimi elementami = "<<sum<<endl;
    }
}
 
//процедура преобразования массива (сначала все отрицательные, затем положительные элементы)
//входные параметры:
//n - число элементов массива
//V - исходный массив
//выходные параметры
//Vpr - преобразованный массив
void preobrmas(int n, float V[nmax], float Vpr[nmax])
{
    int i;                                     //счетчик цикла
    int k = 0;                                 //номер текущего элемента преобразованного массива
    for (i=0; i<n; i++)                        //цикл по всем элементам исходного массива
        if (V[i]<0)                            //если i-й элемент V меньше нуля
        {
            Vpr[k]=V[i];                       //k-му элементу Vpr присвоить i-й элемент V
            k++;                               //увеличить k на 1
        }
    for (i=0; i<n; i++)                        //цикл по всем элементам исходного массива
        if (V[i]>=0)                           //если i-й элемент V больше или равен нулю
        {
            Vpr[k]=V[i];                       //k-му элементу Vpr присвоить i-й элемент V
            k++;                               //увеличить k на 1
        }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2010, 12:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Записать результаты проги в файл (C++):

Как записать звуковой поток в файл? - C++
Как обзавязать созданный новый файл и рабочую звуковую программу, точнее записать звуковой поток в файл? Заранее благодарен. ...

Как записать текст в файл, не меняя его содержимого? - C++
Здравствуйте. Как записать текст В файл, не меняя его содержимого? У меня есть функция, которая записывает текст в файл, но она...

Записать в файл g целые числа b 1 , ..., b n , где при i = 1, 2, ..., n значение b i равно: i. - C++
Дано натуральное n. Записать в файл g целые числа b 1 , ..., b n , где при i = 1, 2, ..., n значение b i равно: i.

Записать в новый файл наибольшее каждых пяти компонентов исходного файла - C++
Дан файл F(создать его), компоненты которого-целые числа. Число их кратно 5. Записать в новый файл G наибольшее из 1-ых 5-ти компонентов...

Помогите с записью проги в файл - C++ Builder
в общем у мну курсовик - программа уже написана! вот токо надо добавить к проге - надо предусмотреть операциию создания файла, записи...

Дан файл с текстом. Записать в файл a0.txt слова, которые содержат цифру 0 - C++ Builder
от дано такое задание -Дан файл с текстом. Записать в файл a0.txt слова, которые содержат цифру 0, а в файл a1.txt - все остальные слова. ...

1
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
12.04.2010, 13:16 #2
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
#include <iostream.h>
#include <fstream.h>
 
float summezdu0(int, float[]);
 
int main()
{
          int i;
          int n;
          float V[nmax];
          float V1[nmax];
          float p;
          char filename[100];
 
          cout << "Enter file path to write data:\n";
          cin >> filename;
          ofstream fout(filename);
          
                  if(!fout){
                  cout << "Impossible to open file\n";
              return 1;
          }
 
          n = vvod(V);
          p = chetnproizv(n, V);
          cout<<"Proizvedenie chetnih elementov = "<<p<<endl;
          fout<<"Proizvedenie chetnih elementov = "<<p<<endl;
 
          cout<<"Summa elementov mezdu pervim i poslednim nulevimi elementami = "<<summezdu0(n,V)<<endl;
          fout<<"Summa elementov mezdu pervim i poslednim nulevimi elementami = "<<summezdu0(n,V)<<endl;
          cout<<"Ishodnii massiv:"<<endl;
          fout<<"Ishodnii massiv:"<<endl;
          for (i=0; i<n; i++){
                  cout<<V[i]<<"  ";
              fout<<V[i]<<"  ";
          }
          cout<<endl;
          fout<<endl;
          preobrmas(n, V, V1);
          cout<<"Preobrazovannii massiv:"<<endl;
          fout<<"Preobrazovannii massiv:"<<endl;
          for (i=0; i<n; i++){
                      cout<<V1[i]<<"  ";
              fout<<V1[i]<<"  ";
          }
          cout<<endl;
          fout<<endl;
 
          fout.close();
          return 0;
}
 
float summezdu0(int n, float V[nmax])
{
          int i = 0;
          int k1 = -1, k2 = n;
 
 
          float sum = 0;
          while (i<n && k1==-1)
          {
                  if (V[i]==0)
                      k1=i;
              i++;
          }
          i = n;
          while (i>=0 && k2==n)
          {
                  if (V[i]==0)
              k2=i;
              i--;
          }
          if (k1==-1 || k2==n || k1==k2)
                  cout<<"Nedostatochno nuley v massive!"<<endl;
          else
          {
              for (i=k1; i<=k2; i++)
                      sum+=V[i];
          }
          return sum;
}
преобразовал чуть ф-ции: main() и summezdu0()
вводить путь к файлу типа C:\test.txt
содержимое файла:
Proizvedenie chetnih elementov = 0
Summa elementov mezdu pervim i poslednim nulevimi elementami = -4
Ishodnii massiv:
5 9 -2 0 -10 4 2 0 8 12
Preobrazovannii massiv:
-2 -10 5 9 0 4 2 0 8 12
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2010, 13:16
Привет! Вот еще темы с ответами:

Записать данные в файл - C++ Builder
Помогите, пожалуйста, нужно записать из Edit1 имя(char name) и из Edit2 номер телефона(int tel) в файл f1. Как это реализовать????

Как записать переменную в файл? - C++ Builder
Подскажите пожалуйста как можно записать значение переменной в текстовый или ini файл. Только желательно код поподробнее какие директивы...

BLOB поле записать в файл - C++ Builder
Подскажите есть BLOB поле, которое я пытаюсь считать в файл, TStream...

Записать массив пикселей в файл - C++ Builder
Уважвемое сообщество не могу домучать простейшую програмку,в двух словах: создаю структуру:\ struct res { int height; ...


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

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

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