Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.89 KB | None | 0 0
  1. /*********************************************************************
  2. * Project Name:lab3_v0.3                                             *
  3. * Project Type:Win32 console application                             *
  4. * File Name:lab3 cpp                                                 *
  5. * Language:Cpp msvs 2010 and above                                   *
  6. * Programmer:Lysov_Gleb_Viktorovich,Zaharov_Alexei_Dmitrievich       *
  7. * Modified:                                                          *
  8. * Created:21/11/17                                                   *
  9. * Last Revision:24/11/17                                             *
  10. * Comment:Odnomernye massivy                                         *
  11. * ********************************************************************/
  12.  
  13. #include <iostream>
  14. #include <fstream>
  15. #include <cmath>
  16. using namespace std;
  17.  
  18. int A,B,temp,i,ch,SIZE;
  19. char YorN;
  20.  
  21. int main() {
  22.    
  23.   setlocale(0,"russian");
  24.  
  25.   ifstream file("lab3.txt");        //открыли файл для чтения
  26.    if(!file.is_open()){
  27.      cout<<"Ошибка чтения файла"<<endl;
  28.      system("pause");
  29.      return 0;
  30.     }  
  31.    
  32.   read » SIZE;
  33.    if (SIZE <= 0) {
  34.      cout<<"N должен быть больше 0\n";
  35.      system("pause");
  36.      return 0;
  37.     }
  38.    
  39.   int *arr = new int[SIZE]             // инициализируем массив
  40.    
  41.   ch=0;                             // счетчик кол-ва элементов в файле  
  42.    while(!file.eof() && (ch<SIZE)){ //пока не конец файла или
  43.      file>>temp;                    //счетчик не превышает размер массива
  44.      arr[ch]=temp;
  45.      ch++;                          // считали в массив
  46.     }                               //увеличили счетчик
  47.  
  48.   file.close();                     //закрыть файл
  49.    if(ch!=SIZE){                  //проверка на кол-во эл-тов
  50.      cout<<"Количество элементов не совпадает с размером массива.Продолжить работу ";
  51.       if (ch=SIZE) cout<<"c первыми N="<SIZE<" элементами?";
  52.       if (ch<SIZE) cout<<"только c N="ch<<" элементами?";
  53.      cout<<"[Y/N]"<<endl;                                        //интрефейс работы
  54.      cin>>YorN;                                                   //с пользователем
  55.       if (YorN=='N'||YorN=='n') {                
  56.         system("pause");
  57.         return 0;
  58.        } else  {
  59.          if ((YorN=='Y'||YorN=='y')&& ch<SIZE) SIZE=ch;      //если эл-тов меньше размера массива
  60.          }                                                   //работаем с этими эл-тами
  61.     }
  62.    
  63.   cout<<"Введите диапазон A,B: ";
  64.   cin>>A>>B;
  65.   A--;
  66.   B--;
  67.   cout<<"\nЭхопечать: A="<<A<<" B="<<B<<endl;
  68.  
  69.   temp=0;
  70.    if (A>B) {                       //проверка точек границ
  71.      temp=A;                        //замена A на B
  72.      A=B;
  73.      B=temp;
  74.      cout<<"Произошла замена: A="<<A<<" B="<<B<<endl;
  75.     }
  76.    
  77.    if (B>=SIZE){                   //проверка на диапазон
  78.      cout<<"Недопустимый диапазон"<<endl;
  79.      system("pause");
  80.      return 0;
  81.     }
  82.    
  83.   ch=0;                             //используем счетчик для проверки
  84.   int sum=0;                        //существования таких эл-тов
  85.    for(i=A;i<=B;i++)                //сумма положительных эл-тов
  86.      if (arr[i]>0) {
  87.          sum+=arr[i];     //нахождение суммы в диапазоне
  88.          ch++;
  89.         }
  90.    
  91.    if(ch==0) {                      //мы не можем найти сумму эл-тов
  92.      cout<<"Таких элементов суммы не существует"<<endl;
  93.     } else {
  94.         cout<<"Сумма положительных элементов в диапазоне от A до B: "<<sum<<endl;
  95.        }
  96.        
  97.   int IndexMax=0;
  98.    for(i=1;i<SIZE;i++){
  99.      if (fabs(arr[i])>fabs(arr[IndexMax])) IndexMax=i;
  100.     }
  101.    
  102.    if(IndexMax==0) {                //мы не можем найти произведение до 1-го эл-та
  103.      cout<<"Таких элементов произведения не существует"<<endl;
  104.      system("pause");
  105.      return 0;
  106.     }
  107.    
  108.   int proizvedenie=1;
  109.    for(i=0;i<IndexMax;i++){
  110.      proizvedenie*=arr[i];  
  111.     }
  112.    
  113.   cout<<"Произведение элементов, расположенных до максимального по модулю элемента: "<<proizvedenie<<endl;
  114. system("pause");    
  115. return 0;
  116. }
  117. /***********************END_OF_LAB_3************************************/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement