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

Ввод-вывод элементов одномерного массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу для вычисления ряда http://www.cyberforum.ru/cpp-beginners/thread1165181.html
Здравствуйте, помогите написать программу для вычисления суммы элементов ряда y1 с заданной точностью e(e>0) и сумму N элементов ряда y2; Заранее спасибо.
C++ Наследование контейнера А можно ли создать класс, который будет наследовать все функции от vector'a, и собрать его в dll, чтобы подключить на C#? http://www.cyberforum.ru/cpp-beginners/thread1165174.html
Игра в карты C++
Делаю игру, симулирующую игру в дурака в консоли. Пока вместо карт поставил просто числа. Большее число бьет меньшее)). Остановился на этом этапе. Код компилируется, запускается, но заканчивается...
Запуск .exe с параметрами? C++
как реализовать на С++ следующее: запускать приложение с параметрами и выполнять при получении нужного параметра нужную функцию?
C++ Какая функция производит непосредственно копирование значение тега? http://www.cyberforum.ru/cpp-beginners/thread1165155.html
Доброго времени суток. Впервые приходится работать с библиотекой TinyXML и, собственно, возник вопрос: какая функция производит непосредственно копирование значение тега? Например, float saved =...
C++ Нахождение заданного числа в последовательно (или близкого к нему) путём сложения чисел в заданной последовательности Доброго времени суток. Нужна помощь в решение следующей задачи, или порекомендуйте алгоритм, который можно использовать для реализации данной программы. Есть следующие входные данные: 1.... подробнее

Показать сообщение отдельно
Melg
538 / 159 / 64
Регистрация: 23.09.2013
Сообщений: 314
03.05.2014, 20:33
Сейчас помогу, немного терпения.

Добавлено через 13 минут
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#include <iostream>
#include <algorithm>
#include <assert.h>
 
 
int GetIntValueFromUser() {
  int value = 0;
  std::cin >> value;
  return value;
}
 
int GetSizeOfArrayFromUser() {
  std::cout << "Please input size of array." << std::endl;
  int size_of_array = GetIntValueFromUser();
  std::cout << "Size of array is: " << size_of_array << std::endl;
  return size_of_array;
}
 
bool IsSizeOfArrayCorrect(int size_of_array) {
  return size_of_array > 0;
}
 
void ShowIncorrectSizeOfArrayMessage() {
  std::cout << "You input incorrect size of array" << std::endl;
}
 
void ShowTryAgainMessage() {
  std::cout << "Try again" << std::endl;
}
 
int *AllocateArray(int size_of_array) {
  int *array = new int[size_of_array];
  return array;
}
 
void Deallocatearray(int *array) {
  if (array) {
      delete[] array;
    }
}
 
void ShowFillArrayMessage(int size_of_array) {
  std::cout << "Please input " << size_of_array << " values to fill array"
            << std::endl;
}
 
void ShowCurrentIteration(int iteration) {
  std::cout << "Filling iteration : " << iteration << std::endl;
}
 
void ShowArrayFillCongratulations() {
  std::cout << "Array filled successfully!" << std::endl;
}
 
void FillArrayFromUserInput(int size_of_array, int *&array) {
  ShowFillArrayMessage(size_of_array);
  for (int i = 0; i < size_of_array; ++i) {
      ShowCurrentIteration(i);
      array[i] = GetIntValueFromUser();
    }
}
 
void GetArrayFromUser(int &size_of_array, int *&array_from_user) {
  bool got_correct_array = false;
  while(!got_correct_array) {
      size_of_array = GetSizeOfArrayFromUser();
      if (IsSizeOfArrayCorrect(size_of_array)) {
          array_from_user = AllocateArray(size_of_array);
          FillArrayFromUserInput(size_of_array, array_from_user);
          got_correct_array = true;
        } else {
          ShowIncorrectSizeOfArrayMessage();
          ShowTryAgainMessage();
        }
    }
}
 
void ShowNoPointerErrorMessage() {
  std::cout << "Error: no pointer given!" << std::endl;
}
 
bool IsArrayCorrect(const int *array) {
  return array != NULL;
}
 
 
void ShowAllFieldOfCorrectArray(int size_of_array, const int *array) {
  for(int i = 0; i < size_of_array; ++i) {
      std::cout << "array[" << i << "] = " << array[i] << std::endl;
    }
}
 
void ShowArray(int size_of_array, const int *array) {
  if (!IsArrayCorrect(array)) {
      ShowNoPointerErrorMessage();
    } else {
      ShowAllFieldOfCorrectArray(size_of_array, array);
    }
}
 
int GetMaxiamalFromArray(int size_of_array, const int *array) {
  assert(size_of_array > 0);
  assert(array);
  int max = array[0];
  for(int i = 1; i < size_of_array; ++i) {
      max = std::max(max, array[i]);
    }
  return max;
}
 
int GetMinimalFromArray(int size_of_array, const int *array) {
  assert(size_of_array > 0);
  assert(array);
  int min = array[0];
  for(int i = 1; i < size_of_array; ++i) {
      min = std::min(min, array[i]);
    }
  return min;
}
 
double GetAverage(int first, int second) {
  double average = static_cast<double>((first + second)) / 2;
  return average;
}
 
bool IsSizeCorrect(int size) {
  return size > 0;
}
 
void ShowIncorrectArrayAverageError() {
  std::cout << "Error: Incorrect array given, can't find average" << std::endl;
}
 
double FindAverageOfMinimalAndMaximalElements(int size_of_array,
                                           const int *array) {
  double average = GetAverage(GetMinimalFromArray(size_of_array, array),
                           GetMaxiamalFromArray(size_of_array, array));
  return average;
}
 
void ShowAverage(double average) {
  std::cout << "Average of minimal and maximal elements is : " << average
               << std::endl;
}
 
void ShowAverageFromArray(int size_of_array, const int *array) {
  if (IsArrayCorrect(array) && IsSizeCorrect(size_of_array)) {
      double average = FindAverageOfMinimalAndMaximalElements(size_of_array,
                                                              array);
      ShowAverage(average);
    } else {
      ShowIncorrectArrayAverageError();
    }
}
 
int main(int argc, char **argv) {
  (void)argc;
  (void)argv;
  int size_of_array = 0;
  int *array_from_user = NULL;
  GetArrayFromUser(size_of_array, array_from_user);
  ShowArray(size_of_array, array_from_user);
  ShowAverageFromArray(size_of_array, array_from_user);
  Deallocatearray(array_from_user);
  return 0;
}
Писал на скорую руку, не судите строго.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru