zadaa 4 - samo materijali i materijali · 2015-10-26 · univerzitet u sarajevu elektrotehni ki...
TRANSCRIPT
UNIVERZITET U SARAJEVU
ELEKTROTEHNIČKI FAKULTET
Zadaća 4
OSNOVE RAčUNARSTVA
Student: Armin Dajić
Grupa: (Svi studenti)
Broj indeksa: 15738
Potpis:
Ocjena:
2
Potpis tutora:
UNIVERZITET U SARAJEVU
ELEKTROTEHNIČKI FAKULTET
Zadatak 1. 1.c
/* Program vrsi (de)kodiranje string-a po algoritmu rot13 */ #include <stdio.h>#include <stdlib.h> void rot13 (char *string); int main(){ int i; char string[100]; printf("Unesite string (do 100 slova):\n"); i=0; do { string[i]=getchar(); i++; } while (string[i-1]!='\n' && i<100); string[i-1]='\0'; rot13(string); return 0;} void rot13 (char *string){ int dod; while (*(string)!='\0') { if (*string>=65 && *string<=90) { if (*string+13>90) { dod=-13; } else dod=13; *string=*string+dod; } else if (*string>=97 && *string<=122) { if (*string+13>122) { dod=-13; } else dod=13; *string=*string+dod; } printf("%c",*string); string++; } printf("\n"); return 0;
Stranica 2
UNIVERZITET U SARAJEVU
ELEKTROTEHNIČKI FAKULTET
}
Stranica 3
UNIVERZITET U SARAJEVU
ELEKTROTEHNIČKI FAKULTET
Zadatak 2.2.c
/* Sortiranje slova iz unesenog stringa po abecedi (Pravila sortiranja navodim primjerom:) bBB?aAa --> AaaBBb? Napomena: Slova i simboli izvan engleske abecede bit ce sortirani premavrijednostima svog ASCII koda (to ukljucuje i nasa slova sa afrikatima!), i ispisanitek na kraju stringa */ #include <stdio.h>#include <stdlib.h> void string_sort(char *string); int main(){ int i; char string[100]; printf("Unesite string (do 100 slova):\n"); i=0; do { string[i]=getchar(); i++; } while (string[i-1]!='\n' && i<100); string[i-1]='\0'; string_sort(string); return 0;} void string_sort(char *string){ int i,k,broj1,broj2; char pomocno; for (i=0; *(string+i)!='\0'; i++) { for (k=i; *(string+k)!='\0'; k++) { /* broj1 i broj2 odreduju prioritet slova: za 'A' - broj1/2=0; za 'a' -broj1/2=1; za B - broj1/2=2,... */ if (*(string+i)>=65 && *(string+i)<=90) {broj1=(*(string+i)-65)*2;} else if (*(string+i)>=97 && *(string+i)<=122) {broj1=(*(string+i)-97)*2+1;} else broj1=*(string+i)+1000; if (*(string+k)>=65 && *(string+k)<=90) {broj2=(*(string+k)-65)*2;} else if (*(string+k)>=97 && *(string+k)<=122) {broj2=(*(string+k)-97)*2+1;} else broj2=*(string+k)+1000; if (broj1>broj2) { pomocno=*(string+i); *(string+i)=*(string+k);
Stranica 4
UNIVERZITET U SARAJEVU
ELEKTROTEHNIČKI FAKULTET
*(string+k)=pomocno; } } } for (i=0; *(string+i)!='\0'; i++) { printf("%c",*(string+i)); } printf("\n"); return 0;}
Stranica 5
UNIVERZITET U SARAJEVU
ELEKTROTEHNIČKI FAKULTET
Zadatak 3.3.c
/* Program unesenu rijec prevodi na "satrovacki" Napomena: Suglasnikom smatram svako slovo/simbol koje nije samoglasnik i nije NULLznak Pretpostavka: Unesena rijec nema slova razlicite velicine (program radi i u tomslucaju - ali za NPR: "Sarajevo", ispisuje "rajevoSa" Program radi iskljucivo prema pravilima navedenim u tekstu */ #include <stdio.h>#include <stdlib.h> void satrovacki(char *string); int main(){ int i; char string[100]; printf("Unesite rijec (do 100 slova):\n"); i=0; do { string[i++]=getchar(); } while (string[i-1]!='\n' && i<100); string[i-1]='\0'; satrovacki(string); return 0;} void satrovacki(char *string){ int i,k,p; char niz1[100],niz2[100]; i=0; k=0; /* Petlja - trazi prvu sekvencu suglasnik samoglasnik, a dotad sva slova ubacuje uarray niz1, koji predstavlja prvi slog */ while ( *string!='\0' && ( (*string==65 || *string==97 || *string==79 || *string==111 || *string *string==73 || *string==105 || *string==85 || *string==117 || *string=='\0') || (*(string+1)!=65 && *(string+1)!=97 && *(string+1)!=79 && *(string+1) *(string+1)!=73 && *(string+1)!=105 && *(string+1)!=85 && *(string+1 ) ) { niz1[i++]=*string++; } if (*string!='\0')
Stranica 6
UNIVERZITET U SARAJEVU
ELEKTROTEHNIČKI FAKULTET
{ niz1[i++]=*string++; niz1[i++]=*string++; /* Ubacuje sekvencu suglasnik samoglasnik u prvi slog */ if ( /* Ako su sljedeca 2 slova suglasnici, prvo takoder ulazi u prvi slog */ (*string!=65 && *string!=97 && *string!=79 && *string!=111 && *string!=69&& *string!=101 && /* Slovo je suglasnik */ *string!=73 && *string!=105 && *string!=85 && *string!=117 && *string!='\0') && (*(string+1)!=65 && *(string+1)!=97 && *(string+1)!=79 && *(string+1)!=111 *(string+1)!=73 && *(string+1)!=105 && *(string+1)!=85 && *(string+1)!=117 && *(string+1)!='\0') ) niz1[i++]=*string++; while (*string!='\0') niz2[k++]=*string++; /* Formira string od ostatka slovaiz rijeci */ } niz1[i]='\0'; niz2[k]='\0'; /* Ispis ostatka rijeci */ for (p=0; p<k; p++) { printf("%c",niz2[p]); } /* Ispis pocetnog sloga (na kraju) */ for (p=0; p<i; p++) { printf("%c",niz1[p]); } printf("\n"); return 0;}
Stranica 7