Напишете програма, която въвежда ден, месец и година и определя:
- колко дни са изминали от началото на годината
- колко дни остават до края на годината
- колко дни има между първата дата и втора въведена дата
Напишете програма, която въвежда ден, месец и година и определя:
[c] за С++ програми [/c]
[pascal] за паскал [/pascal]

за Къде се намира точка
за Вмъкване и изтриване на елемент *
за Позицията на X




за Броят на максималните елементи




за Броят на максималните елементи
за Пари за закуска




за Ученици с дадена оценка




за По-големи от средното| П | В | С | Ч | П | С | Н |
|---|---|---|---|---|---|---|
| « февр. | ||||||
| 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 |
#include <cstdlib> #include <iostream> #include <math.h> using namespace std; int main(int argc, char *argv[]) { int visokosna,d,d2,m,g; cout<<"Vavedi data, mesec i godina razdeleni s interval: "; cin>>d>>m>>g; cout<<endl; if (((g%4==0)&&(g%100!=0)) || (g%400==0)) //Проверява дали годината е високосна visokosna=1; //Ако е високосна, добавяме един ден отгоре else visokosna=0; //А ако не е високосна, не добавяме дни //Преди всичко се пресмятат дните на всички месеци до 365-ия ден //като имаме предвид, че месец януари съдържа в себе си 0 дни //и се изброяват само дните на зададената дата //пример 1: 17ти януари 2012 - изминали са 17 дни //пример 2: 17ти февруари 2012 - изминали са 48 дни switch(m){ case 1:if (d==1) { cout<<d<<" den e izminal ot nachaloto na godinatan"; cout<<365+visokosna-d<<" dni ostavat do kraya na godinatan";break; } else if ((d<=31)&&(d>=2)) { cout<<d<<" dni sa izminali ot nachaloto na godinatan"; cout<<365+visokosna-d<<" dni ostavat do kraya na godinatan";break; } case 2:cout<<d+31<<" dni sa izminali ot nachaloto na godinatan"; cout<<365+visokosna-(d+31)<<" dni ostavat do kraya na godinatan";break; case 3:cout<<d+59+visokosna<<" dni sa izminali ot nachaloto na godinatan"; cout<<365+visokosna-(d+59+visokosna)<<" dni ostavat do kraya na godinatan";break; case 4:cout<<d+90+visokosna<<" dni sa izminali ot nachaloto na godinatan"; cout<<365+visokosna-(d+90+visokosna)<<" dni ostavat do kraya na godinatan";break; case 5:cout<<d+120+visokosna<<" dni sa izminali ot nachaloto na godinatan"; cout<<365+visokosna-(d+120+visokosna)<<" dni ostavat do kraya na godinatan";break; case 6:cout<<d+151+visokosna<<" dni sa izminali ot nachaloto na godinatan"; cout<<365+visokosna-(d+151+visokosna)<<" dni ostavat do kraya na godinatan";break; case 7:cout<<d+181+visokosna<<" dni sa izminali ot nachaloto na godinatan"; cout<<365+visokosna-(d+181+visokosna)<<" dni ostavat do kraya na godinatan";break; case 8:cout<<d+212+visokosna<<" dni sa izminali ot nachaloto na godinatan"; cout<<365+visokosna-(d+212+visokosna)<<" dni ostavat do kraya na godinatan";break; case 9:cout<<d+243+visokosna<<" dni sa izminali ot nachaloto na godinatan"; cout<<365+visokosna-(d+243+visokosna)<<" dni ostavat do kraya na godinatan";break; case 10:cout<<d+273+visokosna<<" dni sa izminali ot nachaloto na godinatan"; cout<<365+visokosna-(d+273+visokosna)<<" dni ostavat do kraya na godinatan";break; case 11:cout<<d+304+visokosna<<" dni sa izminali ot nachaloto na godinatan"; cout<<365+visokosna-(d+304+visokosna)<<" dni ostavat do kraya na godinatan";break; case 12:cout<<d+334+visokosna<<" dni sa izminali ot nachaloto na godinatan"; if (d==30){ d=31-d; cout<<d<<" den ostava do kraya na godinatan";break; } else if((d<=29)&&(d>=1)) { cout<<365+visokosna-(d+334+visokosna)<<" dni ostavat do kraya na godinatan";break; } default:cout<<"Nevaliden mesec.n";break; } if ((d<1) && (d>31)) cout<<"Nevalidna data."<<endl; cout<<endl; cout<<"Vavedi vtora data v sushtiya mesec i godina: "; cin>>d2>>m>>g; d-=d2; if ((d>1)&&(d<31)) cout<<"Ima "<<fabs(d)<<" dni razlika mejdu purvata i vtorata vuvedena data."<<endl; else if ((d==1)||(d==-1)) cout<<"Ima "<<fabs(d)<<" den razlika mejdu purvata i vtorata vuvedena data."<<endl; if (d==0) cout<<"Nyama razlika mejdu dvete dati."<<endl; system("pause"); return 0; }Много добре – и коментарите, и структурирането на програмата! Хареса ми и как си използвал променлива visokosna за добавяне на допълнителен ден. Бих ти препоръчал само две неща – в switch оператора да пресмяташ само колко пълни месеца са минали до този и да го присвоиш на една променлива. Така всичкия код там (който е доста подобен за всеки от месеците) ще се изнесе след оператора switch и програмата ще стане по-проста и прегледна.
Ще очаквам с интерес следващо решение :-)