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

Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
16.04.2014, 11:12     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #1
Здравствуйте, помогите сделать задание, ни как не могу в него вникнуть:
Компоненты файла f – целые (отличные от нуля) числа: х, y1, ... yn. Вывести на экран два последовательных члена этой последовательности, среднее арифметическое которых ближе всего к х. Выполнить задания для текстового и бинарного файлов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2014, 11:12     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу
Посмотрите здесь:

C++ В массиве найти два члена,среднее арифметическое которых ближе всего к Х
Найти пары соседних элементов последовательности, среднее арифметическое которых равно N и количество таких пар. C++
C++ Даны два целых числа; найти их среднее арифметическое, их среднее геометрическое
C++ В массиве Y1, ... , Yn найти два элемента, среднее арифметическое которых равно заданному числу X
C++ В массиве Y1, ... , Yn найти два элемента, среднее арифметическое которых равно заданному числу X
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
16.04.2014, 11:28     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #2
Bakinowski Wlad, вы читаете из файла в массив числа, а затем берете 2 рядом стоящих числа и
If (fabs(fabs(a[i]+a[i+1])/2-x) < min)
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
16.04.2014, 12:03  [ТС]     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #3
TenGen, а можно ли по подробней описать?

Добавлено через 33 минуты
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 "stdafx.h"
#include <iostream>
#include <fstream>
#include <stdlib.h>//srand rand
#include <time.h>// time
using namespace std;
 
void  textFILE(int X)
{
    setlocale(LC_ALL,"rus");
    int m = 10;
    int n;
    int p=0,s=0;
    int *mas;
    mas=new int [m];
    srand((unsigned)time(NULL));
 
    for(n=0;n<m;n++)
    {
        mas[n]=rand()%1000;
        if(mas[n]%2){p++;}
          else{s++;}
        if(n>=1&&p>s){mas[n]=mas[n]+1;s++;p--;}
          else{if(n>=1&&p<s){mas[n]=mas[n]+1;s--;p++;}}
        s++;
        p++;
    }
 
    cout<<endl<<"FILE TXT"<<endl;
    for(n=0;n<m;n++){cout<<' '<<mas[n];}
    cout<<endl;
 
    ofstream outfileTXT("f.txt");
    for(n=0;n<m;n++){outfileTXT<<' '<<mas[n];}
    outfileTXT.close();
    cout<<endl<<"файл txt записан"<<endl;
 
    for(n=0;n<m;n++){mas[n]=0;}
    ifstream infileTXT("f.txt");
    
    for(n=0;n<m;n++){infileTXT>>mas[n];}
    cout<<endl<<"информация извлечена из файла"<<endl;
    for(n=0;n<m;n++){cout<<" "<<mas[n];}
 
    ofstream outfileTXTg("g.txt");
    for(n=0;n<m;n=n+1)
    {   
      if((mas[n]%2)&&(n==0||n%2)){outfileTXTg<<' '<<mas[n];}
      else{if(!(mas[n]%2)&&!(n%2)){outfileTXTg<<' '<<mas[n];}}
    
    }
    cout<<"файл записан"<<endl;
 
}
есть код, но с другой программы, условия разные, как их совместить?
точнее как поменять?
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
16.04.2014, 12:29     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #4
Bakinowski Wlad, доберусь до компьютера и напишу код
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
18.04.2014, 01:38  [ТС]     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #5
TenGen, очень нужно!!!
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
18.04.2014, 06:25     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #6
Bakinowski Wlad,
C++
1
2
3
4
5
6
7
8
9
10
const int n = 10;
int main(int argc, char *argv[])
{
int a[n];
//ввод данных в массив a
int min = 0;
for (int i = 0; i < n - 1; i++)
If (abs(abs(a[i]+a[i+1])/2-x) < abs(abs(a[min]+a[min+1])/2-x)) min = i;
cout << a[min] << " and " << a[min+1] << endl;
}
Вот как то так
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
21.04.2014, 21:12  [ТС]     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #7
TenGen, а вы можете мне помочь написать это же бинарного и текстового файла?
просто нет ни каких соображений по этой теме...
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
21.04.2014, 22:41     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #8
Bakinowski Wlad, конкретнее, что в этих файлах должно быть
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
23.04.2014, 22:15  [ТС]     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #9
TenGen, нужно чтобы в каждом файле было задание, которое выше, но оформить как бинарный и текстовый файл
pisaruk
1 / 1 / 1
Регистрация: 08.01.2013
Сообщений: 15
23.04.2014, 22:23     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #10
Вот для текстового, если надо.

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
#include <iostream>
#include <fstream>
#include <vector>
#include <iterator>
#include <cmath>
 
using namespace std;
 
int main()
{
 
ifstream f("input.txt");
 
    vector <int> v((istream_iterator<int>(f)), istream_iterator<int>());
    
    vector <int>:: iterator begin = v.begin();
    
    vector <int>:: iterator end = v.end();
    
 
     vector<int> max;
 
     int sred = abs(*begin - (*(begin+1) + *(begin+2))/2);
 
//cout<<(*(begin+1) + *(begin+2));
     
     max.push_back(sred);
     
     max.push_back(*(begin+1));
     
     max.push_back(*(begin+2));
    
    
 
 
     for(vector<int>:: iterator cur = (begin+1); cur != end; cur++)
     {
     
        for(vector<int>:: iterator j = (begin+1); j != end; j++)
     
        {
            if(j != cur)
            {
     
          if( abs(*begin - (*cur + *j)/2) < max[0]) 
     
          {
            max[0] = abs(*begin - ((*cur + *j)/2));
     
            max[1] = *cur;
     
            max[2] = *j;
     
          }
      }
 
 
        }
     
     }
      cout << max[0] << endl << max[1] << endl << max[2] << endl;
}
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
24.04.2014, 14:35  [ТС]     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #11
pisaruk, а текстового нет?

Добавлено через 20 минут
извините, для бинарного!

Добавлено через 15 часов 15 минут
хоть что-нибудь...
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
05.05.2014, 14:42  [ТС]     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #12
TenGen, у меня есть код, но его нужно немного переделать
ПРИМЕР 24. Работа с бинарным файлом
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
//   Задача: создание бинарного файла случайных целых чисел, 
//   вывод чисел на экран, создание нового файла только из 
//   четных чисел исходного файла
 
#include <ctime>
#include <stdlib.h>
#include <fstream>
#include <iostream>
using namespace std;
 
void create(ofstream&,int);      // создание файла cл. чисел
void read_file(ifstream &);      // вывод на экран 
          // создание файла четных чисел из файла исходного
void create_chet(ofstream &, ifstream &);  
 
int main()
{   srand((unsigned)time(NULL));
    int n;
    cout<<"enter n"<<endl; cin>>n; // количество чисел файла
    // открыть file.bin  с именем outfile  для записи 
    ofstream outfile("file.bin",ios::binary);               
    if (!outfile)
      { cout<<"error1"<<endl; 
        return 1;
      }
               // создание файла cл. чисел  file.bin
    create(outfile,n);                                              
    outfile.flush();
 
         // открыть file.bin  с именем infile  для чтения 
  ifstream infile ("file.bin", ios::binary);          
  if (!infile)
    { cout<<"error2"<<endl; 
      return 2;
     }
 
    read_file(infile);      // вывод на экран file.bin
    infile.close();
 // открыть file1.bin  с  именем outfile_new  для записи 
    ofstream outfile_new ("file1.bin", ios::binary);    
    if (!outfile_new)
      { cout<<"error3"<<endl; 
        return 3;
       }
 // открыть file.bin с программным именем infile  для чтения 
    infile.clear();
    infile.open("file.bin", ios::binary);           
    if (!infile)
      { cout<<"error4"<<endl; 
        return 4;
       }
                 // создание файла четных чисел file1.bin  
                 // из файла исходного file.bin
    create_chet(outfile_new,infile);  
    outfile_new.flush();        // outfile_new.close();
    infile.close();
//открыть file1.bin  с программным именем infile  для чтения 
    infile.clear();
    infile.open("file1.bin", ios::binary);   
    if (!infile) 
      { cout<<"error5"<<endl; 
        return 5;
      }
             // вывод на экран файла четных чисел file1.bin
    read_file(infile); 
    infile.close();
    return 0; 
}
    
                     // создание файла из n cл. чисел
void create(ofstream &outfile, int   n)
{
    for (int i = 1; i <= n;  i++)
    {
        int v = rand() % 100;
 outfile.write(reinterpret_cast <char*> (&v), sizeof (int));
    }
}
                     // вывод на экран чисел файла 
void read_file(ifstream &infile) 
{
    int v;
    infile.read(reinterpret_cast<char*>(&v),sizeof (int));
    while( !infile.eof())
    {
        cout<<v<<" ";
    infile.read(reinterpret_cast<char*>(&v),sizeof (int));
    }   
    cout<<endl;
}
         // создание файла четных чисел из файла исходного
void create_chet(ofstream &outfile_new,  ifstream &infile) 
{
    int ch;
 
    infile.read(reinterpret_cast<char*>(&ch), sizeof(int));
 
    while (infile) 
    {
        if(ch % 2 == 0)
        outfile_new.write(reinterpret_cast<char*>(&ch), 
                          sizeof (int));
        infile.read(reinterpret_cast<char*>(&ch), 
                     sizeof(int));
    }
}
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
05.05.2014, 15:39     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #13
Bakinowski Wlad, сейчас попробую вам написать
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
05.05.2014, 15:40  [ТС]     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #14
TenGen, хорошо!
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
05.05.2014, 16:00     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #15
Bakinowski Wlad, вроде как то так. Проверьте работу приложения
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
#include <fstream>
#include <iostream>
#include <cmath>
 
using namespace std;
 
const int n = 10;
 
int main()
{
    int a[n], x = 5;
    // открыть file.bin с именем infile для чтения
    ifstream infile ("file.bin", ios::binary);
    if (!infile)
    {
        cout<<"error2"<<endl;
        return 2;
    }
    for (int i = 0; i < n; i++)
        infile.read(reinterpret_cast<char*>(&a[i]),sizeof (int));
    int min = 0;
    for (int i = 0; i < n - 1; i++)
        if (abs(abs(a[i]+a[i+1])/2-x) < abs(abs(a[min]+a[min+1])/2-x)) min = i;
    cout << a[min] << " and " << a[min+1] << endl;
    infile.close();
    return 0;
}
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
05.05.2014, 16:06  [ТС]     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #16
это для текстового файла?
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
05.05.2014, 16:07     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #17
Bakinowski Wlad, для бинарного
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
05.05.2014, 16:16  [ТС]     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #18
TenGen, выбивает ошибку, fatal error LNK1104: не удается открыть файл
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
05.05.2014, 16:31     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #19
Bakinowski Wlad, а у вас этот файл есть?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2014, 16:32     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу
Еще ссылки по теме:

Найти минимум из чисел последовательности, среднее арифметическое цифр которых равно 5 C++
Дан массив вещественных чисел. Определитьпорядковый номер того из них, который ближе всего к заданному числу Х C++
В массиве найти два элемента среднее арифметическое которых ближе всего к заданному значению C++

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

Или воспользуйтесь поиском по форуму:
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
05.05.2014, 16:32  [ТС]     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу #20
TenGen, видимо нет...
Yandex
Объявления
05.05.2014, 16:32     Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу
Ответ Создать тему
Опции темы

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