Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream> //cout cin
- using namespace std;
- //декларация на функция
- void readData(double numbers[30], int &size);
- void positiveSum(double numbers[30], int size);
- void negativeAverageInRange(double numbers[30], int size);
- void notZeroMultiplication(double numbers[30], int size);
- void smallestPosNumberAndIndex(double numbers[30], int size);
- void printElements(double numbers[30], int size);
- int main()//главната функция
- {
- double numbers[30]; //масив от дробни числа, резервирани места до 30
- int size = 0; //размерност, която ще зададе потребителя
- while (true) { //безкраен цикъл за менюто
- cout << "Izberete 1 za vavejdane na razmernost i elementi na masiv." << endl;
- cout << "Izberete 2 za suma na polojitelni chisla." << endl;
- cout << "Izberete 3 za sredno aritmetichno na otricatelni chisla v interval." << endl;
- cout << "Izberete 4 za proizvedenie i broy na nenulevite chislata ot masiva." << endl;
- cout << "Izberete 5 za minimalno polojitelno chislo i negoviq poreden nomer." << endl;
- cout << "Izberete 6 za izvejdane na elementite na masiva." << endl;
- cout << "Vashata opciq: ";
- int option; //от 1 до 6
- cin >> option;
- switch (option) //провери избора
- {
- case 1: //ако изборът е 1 изпълни всичко преди break
- readData(numbers, size);
- break;
- case 2:
- positiveSum(numbers, size);
- break;
- case 3:
- negativeAverageInRange(numbers, size);
- break;
- case 4:
- notZeroMultiplication(numbers, size);
- break;
- case 5:
- smallestPosNumberAndIndex(numbers, size);
- break;
- case 6:
- printElements(numbers, size);
- break;
- }
- }
- return 0;
- }
- //функция за запис:
- void readData(double numbers[30], int &size)
- {
- cout << "Razmernost(n): "; //задаване на брой числа за масива
- cin >> size;
- while (size < 1 || size > 30) { //ако броя числа не е между 1 и 30 - невалидна размерност
- cout << "Nevalidna razmernost.";
- cout << "Vavedete razmernost otnovo: ";
- cin >> size;
- }
- double readNumber;
- //въвеждане на числа в масива:
- for (int i = 0; i < size; i++)
- {
- cout << "a[" << i << "]" << " = ";
- cin >> numbers[i];
- }
- }
- //функция за намиране на сумата на положителни числа
- void positiveSum(double numbers[30], int size)
- {
- double positiveSum = 0;
- for (int i = 0; i < size; i++) //за всяко от масива
- {
- if (numbers[i] > 0) //ако числото е положително
- {
- positiveSum += numbers[i]; //прибави го към сумата
- }
- }
- cout << "Suma na polojitelni chisla: " << positiveSum << endl;
- }
- //средно аритметично на отрицателни числа в зададен интервал
- void negativeAverageInRange(double numbers[30], int size)
- {
- double sum = 0; //променлива за сумата
- double count = 0; //броя числа
- double min;
- double max;
- cout << "Min: ";
- cin >> min;
- cout << "Max: ";
- cin >> max;
- for (int i = 0; i < size; i++) //за всяко число от масива
- {
- if (numbers[i] < 0 && numbers[i] >= min && numbers[i] <= max) //ако числото е отрицателно, по-голямо от min и е по-малко е от max
- {
- sum += numbers[i]; //прибави го към сумата
- count++; //увеличи бройката с едно
- }
- }
- if (count == 0) //ако броя числа е 0, изведи съобщение
- {
- cout << "Masivat ne sudurja otricatelni chisla v zadadeniq interval." << endl;
- }
- else //ако има числа, изведи средноаритметичното
- {
- cout << "Average: " << sum / count << endl;
- }
- }
- //произведение на всички ненулеви числа
- void notZeroMultiplication(double numbers[30], int size)
- {
- double multiplication = 1; //произведение на числата
- double count = 0; //бройка
- for (int i = 0; i < size; i++) //за всяко число от масива
- {
- if (numbers[i] != 0) //ако числото не е 0
- {
- multiplication *= numbers[i]; //произведението да се умножи с числото
- count++; //бройката да се увеличи с едно
- }
- }
- cout << "Proizvedenie: " << multiplication << endl; //изпише произведението
- cout << "Broy: " << count << endl; // изведи бройката на ненулевите числа
- }
- //най-малко положително число и поредния му номер
- void smallestPosNumberAndIndex(double numbers[30], int size)
- {
- double smallestPosNumber = 99999999;
- int index = 0;
- for (int i = 0; i < size; i++) //за всяко число от масива
- {
- if (numbers[i] > 0 && smallestPosNumber > numbers[i]) //ако числото е положително и е по-малко
- //от стойността за най-малко число
- {
- smallestPosNumber = numbers[i]; //промени стойността на най-малкото число, с новото число
- index = i; //вземи поредния номер на новото число
- }
- }
- if (smallestPosNumber == 99999999) { // няма положителни числа
- cout << "Masivat ne sudarja polojitelno chislo" << endl;
- }
- else //ако има положителни числа:
- {
- cout << "Chislo: " << smallestPosNumber << endl;
- cout << "Poreden nomer: " << index + 1 << endl; // + 1, защото се почва от 0
- }
- }
- //изведи всичи елементи
- void printElements(double numbers[30], int size)
- {
- for (int i = 0; i < size; i++) //за всеки елемент от масива
- {
- //изведи индексът - i, и стойността на му numbers[i]
- cout << "a[" << i << "]" << " = " << numbers[i] << endl;
- }
- }
Add Comment
Please, Sign In to add comment