Zadatak za okvire

1

Zadatak za okvire

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Radim jedan zadatak koji kaze ovako:
Napisite program koji prikazuje okvir unutar okvira unutar okvira unutar okvira. Svaki okvir treba nacrtati drugacijim znakom. Napisite program tako da se jednostavnom zamenom jedne vrednosti odredjuje koliko nivoa oblika se crta.

Ja sam radio ovako jedan slican zadatak i znao sam da ga resim sam, na kojem sam trebao da nacrtam jedan okvir a u okviru da stoji neki tekst.

Poceo sam da nekako radim ovo, ali uvek zapnem kad treba da se izbace okvire. Evo koda kako sam poceo:
#include <stdio.h> #include <stdlib.h> #define sirok 3 #define plus '+' #define crta '-' #define procenat '%' #define taraba '#' #define prazno ' ' void string(int, char); int main() {     int broj;     printf("Unesite koliko okvira zelite unutar okvira(MAX = 4): ");     scanf("%d", &broj);     printf("Uneli ste da zelite %d okvira\n", broj);     if(broj <= 0 || broj >= 4){         printf("\n\nUnesite broj do 4!\n");         exit(EXIT_FAILURE);         }         return EXIT_SUCCESS; } void string(int n, char ch) {     while(n-- > 1){         putchar(ch);     } }

Dodjem tako, ali kako sad da stavim da se izbacuju oblici. Ja imam ideju da se napravi prvi okvir od 30 znaka na horizontali i dva znaka na vertikali pa idu 2 razmaka tj. 2 prazno, pa opet okvir i tako dalje..

Mozete li mi malo pomoci da mogu da resim.

Hvala unapred!!



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Na odmoru xD
  • Na odmoru xD
  • Pridružio: 15 Feb 2012
  • Poruke: 430

#include <stdio.h> char ZVEZDICA = '*'; void Pravougaonik(void) {     int intBrojac;    for(intBrojac = 0;intBrojac<=19;intBrojac++)    {        printf("*");    }    printf("\n");    for(intBrojac = 0;intBrojac<=10;intBrojac++)    {        printf("%c%19c\n", ZVEZDICA, ZVEZDICA);    }    for(intBrojac = 0;intBrojac<=19;intBrojac++)    {        printf("*");    }    printf("\n"); } int main(void) {     Pravougaonik();     system("PAUSE");     return 0; }
Mislim da je zadatak malo tezi za tebe ali pokusaj da ga resis gore ti je kod kako da nacrtas jedan okvir.
Nemogu da ti napisem ceo kod nemama vremenea nadam se da ce ti neko drugi vec pomoci i da ces shvati.



offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Napisano: 08 Okt 2012 20:40

Ovaj kod sto si mi dao razumem sve sta radi. Sad cu probati da napravim drugi okvir u njemu, ako ne uspem, javicu, pa ako imas vremena ili neko drugi da mi pomogne sa zaddatkom. Ne trazim od tog da mi uradi zadatak skroz, vec samo da mi malo pomogne da mu sam da napravim kod, jer se tako najbolje uci.

Dopuna: 12 Okt 2012 10:41

Nisam uspeo da ono napravi, mozete li mi pomoci malo, samo da ukapiram kako bi trebao da ide kod?

offline
  • Na odmoru xD
  • Na odmoru xD
  • Pridružio: 15 Feb 2012
  • Poruke: 430

Napisano: 12 Okt 2012 12:03

#include <stdio.h> void okvir1(void) {     printf("**********************************");     printf("*                                                                *");     printf("*                                                                *");     printf("*                                                                *");     printf("**********************************"); } void okvir2(void) {     printf("**********************************");     printf("*    #########################    *");     printf("*    #                                                    #    *");     printf("*    #########################    *");     printf("**********************************"); } void okvir3(void) { // Sad stavis isto onako samo 3 okvira povecaj one gore kako bi ti stalo } void okvir4(void) {   //sad stavis 4 okvira } int main(void) {     int a;     printf("Unesite koliko bi ste okvira hteli: ");     scanf("%d",&a);    if(a==1)   {       okvir1();   }   else if(a==2)   {    okvir2();   }   else if(a==3)   {   okvir3();   }    else if(a==4) {   okvir4(); } else { printf("Unesli ste pogresan broj okvira!!!"); } system("PAUSE"); return 0; }

Dopuna: 12 Okt 2012 12:04

Uno gore sa primerima u okvirima mi se iznekog razloga pomerilo ali nije bitno shvaticces ideju.

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Evo ceo kod, 1 i 2 okvira rade, ali 3 i 4 ne izbacuje skoz lepo, ne razumem zasto, znas li mozda zasto ne izbaci lepo kako sam stavio?

#include <stdio.h> #include <stdlib.h> void okvir1(void) {     printf("**********************************");     printf("\n*                                *");     printf("\n*                                *");     printf("\n*                                *");     printf("\n**********************************\n"); } void okvir2(void) {     printf("\n**********************************");     printf("\n*    #########################   *");     printf("\n*    #                       #   *");     printf("\n*    #                       #   *");     printf("\n*    #                       #   *");     printf("\n*    #                       #   *");     printf("\n*    #########################   *");     printf("\n**********************************\n"); } void okvir3(void) {     printf("\n**********************************");     printf("\n*    #########################   *");     printf("\n*    #  %%%%%%%%%%%%%%%%%%%% #   *");     printf("\n*    #  %                  % #   *");     printf("\n*    #  %                  % #   *");     printf("\n*    #  %                  % #   *");     printf("\n*    #  %                  % #   *");     printf("\n*    #  %%%%%%%%%%%%%%%%%%%% #   *");     printf("\n*    #########################   *");     printf("\n**********************************\n"); } void okvir4(void) {     printf("\n**********************************");     printf("\n*    #########################   *");     printf("\n*    #  %%%%%%%%%%%%%%%%%%%% #   *");     printf("\n*    #  % $$$$$$$$$$$$$$$$ % #   *");     printf("\n*    #  % $              $ % #   *");     printf("\n*    #  % $              $ % #   *");     printf("\n*    #  % $$$$$$$$$$$$$$$$ % #   *");     printf("\n*    #  %%%%%%%%%%%%%%%%%%%% #   *");     printf("\n*    #########################   *");     printf("\n**********************************\n"); } int main(void) {     int a;     printf("Unesite koliko bi ste okvira hteli: ");     scanf("%d",&a);    if(a==1)   {       okvir1();   }   else if(a==2)   {    okvir2();   }   else if(a==3)   {   okvir3();   }    else if(a==4) {   okvir4(); } else { printf("Unesli ste pogresan broj okvira!"); } system("PAUSE"); return EXIT_SUCCESS; }

offline
  • Na odmoru xD
  • Na odmoru xD
  • Pridružio: 15 Feb 2012
  • Poruke: 430

Brate aj se zapita sto nece cemu sluzi % za konverziju a dva %% takva daju jedan % zato izbegavaj % da korstis u printf.

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Aj jao da, zaboravio sam, evo celog koda:
#include <stdio.h> #include <stdlib.h> void okvir1(void) {     printf("**********************************");     printf("\n*                                *");     printf("\n*                                *");     printf("\n*                                *");     printf("\n**********************************\n"); } void okvir2(void) {     printf("\n**********************************");     printf("\n*    #########################   *");     printf("\n*    #                       #   *");     printf("\n*    #                       #   *");     printf("\n*    #                       #   *");     printf("\n*    #                       #   *");     printf("\n*    #########################   *");     printf("\n**********************************\n"); } void okvir3(void) {     printf("\n**********************************");     printf("\n*    #########################   *");     printf("\n*    #  ++++++++++++++++++++ #   *");     printf("\n*    #  +                  + #   *");     printf("\n*    #  +                  + #   *");     printf("\n*    #  +                  + #   *");     printf("\n*    #  +                  + #   *");     printf("\n*    #  ++++++++++++++++++++ #   *");     printf("\n*    #########################   *");     printf("\n**********************************\n"); } void okvir4(void) {     printf("\n**********************************");     printf("\n*    #########################   *");     printf("\n*    #  ++++++++++++++++++++ #   *");     printf("\n*    #  + $$$$$$$$$$$$$$$$ + #   *");     printf("\n*    #  + $              $ + #   *");     printf("\n*    #  + $              $ + #   *");     printf("\n*    #  + $$$$$$$$$$$$$$$$ + #   *");     printf("\n*    #  ++++++++++++++++++++ #   *");     printf("\n*    #########################   *");     printf("\n**********************************\n"); } int main(void) {     int a;     printf("Unesite koliko bi ste okvira hteli: ");     scanf("%d",&a);    if(a==1)   {       okvir1();   }   else if(a==2)   {    okvir2();   }   else if(a==3)   {   okvir3();   }    else if(a==4) {   okvir4(); } else { printf("Unesli ste pogresan broj okvira!"); } system("PAUSE"); return EXIT_SUCCESS; }

Hvala ti!! Ziveli Ziveli

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Nego... kako bi napravio da broj okvira može da bude recimo 20?

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Pa trebao bi da napravim tako 20 funkcija od okvir1 do okvir20 samo neznam gde bih nasao toliko znakova za 20 okvira.

I da stavim dalje else if do 20.

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Po mom mišljenju, niste zadatak rešili onako kako je bilo zamišljeno. Prilično sam siguran da si zadatak trebao da rešiš uz pomoć petlji, a ne da samo napraviš par procedura koje malo drugačije crtaju okvire.

Ko je trenutno na forumu
 

Ukupno su 515 korisnika na forumu :: 19 registrovanih, 3 sakrivenih i 493 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: AC-DC, Bane san, David, gasha, goxin, HDMI, Kibice, kolateralnasteta, Krusarac, mercedesamg, nenad81, nuke92, Oluj2.1, Oscar2, Profica, suton, vathra, vlahale, wizzardone