1 / 1 / 1
Регистрация: 23.10.2013
Сообщений: 69
1

STL

16.12.2014, 17:10. Показов 327. Ответов 0
Метки нет (Все метки)

Помогите исправить ошибки в программе, чтобы она наконец то начала работать. Ниже условия, то что должны выполнять моя программа:
1)В задаче данные для массивов генерировать с помощью датчика случайных чисел. Использование функций transform, for_each, copy – обязательно. *Даны два одномерных массива, состоящие из N (N>5) целых чисел из диапазона [-50;50]. Сформировать третий массив, элементы которого генерируются следующим образом: к элементам первого массива прибавляются соответствующие элементы второго массива, умноженные на 2. Вывести на печать элементы третьего массива, уменьшенные на 5.
2)В задаче данные для массивов получать из входной последовательности. Использование функций remove, remove_if, find, find_if, copy – обязательно. *Дан одномерный массив, состоящий из N целых чисел. Удалить все элементы со значением E1, стоящие до элемента со значением E2. Вывести на печать полученный массив.
3)В задаче числовые данные для массивов типа int, float или double получать из текстового файла. Использование функций sort, merge, copy – обязательно. *Даны два одномерных массива размерности 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
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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <ctime>
#include <windows.h>
#include <fstream> 
//#include <iomanip>
 
 
using namespace std;
 
const int n=10;
 
int op(int x, int y)
{
  return x+y*2;
}
 
void output(int x)
{
    cout<<x-5<<" ";
}
bool vozrInt(double a,double b) 
{ return (int(a) > int(b)); }
 
 
void main()
{//1 задание
    setlocale(0,"");
    int mas1[n], mas2[n], mas3[n],p,m31,m32;
    srand(time(0));
    
    for(int i=0;i<n;++i)
    {
        mas1[i]=rand()%101-50;
        mas2[i]=rand()%101-50;
    }
    transform(mas1, mas1+n, mas2, mas3, op);
 
    copy(mas1,mas1+n,ostream_iterator<int>(cout," ")); 
    cout<<endl;
    copy(mas2,mas2+n,ostream_iterator<int>(cout," ")); 
    cout<<endl<<endl;
 
    for_each(mas3, mas3+n, output);
    cout<<endl;
 
    //Удалить все элементы со значением Е1, стоящие после 1-го элемента со значением Е2(2 задание)
 int E1, E2,N;
  cout << "Введите E2: ";
  cin >> E2;
  int * it = find(p, p + N, E2);
  if (it != p + N) {
    cout << "E2 найден!" << endl;
    cout << "Введите E1: ";
    cin >> E1;
    it = remove(it, p+N, E1);//поменял
    cout << "Все элементы '" << E1 << "' удалены" << endl;
    copy(p, p + N-1, ostream_iterator<int>(cout, " "));
    cout << endl;
  } 
  else cout << "E2 не найден!" << endl;
  copy(m31, m31 + N , ostream_iterator<int>(cout, " "));cout<<endl; 
copy(m32, m32 + N , ostream_iterator<int>(cout, " "));cout<<endl;  //нужно вывод исправить сopy(p,it, ostream...)
    
 
//void zadanieC()  3 задание
{
  ifstream in("1.txt");
  if (in) {
    int N;
    in >> N;
    float * mas1 = new float[N];
    for (int i = 0; i < N; i++)
      in >> mas1[i];
    float * mas2 = new float[N];
    for (int i = 0; i < N; i++)
      in >> mas2[i];
    in.close();
    cout << "Введенный массив 1: ";
    copy(mas1, mas1 + N, ostream_iterator<float>(cout, " "));
    cout << endl;
    cout << "Введенный массив 2: ";
    copy(mas2, mas2 + N, ostream_iterator<float>(cout, " "));
    cout << endl << endl;
    sort(mas1, mas1 + N, vozrInt);
    sort(mas2, mas2 + N, vozrInt);
    cout << "Отсортированный массив 1: ";
    copy(mas1, mas1 + N, ostream_iterator<float>(cout, " "));
    cout << endl;
    cout << "Отсортированный массив 2: ";
    copy(mas2, mas2 + N, ostream_iterator<float>(cout, " "));
    cout << endl << endl;
    float * mas3 = new float[N * 2];
    float * mas3End = merge(mas1, mas1 + N, mas2, mas2 + N, mas3, vozrInt);
    cout << "Отсортированный и склеенный массив 1 с 2" << endl;
    copy(mas3, mas3End, ostream_iterator<float>(cout, " "));
    cout << endl << endl;
    delete[] mas1;
    delete[] mas2;
    delete[] mas3;
  } else cout << "Ошибка открытия файла!" << endl;
  system ("pause");
};
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2014, 17:10
Ответы с готовыми решениями:

Где почитать про STL
где можно почитать про STL очень подробно что бы исходные коды тоже были, какие структуры данных...

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

Определить количество слов, которые начинаются и заканчиваются одной и той же буквой
Нужна помощь! Дана строка, состоящая из русских слов, разделенных пробелами (одним или...

STL
Задача: сторонами треугольников и прямоугольников являются цветные (red, green, blue)...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2014, 17:10
Помогаю со студенческими работами здесь

STL
Здравствуйте. Ребят пожалуйста решите 2 простенькие задачки, потратьте немного своего времени,...

STL
Всем привет :) Задача следующая - Нужно считать из файла строки, запихнуть их в стек и вывести на...

Где посмотреть исходный код STL?
где можно посмотреть исходный код STL??

STL
Данная программа делает следующее 1. Создать объект-контейнер в соответствии с вариантом задания и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru