Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/27: Рейтинг темы: голосов - 27, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 17

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

11.04.2010, 12:34. Показов 5261. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.04.2010, 12:34
Ответы с готовыми решениями:

«Вычисление значений функции на заданном отрезке» результаты работы программы записать в текстовый файл;
#include &lt;iostream&gt; #define _USE_MATH_DEFINES #include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; using namespace std; ...

Записать результаты работы в файл
Даны числовые файлы одинаковой длины ,значение которых упорядочено по убыванию создать 3 -файл из первых двух чтобы упорядоченность не...

Нужно записать результаты программы в два файла, а компилятор ругается
Нужно записать результаты программы в два файла, а компилятор ругается.. Что не так? #include &quot;stdafx.h&quot; #include...

1
Peace 2 all shining faces
 Аватар для Vorona
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
12.04.2010, 13:16
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.04.2010, 13:16
Помогаю со студенческими работами здесь

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

Записать в текстовый файл в виде таблицы результаты команд
Записать в файл таблицу чемпионата по футболу, содержащую данные о командах (название команды, число выигрышей, поражений, ничьих,...

Обработать по формуле значения из двух файлов и записать результаты в файл
Задание во вложении.

Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый файл
Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый...

Сохранить результаты работы программы в файл
Ребята помогите сохранить в файл результат програмы выделен красным цветом. Заранее спасибо. # include &lt;stdio.h&gt; # include...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru