Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #define N 3
- #define X 4 /* rozmer matice sa da lubovolne menit */
- #define MAT printf
- int pole[X][X];
- void nacitaj(FILE*);
- int mocnina(int,int);
- void vypis();
- int main() /* main - iba spusta funkcie */
- {
- FILE *subor=NULL;
- nacitaj(subor);
- vypis();
- getchar();
- getchar();
- return 0;
- }
- void nacitaj(FILE *subor)
- {
- char c[20]; /* Nacita binarne a zapise decimalne hodnoty matice do 2D pola */
- char k;
- int i=0,q=0,m,dec=0,f,j=0,u=0;
- if((subor = fopen("MATICE.TXT", "r")) == NULL) /* Nacitanie suboru */
- {
- printf("Subor sa nepodarilo otvorit \n");
- }
- else
- {
- for(j;j<=N;j++) /* Cykly na zapis pola */
- {
- for(u;u<=N;u++)
- {
- while(((k=getc(subor)) == '1' || k == '0') ) /* Nacitanie zo suboru (ak je 1 alebo 0 tak ho prehodi cez ordinarnu honotu) */
- {
- c[q]=k;
- q++;
- }
- i=q-1;
- for(i;i>=0;i--) /* iterator pre prevod (aby sa postupne zmensovali mocniny) */
- {
- m=c[i]-48;
- f=q-i-1;
- dec=dec+m*mocnina(2,f); /* Prevod do decimalnej sustavy */
- }
- q=0;
- pole[j][u]=dec;
- dec=0;
- }
- getc(subor);
- u=0;
- }
- }
- fclose(subor);
- }
- int mocnina(int a,int b)
- {
- int i=1,o=1; /* Funkcia na mocniny */
- for(i;i<=b;i++)
- {
- o=o*a;
- }
- return o;
- }
- void vypis()
- {
- int x=0,y=0,i=0,cislo;
- printf("MATICA S HODNOTAMI: \n");
- for(x=0;x<=N;x++)
- {
- for(y=0;y<=N;y++)
- {
- if(pole[x][y]>9) /* aby program vedel kolko ma dat medzier medzi cislami aby to bolo zarovnane */
- printf("%d ",pole[x][y]);
- else if(pole[x][y]>9910)
- printf("%d ",pole[x][y]);
- else if(pole[x][y]<10)
- printf("%d ",pole[x][y]);
- }
- MAT("\n");
- }
- MAT("\n");
- MAT("POROVNANIE PRVKOV NA DIAGONALE:\n");
- for(x=0;x<=N;x++)
- {
- for(y=0;y<=N;y++) /* Funkcia na vypis v decimalnom tvare a porovnanie na diagonale */
- {
- if(x==y)
- {
- for(i=0;i<=N;i++)
- {
- if(i!=y)
- {
- if(pole[x][y]>pole[x][i])
- MAT("Prvok %dx%d je vacsi ako prvok %dx%d\n",x+1,y+1,x+1,i+1);
- else if(pole[x][y]<pole[x][i])
- MAT("Prvok %dx%d je mensi ako prvok %dx%d\n",x+1,y+1,x+1,i+1);
- else if(pole[x][y]==pole[x][i])
- MAT("Prvky %dx%d a %dx%d su rovnake\n",x+1,y+1,x+1,i+1);
- }
- }
- MAT("\n");
- }
- }
- y=0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement