.
Отговор в тема
Резултати от 1 до 6 от общо 6
  1. #1
    Guest

    Програмиране Помощ

    Предстой ми кандидат-студентски изпит и знам че задачата която ще дадат по програмиране ще е много подона на тази,но уви нещо не се справям с нея а ми е много наложително да я науча...
    Ако може някой да ми я напише
    ако е от Шумен ще го и почерпя

    Задача:
    Да се състави програма Temp,която за месец състоящ се от 30 календарни
    дни,въвежда данни за средните дневни температури за всеки ден и отпечатва:
    1)Средната температура за месеца;
    2)Средната температура за второто десетдневие;
    3)Минималната температура за първото десетдневие;
    4)Датите,на които температурите са били под средната;
    5)Най дългия период на застудяване - последователност от дни с температура под средната.

  2. #2
    Голям фен
    Регистриран на
    Jan 2007
    Град
    Ин Дъ Мидъл Ъф Ноулеар
    Мнения
    559
    Ако трябва да я пишеш на С++,мисля,че мога да я напиша!Само кажи ...
    Реших да седна да напиша какво трябва да прави програмата:

    Задача:
    Да се състави програма Temp,която за месец състоящ се от 30 календарни
    дни,въвежда данни за средните дневни температури за всеки ден и отпечатва:
    1)Средната температура за месеца;
    2)Средната температура за второто десетдневие;
    3)Минималната температура за първото десетдневие;
    4)Датите,на които температурите са били под средната;
    5)Най дългия период на застудяване - последователност от дни с температура под средната.

    0.Въвежда "данни за средните дневни температури за всеки ден"
    1.Ами ... не знаеш ли как се намира средна температура (и не само)? (Ден1+Ден2+...+Ден30)/30
    2.Второ десетдневие - от 11-ти до 20-ти /поне аз така си мисля де/. Пак по същия начин,но този път (Ден11+Ден12+...+Ден20)/10
    3.Тук вече(според мене) трябва да сравняваш числа и щом не можеш да се справиш с горните 2,то с това АБСУРД!!!
    4.Приемам,че имаш в предвид "средната за месеца".Емм...сравняване... /може да има пол-рац. начин,но не се сещам в момента/
    5.Ще видим тук как ще стане ...

    THE FULL SORCE + .exe file COMMING UP SOON!!!
    Incomplete..........

  3. #3
    Guest
    Ето нещо набързо. Оптимизацията остава за теб.
    Код:
    // vreme.cpp
    // Dev C++
    /*
    Да се състави програма Temp,която за месец състоящ се от 30 календарни
    дни,въвежда данни за средните дневни температури за всеки ден и отпечатва:
    1)Средната температура за месеца;
    2)Средната температура за второто десетдневие;
    3)Минималната температура за първото десетдневие;
    4)Датите,на които температурите са били под средната;
    5)Най дългия период на застудяване - последователност от дни с температура под средната.
    */
    
    #include <iostream>
    #include <conio.h>
    
    using namespace std;
    
    #define N 30
    
    void read();
    float temp();
    void print();
    
    bool flag = false;
    float mesec[N];
    
    int main()
    {
        print();    
        cout<<endl;
    
        return 0;
    }
    
    // -----------------------------------------------------------------------------
    void read()
    {
         flag = true;
           
         for(int i=0; i<N; i++)
         {
                 cout<<"den "<< i+1 <<" : ";
                 cin>>mesec[i];
         }
    }
    
    // -----------------------------------------------------------------------------
    float temp(int n)
    {
        float sr_temp = 0;
        int i =0;
        
        if(!flag)
        {
           cout << "vyvedete dannite: "<<endl;
           read();
        }
        
        if( n == 1)
        {
            for(i=0; i<N; i++)
               sr_temp += mesec[i];     
            return sr_temp/N;
        }   
        
        if( n == 2)
        {
           for(i=10; i<20; i++)
               sr_temp += mesec[i];
           cout << endl <<"sredna temperatura za vtoro desetdnevie: ";
           return sr_temp/10;       
        }
        
        if( n == 3)
        {
            float min_temp = mesec[0];
            for(i=1; i<10; i++)
                if(min_temp > mesec[i]) min_temp = mesec[i];
            cout << "minimalna temperatura za pyrvite 10 dni: ";
            return min_temp;
        }                           
    }
    
    // -----------------------------------------------------------------------------
    void min_days(int n)
    {
         float sr_temp = temp(1);
         int count_t=0, count_all=0, i; 
         
         if(n == 4)
         {
             cout << endl;
             cout<<"dni pod srednata temperatura: ";
             for(i=0; i<N; i++)
                 if(mesec[i] < sr_temp) cout<< i+1 <<" ";
             cout << endl << endl;
         }
         
         if(n == 5)
         {
             for(i=0; i<N; i++)
             {
                 if(mesec[i] < sr_temp) count_t ++;
                 else if(count_all < count_t)
                      {
                         count_all = count_t;     
                         count_t = 0;
                      }
             }
             cout << "studen period v dni: " << count_all << endl;        
         }   
    }
    
    // -----------------------------------------------------------------------------
    void print()
    {
         int menu = 0;
         
         do{
             cout<<endl;
             cout<<"1. sredna temperatura za mesec"             <<endl;
             cout<<"2. sredna temperatura za vtoro desetdnevie" <<endl;
             cout<<"3. minimalna za 1 desetdnevie"              <<endl;
             cout<<"4. dni pod srednata temperatura"            <<endl;
             cout<<"5. studen period"                           <<endl;
             cout<<"0. exit"                                    <<endl;
             cout << "izbor ot menu: ";
             cin >> menu;
             cout<<endl;
             
             switch(menu)
             {
               case 1:
               case 2:
               case 3: cout << temp(menu) << endl; break; 
               case 4:
               case 5: min_days(menu); break;
               default : cout<<"Incorect input!"<<endl; break;
             }      
         } while(menu != 0);          
    }
    
    // -------------------------- END ----------------------------------------------
    Ето подобна програма, която преди много време трябваше да напиша.
    Код:
    /********************************************************************/
    /* Програма, която въвежда температурата за всеки ден от месеца     */ 
    /* ( сутрин, обед и вечер) и определя по зададен ден средната       */ 
    /* температура за деня                                              */ 
    /********************************************************************/
    
    #include <iostream.h>
    #include <iomanip.h>
    #include <string.h>
    
    // прототипи на функции ----------------------------------------------
    
    void Day_Mesec(int a, int b, int &max);
    void Enter_Data();
    int main();
    
    // -------------------------------------------------------------------
    int main()
    {
    	Enter_Data();
            return 0;
    }
    
    // -------------------------------------------------------------------
    void Enter_Data()
    {
    		float day[31][3], srt[31]; //темп. за всеки ден, средна темп.
    		float sum; 
    		int den, mesec, godina, max =0;  
    		char ch[10];                   
    		cout<<"Въведете годината ";
    		cin>>godina;
    		cout<<"За кой месец ще отчитате температурата? ";
    		cin>>mesec;
    		Day_Mesec(mesec, godina, max);
    		for (int i = 0; i < max; i++)
    		{
    			cout<<"Ден "<<i+1<<"\n";
    			for (int j = 0; j < 3; j++)
    			{
    				switch (j)
    				{
    				  case 0: strcpy(ch,"сутринта "); break;
    				  case 1: strcpy(ch,"на обяд ");  break;
    				  case 2: strcpy(ch,"вечерта ");  break;
    				}
    				cout<<"Каква е температурата "<<ch;
    				cin>>day[i][j];
    				sum += day[i][j];  
    			}
    			srt[i] = sum/3;
    			sum = 0;            
    		}
    		if(max > 27 && max < 32)
    		{
    			cout<<"\nЗа кой ден искате средната температура?  ";
    			cin>>den;
    			cout<<"\nСредната температура е "<<setprecision(2)<<srt[den-1]<<" градуса\n";
    		}
    		else return;
    }
    
    // ------------------------------------------------------------------------
    void Day_Mesec(int a, int b, int &max)
    {
    	switch (a)
    		{
    			case 1:
    			case 3:
    			case 5:
    			case 7:
    			case 8:
    			case 10:
    			case 12: max = 31; break;
    			case 4:
    			case 6:
    			case 9:
    			case 11: max = 30; break;
    			case 2: max = ( (b % 4) == 0 )? 29 : 28; break;// дали е високосна
    			default : cout<<"няма такъв месец !";  break;
    		}
    	return;
    }
    Успех!

  4. #4
    Голям фен
    Регистриран на
    Mar 2005
    Град
    Plovdiv
    Мнения
    872
    Къде са те учили да подреждаш така функциите?

  5. #5
    Голям фен
    Регистриран на
    Jan 2007
    Град
    Ин Дъ Мидъл Ъф Ноулеар
    Мнения
    559
    ха,браво.Аз бях запецнал на 5-та точка.А и тряаше за нея да науча оператора за цикъл "for" ... /а спец. ся тряа да уча за обри оценки /
    Incomplete..........

  6. #6
    Голям фен
    Регистриран на
    Mar 2005
    Град
    Plovdiv
    Мнения
    872
    Цитирай Първоначално написано от TheNightRider
    Цитирай Първоначално написано от Fena
    Къде са те учили да подреждаш така функциите?
    Сигурно сам се е научил. По-нагледно е.
    Именно, особено ако имаш да оправяш код от 1000 реда. Но съм останал с впечатление че на малко места ги учат да подреждат функциите в една all_in_one().

Правила за публикуване

  • Вие не можете да публикувате теми
  • Вие не можете да отговаряте в теми
  • Вие не можете да прикачвате файлове
  • Вие не можете да редактирате мненията си