Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Datumi, razna izracunavanja

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Datumi, razna izracunavanja

[ Pregleda: 4892 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

SAFF
Computer Art

Član broj: 49147
Poruke: 161
212.200.9.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon [Zadatak] Datumi, razna izracunavanja21.03.2006. u 22:16 - pre 191 meseci
Interesujeme jeli moguce ovo ispraviti ili treba ispicetka da osmislim ideju da bi ovaj program radio sledece:
1 daizracunava koji je dan po redu pr. ako zadamo datum 2.5.1999 on ispisuje da je zadati dan 59dan i da je ostalo josh 306 dana do nove godine....
Naravno ovde ima nekih petlji vezanih za prestupne godine ako nedko moze da mi pomogne neka to i uradio evo koda koji radi na odredjivanju tacnosti datuma !!

Code:

# include <stdio.h>
# include <conio.h>
# include <math.h>
void main(void)
{
int god,mesec,dani;
textbackground(7);
textcolor(0);
clrscr();
printf("\n\t Unesite zeljenu godinu i mesec\n");
printf("\n");
printf("    Godina = ");
scanf("%d",&god);
printf("    Mesec = ");
scanf("%d",&mesec);
printf("    Dan  = ");
scanf("%d",&dani);
switch(mesec)
{
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
                if (dani>0 && dani<=31)
                printf("\n\t Datum je regularno napisan");
                else printf("\n\t Datum je neispravan");
                break;
case 4:case 6:case 9:case 11: if (dani>0 && dani<=30)
                printf("\n\t Datum je regularno napisan");
                else printf("\n Datum je neispravan");
                break;
case 2: if((god%4)!=0 || (god%100==0 && god%400!=0))
            if (dani>0 && dani<=28)
                printf("\n\t Datum je regularno napisan");
            else printf("\n\t Datum je neispravan");
    else
            if(dani>0 && dani <=29)
            printf("\n\t Datum je regularno napisan");
            else printf("\n\t Datum je neispravan");
                break;
    default:
    printf("\n Greska");
}
scanf("\n");
        }



Hvala unaped !!
SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
80.93.240.*



+2 Profil

icon Re: [Zadatak] Datumi, razna izracunavanja21.03.2006. u 22:46 - pre 191 meseci
Kao prvo izbaci sve nepotrebne headere. Zatim zaboravi na textcolor(0); i sl.
Zatim ako pišeš nešto tipa:
Code:

printf("neki teskt\n");

Ili nemoj pisati ispod toga još jednom
Code:

printf("\n");


Nego 2 puta napiši \n kod prve funkcije. Ako ti je potrebno štampanje samo jednog karaktera kao što je taj, koristi naredbu putchar. Zatim sredi taj kod da radi, ili lepo prepiši ako očekuješ nečiju pomoć. Mislim na
Code:

scanf("\n");


Sad malo o algoritmu. Napraviš f-ju koja računa da li je godina prestupna ili ne.
Zatim napraviš jedan niz od 12 elemenata u kome smeštaš max broj dana u jednom mesecu.
Zatim praviš f-ju koja računa redni broj dana. Kako?
Kad uneseš mesec, šetaš se kroz onaj niz i sabiraš vrednosti tj. max. br dana u tom mesecu, i dodaš još redni broj dana u tom mesecu + 1 ako je godina prestupna.
Znači ako imaš 23 - 4 - 19xx
Izračunaš da li je godina prestupna
Zatim redni broj dana ti je
31 + 28 + 31 + 23 + 1 ako je prestupna.
31,28,31 su ti podaci iz onog niza, 23 je argument f-je i on se dodaje tako. Kada praviš f-ju koja računa da li je godina prestupna ili nije, namesti da vraća 0 ako nije i jedan ako jeste i samo je pozoveš kod ovo računanja.

Koliko dana do nove godine?
Imaš f-ju koja računa koji je redni broj dana u godini. Broj dana u godini ti je 365 + 1 ako je prestupna, odnosno + vrednost f-je koja računa prestupnost. Od tog broja oduzmeš redni broj dana u godini i zadatak je gotov.

pOz

77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

stargazer
bgd

Član broj: 85916
Poruke: 117
*.eunet.yu.



Profil

icon Re: [Zadatak] Datumi, razna izracunavanja21.03.2006. u 22:54 - pre 191 meseci
Bez uvrede, ali ja bih se kao korisnik smorio da na ovakav način unosim datum...

Ono što je možda bolje je da ograničiš format unosa datuma na npr : 01.10.2004. i onda parsuješ unos
Tako će biti jednostavnije korisniku, a i ti znaš gde šta da očekuješ kod provere ispravnosti.
With no lovin' in our souls and no money in our coats you can't say we're satisfied
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
212.200.9.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: [Zadatak] Datumi, razna izracunavanja21.03.2006. u 22:55 - pre 191 meseci
HEHEH:]]]
hvala na pomoci jesam pocetnik u C programiranju ali nisam totalni pocetnik hvala ti na ovome josh jednom "mislim na \n" i sl..
Komentarisanje i razvijanje algoritma mi nije problem ovo sto si ti meni pokazao ...
Ali nastaje fka kako to prebaciti u code....


uradio sam funkciju kada je godina prestupna ali kako je ubaciti i gde jer imam ovu bash koja super radi
Code:

if((god%4)!=0 || (god%100==0 && god%400!=0))
            if (dani>0 && dani<=28)

ukoliko ne prestavlja veci problem pomozite mi dalje ili cu provoditi previse vremena na jednostavne stvari :]]
SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
80.93.240.*



+2 Profil

icon Re: [Zadatak] Datumi, razna izracunavanja21.03.2006. u 23:16 - pre 191 meseci
Pa ti bi bez cimanja i trebao da provedeš vremena na jednostavnijim stvarima. Ja nisam mogao da pređem na ništa ozbiljnije (strukture, kasnije klase i OOP) dok se nisam otelio učeći pointere, kako rade i koliko su mi zaista potrebni, jer bez njih ne možeš ništa. Ovo ti je stvarno jednostavno.

Da li si ti učio pravljenje f-ja ili sve pišeš u jednom fajlu i jednom main-u?
Da li si se susretao s nečim ovakvim:
Code:

int nekavr(const int broj)
{
    return broj=broj%400 == 0 && broj%100 != 0 || broj%400 == 0;
}

Code:

int x;
x=nekavr(5);


Ako jesi napravi mi f-je koje sam ti rekao, ako nisi, reci da nisi pa da vidimo šta možemo da uradimo.
Znaš li makar kako se pravi niz?
Napiši sve iz početka pa daj da vidimo gde je zapelo.
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
80.93.240.*



+2 Profil

icon Re: [Zadatak] Datumi, razna izracunavanja21.03.2006. u 23:20 - pre 191 meseci
@stargazer
Ovo su školski (fakultetski) zadaci. Treba odraditi što jednostavnije. Da li bi početnik nešto naučio kada bi mu odmah radio string to integer konverziju?

77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
212.200.9.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: [Zadatak] Datumi, razna izracunavanja22.03.2006. u 07:34 - pre 191 meseci
Ne nismo radili funkcije u C-u jer smo tek zavrsili sa pascala pa se ja malo i gubim "da tako kazem" u c-u jer su dosta slicni i onda uporno pokusavam da osmislim zadatak u c-u a ustvari razmisljam u pascalu...
Jutros sam bash nesto razmisljao i dosao na ideju da se moze uraditi na jedan ovakav nacim ili bar ja tako mislim:
dobro ulaz u svakom slucaju ide godina mesec dan i onda odmah da ide na proveru da li je godina prestupna ili ne, zatimu zavisnosti od godine ide na grane prestupna ili ne ...
Ako gresim ispravite me !!
Ako mozes slobodno reci jer predpostvaljam da se c i svodi na funkcije ali mi josh uvek radimo pocetnicke programe kako bi razumeli kod..
SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
212.200.9.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: [Zadatak] Datumi, razna izracunavanja22.03.2006. u 09:40 - pre 191 meseci
Evo nesto sam uspeo uradit znam da nije kao kod drugih majstora ali ipak sam ja josh uvek pocetnik ... posavetujte me jer znam da moze lakse i brze.. ostao mi je jednino problem oko unosenja za dan jer nesto nemogu uklopit funkciju
Code:
 if (dani>0 && dani<=31)
printf("\n\t Uneti broj dana je pogresno upisan!!");
Ovo funkcionise ali se tu i ne zavrsava sto je moja zelja naravno kada se unese neregularan dan dase program prekine uz poruku i ne ide dalje!

evo i celog koda
Code:

# include <stdio.h>
# include <conio.h>
# include <math.h>
void main(void)
{
int god,mesec,dani,brdana,nova;
printf("\n\n\t Unesite zeljenu godinu i mesec\n");
printf("    Godina = ");
scanf("%d",&god);
printf("    Mesec = ");
scanf("%d",&mesec);
printf("    Dan  = ");
scanf("%d",&dani);
{
if((god%4)==0 || (god%100==0 && god%400!=0))
    switch(mesec)
    {
    case 1: brdana=dani; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 2: brdana=dani+31; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 3: brdana=dani+31+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 4: brdana=dani+2*31+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 5: brdana=dani+2*31+30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 6: brdana=dani+3*31+30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 7: brdana=dani+3*31+2*30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 8: brdana=dani+4*31+2*30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 9: brdana=dani+5*31+2*30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 10:brdana=dani+5*31+3*30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 11:brdana=dani+6*31+3*30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 12:brdana=dani+6*31+4*30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
    break;}

else    switch(mesec)
    {
    case 1: brdana=dani; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 2: brdana=dani+31; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 3: brdana=dani+31+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 4: brdana=dani+2*31+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 5: brdana=dani+2*31+30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 6: brdana=dani+3*31+30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 7: brdana=dani+3*31+2*30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 8: brdana=dani+4*31+2*30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 9: brdana=dani+5*31+2*30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 10:brdana=dani+5*31+3*30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 11:brdana=dani+6*31+3*30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
        break;
    case 12:brdana=dani+6*31+4*30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);
    break;
    default: printf("\n Unet je nepostojeci broj meseca, pokusajte ponovo ");}
scanf("\n");
}}



Josh jednom zelim da napomenem da znam da moze ovo sve lakse ali na neki meni nepoznat nacin koji cu nadam se uskoro sanzat!!
SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
80.93.240.*



+2 Profil

icon Re: [Zadatak] Datumi, razna izracunavanja22.03.2006. u 11:10 - pre 191 meseci
Bez f-ja teško šta dobro može da se odradi. Ako je ovo sam početak, nemoj mnogo da se jediš. Neće mnogo uticati na ocenu. To je profesor zadao samo da vidi koliko razumeš osnovne nardbe.
Ja sam ti odradio ovaj zadatak onako kako ja mislim da bi trebalo. Još nisi učio tako nešto ali ćeš učiti vrlo brzo. Čudno da nisi i do sada, no dobro...
stargazer kaže da mu je smor da unosi dan pa mesec pa godinu. Znači umesto da unosiš 15.12.1984 unosićeš 15 12 1984
Znači tačku samo promeniš sa razmakom :D

Ego ga i kod:
Code:

#include <stdio.h>

int verify_date(const int,const int, const int);
int leapyear(const int);
int day_of_year(const int,const int,const int);
int days_till_NY(const int,const int,const int);

int main()
{
    int dd,mm,yy;
    printf("\nUnesite dan, mesec i godinu: ");scanf("%d%d%d",&dd,&mm,&yy);
    if(!verify_date(dd,mm,yy))exit(1);
    printf("\nTo je: %d. dan u godini\n",day_of_year(dd,mm,yy));
    printf("Preostali broj dana do Nove Godine: %d\n\n",days_till_NY(dd,mm,yy));
    
    return 0;
}

int leapyear(const int year)
{
    return year%4 == 0 && year%200 != 0 || year%400 == 0;
}

static char max_days[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int day_of_year(const int day, const int month, const int year)
{
    int i, dd=day;
    for(i=1; i<month;i++)
        dd += max_days[i];
    return dd+(leapyear(year)&&month>2);
}

int days_till_NY(const int day, const int month, const int year)
{
    return 365+leapyear(year)-day_of_year(day,month,year);
}

int verify_date(const int day,const int month, const int year){
    return month<13 && month>0 && day<=max_days[month]+leapyear(year) && day>0;
}

Izlaz:
Code:

Unesite dan, mesec, i godinu: 18 12 1984
To je: 353. dan u godini
Preostali broj dana do Nove Godine: 13


Ako se unese negativni broj za godinu, računa se datum pre nove ere :D
Takođe postoji validacija ako uneseš neispravan datum tj. ako uneseš 29 februar u ne prestupnoj godini i sl.
E sad me je mrzelo još da pišem i ime dana, npr. 18 12 1984 je utorak i sl. mada ako ima zainteresovanih koje to interesuje...

pOz
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
82.208.233.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: [Zadatak] Datumi, razna izracunavanja23.03.2006. u 08:59 - pre 191 meseci
Hvala ti sto si se potrudio i to odradio...
Ali ima gresku koju ja nerazumijuci ovaj kod neumem odklonit a gresku prijavljuje kompajler kod koda
Code:
if(!verify_date(dd,mm,yy))exit(1);
nadam se da ces ti to uz vrlo malo problema odklonit..
Imao sam samo 2*2 casa iz programskog jezika C pa zato i nismo stigli radit to....
SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
80.93.240.*



+2 Profil

icon Re: [Zadatak] Datumi, razna izracunavanja23.03.2006. u 11:43 - pre 191 meseci
Code:

if(verify_date(dd,mm,yy)==0)exit(1);

?


77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
212.200.8.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: [Zadatak] Datumi, razna izracunavanja23.03.2006. u 20:04 - pre 191 meseci
Code:

# include <stdio.h>
# include <conio.h>
# include <math.h>
void main(void)
{
int god,mesec,dani,brdana,nova;
textbackground(7);
textcolor(0);
clrscr();
printf("\n\n\t Unesite zeljenu godinu i mesec\n");
printf("    Godina = ");
scanf("%d",&god);
printf("    Mesec = ");
scanf("%d",&mesec);
printf("    Dan  = ");
scanf("%d",&dani);
{
if((god%4)==0 || (god%100==0 && god%400!=0))
    switch(mesec)
    {
    case 1:if (dani>0 && dani<=31);
        brdana=dani; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        else printf("\n\t Unet je nepostojeci broj dana, pokusajte ponovo :]]");
        break;
    case 2: brdana=dani+31; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 3: brdana=dani+31+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 4: brdana=dani+2*31+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 5: brdana=dani+2*31+30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 6: brdana=dani+3*31+30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 7: brdana=dani+3*31+2*30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 8: brdana=dani+4*31+2*30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 9: brdana=dani+5*31+2*30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 10:brdana=dani+5*31+3*30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 11:brdana=dani+6*31+3*30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 12:brdana=dani+6*31+4*30+29; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
    break;}

else    switch(mesec)
    {
    case 1: brdana=dani; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 2: brdana=dani+31; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 3: brdana=dani+31+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 4: brdana=dani+2*31+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 5: brdana=dani+2*31+30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 6: brdana=dani+3*31+30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 7: brdana=dani+3*31+2*30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 8: brdana=dani+4*31+2*30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 9: brdana=dani+5*31+2*30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 10:brdana=dani+5*31+3*30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 11:brdana=dani+6*31+3*30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        break;
    case 12:brdana=dani+6*31+4*30+28; nova=365-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
    break;
    default: printf("\n Unet je nepostojeci broj meseca, pokusajte ponovo :]]");}
scanf("\n");
}}


Ovaj program radi isto to i na ovom principu (jedini problem je sto se moze upisati broj dana bilo koji od - do +..):]]... pa sam pokusavao to da resim ovom funkcijom if i javlja gresku, kako to da ukomponujem, jer funkcija if funkcionise ali pravi problem kada se unese neregularan dan ona nastavlja dan a ne prekida program...

Code:
:if (dani>0 && dani<=31);
        brdana=dani; nova=366-brdana;
        printf("\t Redni broj dana je %d",brdana);
        printf(", a do nove godine ostalo je josh %d",nova);printf(" dana !!");
        else printf("\n\t Unet je nepostojeci broj dana, pokusajte ponovo :]]");
        break;


"Ovo je pokusaj da resim problem" ali ne funkcionise bash najbolje...
SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
212.200.8.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: [Zadatak] Datumi, razna izracunavanja11.04.2006. u 21:31 - pre 190 meseci
Evo josh jednog problema ko moze i zeli neka mi pomogne da shvatim kako da resim ovaj problem.

Na osnovu unetih parametara m i n treba da se formira matrica sa m redova i n kolona a za stampu treba da izdaje
pr. 00 01 02 03 04 0... 0n
10 11 12 13 14 1... 1n
20 21 22 23 24 2... 2n
30 31 32 33 34 3... 3n
40 41 42 43 44 4... 4n
..0 .1 .2 .3 .4 .....n
m0
nadam se da sam bio jasan stim sto mi je neophodno da u sledecem koraku se ta matrica prepolovi i stampa samo gornja dijagonala (sa odsecanjem m redova ukoliko je m>n).. ukoliko su moja pitanja bila nejasna recite sta je nejasno hvala unapred!!
SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

@zrael


Član broj: 80614
Poruke: 21
*.adsl.net.t-com.hr.



Profil

icon Re: [Zadatak] Datumi, razna izracunavanja18.04.2006. u 22:19 - pre 190 meseci
za moje misljenje je to previse case-ova.
1. napravi polje od 12 elem. gdje svaki predstavlja jedan mjesec.
2. unesi datum (d.m.g)
3. napravi funkciju koja ce provjeravat dali je godina prestupna (g mod 4), ako je => drugi element povecaj za 1
4. zbroji: koji=(elemente polja do m-1)+d // koji je dan
koliko=(365 ili 366)-koji // koliko ima do kraja


Nije mi se dalo strikat po kodu ali ovo ti je puno kraci souce na kraju nego to sa caseovima. Malo je možda zahtjevniji ali je definitivo lagan da ga svako moze shvatiti.
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
212.200.8.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: [Zadatak] Datumi, razna izracunavanja19.04.2006. u 10:35 - pre 190 meseci
Hvala ti! Vec sam to bio odradio! ali me sad muci ovaj drugi problem sa for petljom ako imash vremena pogledaj to i vidi kako to da resim ali striktno tako pomocu for petlje....
SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

Bojan Kopanja
Bojan Kopanja
Senior Web Developer, ZeusSoftware
Stara Pazova

Član broj: 6155
Poruke: 507
80.93.238.*

ICQ: 346697685
Sajt: www.zeussoftware.rs


Profil

icon Re: [Zadatak] Datumi, razna izracunavanja19.04.2006. u 16:26 - pre 190 meseci
Ako sam te dobro razumeo za ovo sa for petljom onda je to prosto kao pasulj .

Evo koda:

Code:
#include <stdio.h>

main()
{
  int i, j, m, n;
  
  printf("Unesi m i n: ");
  scanf("%d %d", &m, &n);
  
  for(i=0; i<=m; i++)    
  {
           for(j=0; j<=n; j++)
           {
                    printf(" %d%d", i, j);
           }
           printf("\n");
  }
  
  system("PAUSE");    
  return 0;
}


Ja sam ovde uradio sam stampanje te matrice, a ti lepo umesto stampanja samo stavi da se dodeljuju vredosti clanovima matrice...
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
212.200.8.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: [Zadatak] Datumi, razna izracunavanja19.04.2006. u 19:53 - pre 190 meseci
Hvala ti puno dobro si me razumeo ali ostaje samo josh problem kako matricu prepoloviti da ostane gornja polovina po dijagonali, (uz uslov da ako je broj redova veci od kolona pr. 4,3 onda se 4 red ne uzima u obzir)...
Hvala ti unapred...
SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

Bojan Kopanja
Bojan Kopanja
Senior Web Developer, ZeusSoftware
Stara Pazova

Član broj: 6155
Poruke: 507
80.93.238.*

ICQ: 346697685
Sajt: www.zeussoftware.rs


Profil

icon Re: [Zadatak] Datumi, razna izracunavanja20.04.2006. u 13:07 - pre 190 meseci
Pa i to je lako ... Tebi treba samo iznad dijagonale, zar ne? E pa onda se zapitas samo sta ti oznacava te elemente iznad dijagonale... Oznacava ih cinjenica da je iznad dijagonale brojac i uvek manji od brojaca j .

Znaci samo stavis jedan uslov tipa
Code:
if(i<j) printf("...")
i bice ti stampano samo ono iznad dijagonale, a odsecanje viska redova takodje resavas ogranicavanjem druge for petlje na broj do kojeg se izvrsava i prva for petlja pa ce ti onda biti kvadrana matrica...

Evo koda na brzinu iz glave ( samo sam izmenio gornji zadatak, tako da je totalno ne optimizovano, ali bi trebalo da radi ):
Code:
#include <stdio.h>

main()
{
  int i, j, m, n;
  
  scanf("%d %d", &m, &n);
  
  printf("Matrica bez promene: \n\n");
 
  for(i=0; i<=m; i++)    
  {
           for(j=0; j<=n; j++)
           {
                    printf(" %d%d", i, j);
           }
           printf("\n");
  }
  
  printf("\nPromenjena matrica: \n\n");
  
  for(i=0; i<=m; i++)    
  {
           if(m<n)
           for(j=0; j<=m; j++)
           {
                    if(i<j)
                      printf(" %d%d", i, j);
                    else if(i>=j)
                      printf("   ");
                    
           }
           else if(m>=n)
           for(j=0; j<=n; j++)
           {
                    if(i<j)
                      printf(" %d%d", i, j);
                    else if(i>=j)
                      printf("   ");
                    
           }
           printf("\n");
  }
  
  system("PAUSE");    
  return 0;
}


Javi ako nesto zaskripi .

[Ovu poruku je menjao Strog dana 20.04.2006. u 14:13 GMT+1]
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
212.200.9.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: [Zadatak] Datumi, razna izracunavanja20.04.2006. u 15:04 - pre 190 meseci
HEHEH hvala ti u svakom slucaju postoji li mogucnost da ova dijagonala odseca broj redova a ne kolona jer matrica posle odsecanja pocinje od 01 a trebalo bi od 00,
Hvala ti josh jednom a ja cu tumaciti ovaj zadatak jer sam iz njega trebo nesto naucit!
Stim sto se moram zalit da profesorica koju imam nije bash neka sto se tice razjasnjavanja sta program radi i kako vec sve nesto na brzinu....
SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

Bojan Kopanja
Bojan Kopanja
Senior Web Developer, ZeusSoftware
Stara Pazova

Član broj: 6155
Poruke: 507
80.93.238.*

ICQ: 346697685
Sajt: www.zeussoftware.rs


Profil

icon Re: [Zadatak] Datumi, razna izracunavanja20.04.2006. u 15:14 - pre 190 meseci
Naravno da moze, samo te ja nisam razumeo... Mislio sam da ti trebaju clanovi matrice iznad dijagonale, a ne i sama dijagonala... Samo stavi umesto
Code:
if(i<j)
     printf(" %d%d", i, j);
else if(i>=j)
     printf("   ");
ovo:
Code:
if(i<=j)
     printf(" %d%d", i, j);
else if(i>j)
     printf("   ");
i resen problem.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Datumi, razna izracunavanja

[ Pregleda: 4892 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.