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

Zna li neko??? Please help me?

[es] :: C/C++ programiranje :: Zna li neko??? Please help me?

[ Pregleda: 2123 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Yodirani

Član broj: 135215
Poruke: 8
212.200.175.*



Profil

icon Zna li neko??? Please help me?04.06.2007. u 11:02 - pre 205 meseci
Zna li neko algoritam za ovaj program??? Treba mi hitno!!! Please Help

Code:

#include <stdio.h>
#include <string.h>
#include <ctype.h>

main(int argc, char *argv[])
{

int c,n,i=0,j,br,podvlaka=0,ukupno,potreba,potreba1,znak, bezveze;
int pogodak=0;
int minus=0;

char rec_za_pogadjanje[]="TOLERANCIJA_JE_BOZIJI_DAR"; /* Pojam koji se moze menjati ne sme biti duzi od */
                                 /* 30 karaktera, racunajuci i razmake koji se oznacavaju sa "_" */ 
                                                         
char izvrsna[30];

j=strlen(rec_za_pogadjanje);

while (i<=(j-1)) izvrsna[i++]='*';
izvrsna[i]='\0';

if (argc==1)
{
   printf("Uputstvo:\n"
          "- Program \"vesanje\" se koristi pod LINUX-om u formi:\n"
          "    komandna linija>> vesanje n\n"
          "(gde je n broj puta promasaja koji se dozvoljava"
          " za pogadjanje zadatog pojma)\n"
          "- Molimo za ispravno unete argumente!\n"
          "Napomena: Znak \"_\" oznacava razmak izmedju reci\n");
}
 
else
{
   n=atoi(argv[1]);

   c='_';
   for (br=0;br<=(j-1);br++)
         if (rec_za_pogadjanje[br]==c) { izvrsna[br]=c;
                                      podvlaka++; }
   
printf(" * COPYRIGHT *  Stefan Koprivica (mr02163)   \n");   

   printf("\nPojam za pogadjanje izgleda:  %s \n", izvrsna);

   ukupno=podvlaka;
   
   while(1)
   {
      printf("\nUkucajte slovo: ");
      c=getchar();
      bezveze=getchar();
      potreba=isalpha(c);
 
      if (potreba!=0)
      {
         potreba1=islower(c);
         if (potreba1) c=toupper(c);
         
         pogodak=0;
         for(br=0;br<=(j-1);br++)
         if (rec_za_pogadjanje[br]==c) { izvrsna[br]=c;
                                         pogodak++;
                                         ukupno+=1;
                                         if (ukupno==j)
                                         {
                                            printf("\nCESTITAMO! Pogodili ste zadati pojam.\n");
                                            printf("Hvala sto ste igrali program \"vesanje\"!!!\n");
                                            return 1;
                                         }
                                       }

         if (pogodak>0)
         {
            printf("Imate %d %s\n", pogodak, ((pogodak==1)?"pogodak":((pogodak<5)?"pogodka":"pogodaka")));
            printf("Pojam za pogadjanje sada izgleda:  %s\n", izvrsna);
            printf("Mozete pogadjati jos %d %s \n", (n-minus), (((n-minus)==1)?"put":"puta"));
            printf("\n==================================================================\n");
         }
         else
         {
            minus++;
            printf("Nemate pogodaka..\n");
            printf("Pojam za pogadjanje i dalje izgleda:  %s\n", izvrsna);
            printf("Mozete pogadjati jos %d %s \n", (n-minus), (((n-minus)==1)?"put":"puta"));
            printf("\n==================================================================\n");
            if (n==minus) {
                     printf("\nZao mi je ali ovo je kraj igre. Niste pogodili zadati pojam iz %d pokusaja.\n",n);
                             printf("Vise srece sledeceg puta..  :?)\n");
                             printf("Hvala sto ste igrali program \"vesanje\"!!!\n");
                             return 1;
                          }

         }
      }
   
      else
      {
         printf("\nUneli ste karakter %c koji nije slovo. Molimo pogadjajte ponovo.\n", c);
         printf("Pojam za pogadjanje i dalje izgleda:  %s\n", izvrsna);
         printf("Mozete pogadjati jos %d %s \n", (n-minus), (((n-minus)==1)?"put":"puta"));
         printf("\n==================================================================\n");
      }
   }
}
}




Code:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

main(int argc, char *argv[])
{
   

   if (argc == 1)
   {
      printf ("Uputstvo:\n\n"
              "- Program pokrecete u sledecoj formi\n"
              "[ime_programa] [I_niska] [II_niska] [broj]\n"
              "- Molimo za ispravno unete parametre!");
      return 1;
   }
    
   else
   {
   
      printf ("I_niska: strlen(\"%s\") = %d\n", argv[1], strlen(argv[1]));
      printf ("II_niska: strlen(\"%s\") = %d\n\n", argv[2], strlen(argv[2]));
    
      printf ("strcmp(%s, %s) = %d\n\n", argv[1], argv[2], strcmp(argv[1], argv[2]));
        
      printf ("strncmp(%s, %s, %d) = %d\n\n", argv[1], argv[2], atoi(argv[3]), strncmp(argv[1],argv[2], atoi(argv[3])));
    
      if (strstr(argv[1], argv[2]) == NULL)
         printf ("strstr(%s, %s) = %d\n\n", argv[1], argv[2], NULL);
      else
         printf ("strstr(%s, %s) = %s\n\n", argv[1], argv[2], strstr(argv[1], argv[2]));

      printf ("strncpy(%s, %s) = ", argv[1], argv[2]);
      strncpy(argv[1], argv[2], atoi(argv[3]));
      printf ("%s\n\n", argv[1]);    
    
      printf ("strncat(%s, %s, %d) = ", argv[1], argv[2], atoi(argv[3]));
      strncat(argv[1], argv[2], atoi(argv[3]));
      printf ("%s\n\n", argv[1]);

        
      return 0;
   }

}



EDIT: X Files : Molim Vas da zbog preglednosti, kod upisujete između tag-ova predviđenih za to:

[code]
int main ( int argc, char *argv[] )
{
// ...
return 0;
}
[/code]

Po strani to što nije lako prikazati Flow Chart na forumu (prethodno neko treba da sve uradi i pretvori u sliku),
i što ima DVA zadatka, ali da bi ti neko pomogao, moraš pokazati koliko toliko inicijative. Ovako, teško...



[Ovu poruku je menjao X Files dana 04.06.2007. u 14:39 GMT+1]
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
195.252.105.*



+7 Profil

icon Re: Zna li neko??? Please help me?05.06.2007. u 00:18 - pre 205 meseci
Jel mozes da postavis pitanje malo jasnije (obicnim recima).
Inace , ovaj prvi pogram radi manje vise Ok (korektno).
Smisao je da se otkriju sva slova u skrivenoj recenici iz odedjenog broja pokusaja.
Program posle svakog unesenog slova proverava koliko takvih slova postoji u skrivenoj recenici (proveravajuci slovo po slovo) i otkriva ih (i ispisuje druge podatke kao npr. koliko je pokusaja ostalo).
Mogao bih da ti iskomentarisem red po red ali mi nije jasno sta je pitanje (algoritam programa) pa nebih da trosim vreme uzalud.
Pozdrav
 
Odgovor na temu

Yodirani

Član broj: 135215
Poruke: 8
212.200.175.*



Profil

icon Re: Zna li neko??? Please help me?05.06.2007. u 19:13 - pre 205 meseci
Pravo da ti kazem ja sam ta 2 programa pravio kao jedan. Prvo sam ih pisao odvojeno ali sam kasnije u prvi program prebacio iz prvog <stdlib.h> i hoce da radi!!! Ono sto meni treba jeste algoritam onog dela


if (potreba!=0)
{
potreba1=islower(c);
if (potreba1) c=toupper(c);

pogodak=0;
for(br=0;br<=(j-1);br++)
if (rec_za_pogadjanje[br]==c) { izvrsna[br]=c;
pogodak++;
ukupno+=1;
if (ukupno==j)
{

ako ti nije problem uradi ga!! Unapred hvala twoj Master Yoda Second
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
195.252.105.*



+7 Profil

icon Re: Zna li neko??? Please help me?06.06.2007. u 14:53 - pre 205 meseci
Evo ti ceo program koji radi.
Ispravio sam ga u VC++ / windows XP
Mislim da si ga ovako zamislio.
Za pogodjena slova ne smanjuje preostali broj pokusaja, za promasaje smanjuje.
Ukoliko nema vise pokusaja ili je sve pogodjeno izlazi sa return 1 , a ako komandna linija nije potpuna sa return 0
Pozdav "Dzedaje"
Code:

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(int argc, char* argv[])
{
int c,n,i,j,br,podvlaka,ukupno,potreba,potreba1, bezveze,pogodak,minus;
pogodak=0;
minus=0;
ukupno=0;
podvlaka=0;
i=0;

char rec_za_pogadjanje[]="TOLERANCIJA_JE_BOZIJI_DAR";                                                      
char izvrsna[30];
j=strlen(rec_za_pogadjanje);

while (i<=(j-1)) izvrsna[i++]='*';
izvrsna[i]='\0';

if (argc==1)
{
   printf("Uputstvo:\n"
            "- Program \"vesanje\" se koristi pod LINUX-om u formi:\n"
            "komandna linija>> vesanje n\n"
            "(gde je n broj puta promasaja koji se dozvoljava"
            "za pogadjanje zadatog pojma)\n"
            "- Molimo za ispravno unete argumente!\n"
            "Napomena: Znak \"_\" oznacava razmak izmedju reci\n");
            return 0;
}
else
{
n=atoi(argv[1]); //ovo je bitna linija
//n=10; // moze i ovako
c='_';
for (br=0;br<=(j-1);br++)
{
    if (rec_za_pogadjanje[br]==c) 
        { 
            izvrsna[br]=c;
            podvlaka++;
            ukupno++;
        }
}   
printf(" * COPYRIGHT *  Stefan Koprivica (mr02163)   \n");   
printf("\nPojam za pogadjanje izgleda:  %s \n", izvrsna);
   
while(1)
{
      printf("\nUkucajte slovo: ");
      c=getchar();
      bezveze=getchar();
      potreba=isalpha(c);
      if (potreba!=0)
      {
         potreba1=islower(c);
         if (potreba1) c=toupper(c);
         pogodak=0;
         for(br=0;br<=(j-1);br++)
         {
         if (rec_za_pogadjanje[br]==c) 
            {
                izvrsna[br]=c;
                pogodak++;
                ukupno++;
                if (ukupno==j)
                    {
                         printf("\nCESTITAMO! Pogodili ste zadati pojam.\n");
                         printf("Hvala sto ste igrali \"vesanje\"!!!\n");
                         return 1;
                    }
             }
         }
         if (pogodak>0)
         {
            printf("Imate %d %s\n", pogodak, ((pogodak==1)?"pogodak":((pogodak<5)?"pogodka":"pogodaka")));
            printf("Pojam za pogadjanje sada izgleda:  %s\n", izvrsna);
            printf("Mozete pogadjati jos %d %s \n", (n-minus), (((n-minus)==1)?"put":"puta"));
            printf("\n==================================================================\n");
         }
         else
         {
            minus++;
            printf("Nemate pogodaka..\n");
            printf("Pojam za pogadjanje i dalje izgleda:  %s\n", izvrsna);
            printf("Mozete pogadjati jos %d %s \n", (n-minus), (((n-minus)==1)?"put":"puta"));
            printf("\n==================================================================\n");
            if (n==minus) 
            {
                     printf("\nZao mi je ali ovo je kraj igre. Niste pogodili zadati pojam iz %d pokusaja.\n",n);
                     printf("Vise srece sledeceg puta..  :?)\n");
                     printf("Hvala sto ste igrali program \"vesanje\"!!!\n");
                     return 1;
             }

         }
      }
   
      else
      {
         printf("\nUneli ste karakter %c koji nije slovo. Molimo pogadjajte ponovo.\n", c);
         printf("Pojam za pogadjanje i dalje izgleda:  %s\n", izvrsna);
         printf("Mozete pogadjati jos %d %s \n", (n-minus), (((n-minus)==1)?"put":"puta"));
         printf("\n==================================================================\n");
      }
   }
}
    return 0;
}

 
Odgovor na temu

Yodirani

Član broj: 135215
Poruke: 8
212.200.175.*



Profil

icon Hvala06.06.2007. u 19:17 - pre 205 meseci
Znam za ovaj ceo program ispravljao sam nesto i izbacio argv i argc, tako da sam uspeo da ga osposobim za rad. Ipak hvala za trud... May the Force be with you my young apprentice
 
Odgovor na temu

[es] :: C/C++ programiranje :: Zna li neko??? Please help me?

[ Pregleda: 2123 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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