#include "MyLib.h"Idź do kodu źródłowego tego pliku.
Funkcje | |
| void | WyswietlMacierz (int n, int m, double a[][matrix_M]) |
| void | ZapisMacierzy (char *NazwaPliku, int n, int m, double a[][matrix_M]) |
| void | OdczytMacierzy (char *NazwaPliku, int *n, int *m, double a[][matrix_M]) |
| int | parserCSV (char *buf, char *ws[], int n, const char *delim) |
| void | readCSV (char *nazwaCSV, int *N, struct TLst Lst[]) |
| int | NWD (int p, int q) |
| int | NWDr (int p, int q, int *x, int *y) |
| int | pmod (int b, int e, int m) |
Zmienne | |
| const int | matrix_N = 25 |
| const int | matrix_M = 25 |
| const char | separator [] = ";\r\t\n" |
| const char | sepStr [] = "\"" |
| int NWD | ( | int | p, | |
| int | q | |||
| ) |
Najwiekszy Wspolny Dzielnik
Popularny algorytm Euklidesa
Definicja w linii 148 pliku MyLib.c.
Odwołania w genKluczeRSA().
00149 { 00150 int r; 00151 00152 if( p<1 || q<1 ) 00153 { 00154 puts("Ups ..."); 00155 exit(-1); 00156 } 00157 for(r=p%q; r!=0; r=p%q) 00158 { 00159 p = q; 00160 q = r; 00161 } 00162 return q; 00163 }
| int NWDr | ( | int | p, | |
| int | q, | |||
| int * | x, | |||
| int * | y | |||
| ) |
rozszerzony algorytm Euklidesa:
Definicja w linii 168 pliku MyLib.c.
Odwołania w genKluczeRSA().
00169 { 00170 int r,t,xp,xr,yp,yr; 00171 00172 if( p<1 || q<1 ) 00173 { 00174 puts("Ups ..."); 00175 exit(-1); 00176 } 00177 xp = *y = 1; 00178 *x = yp = 0; 00179 for(r=p%q; r!=0; r=p%q) 00180 { 00181 t = p/q; 00182 p = q; 00183 q = r; 00184 xr = *x; 00185 *x = xp - t*xr; 00186 xp = xr; 00187 yr = *y; 00188 *y = yp - t*yr; 00189 yp = yr; 00190 } 00191 return q; 00192 }
| void OdczytMacierzy | ( | char * | NazwaPliku, | |
| int * | n, | |||
| int * | m, | |||
| double | a[][matrix_M] | |||
| ) |
Definicja w linii 45 pliku MyLib.c.
00046 { 00047 FILE *fPlik; 00048 int i,j; 00049 00050 fPlik = fopen(NazwaPliku,"r"); 00051 fscanf(fPlik,"%i", n); 00052 fscanf(fPlik,"%i", m); 00053 for(i=0; i<*n; i=i+1) 00054 { 00055 for(j=0; j<*m; j=j+1) 00056 { 00057 fscanf(fPlik,"%lf",&a[i][j]); 00058 } 00059 } 00060 fclose(fPlik); 00061 }
| int parserCSV | ( | char * | buf, | |
| char * | ws[], | |||
| int | n, | |||
| const char * | delim | |||
| ) |
Obsluguje formaty Excel-CSV oraz TSV (ISO-8859-2)
Definicja w linii 73 pliku MyLib.c.
Odwołania w readCSV().
00074 { 00075 int i; 00076 00077 ws[0] = buf; 00078 for(i=1; i<=n; i=i+1) 00079 { 00080 ws[i] = strpbrk(ws[i-1], delim); 00081 if( ws[i]==NULL) 00082 break; 00083 *ws[i] = '\0'; 00084 ws[i] = ws[i]+1; 00085 } 00086 return i-1; 00087 }
| int pmod | ( | int | b, | |
| int | e, | |||
| int | m | |||
| ) |
naiwna potega
Definicja w linii 197 pliku MyLib.c.
Odwołania w deKryptFile(), kryptFile() i main().
00198 { 00199 int c; 00200 00201 for(c=1; 1<=e; e=e-1) 00202 { 00203 c = (c*b)%m; 00204 } 00205 return c; 00206 }
| void readCSV | ( | char * | nazwaCSV, | |
| int * | N, | |||
| struct TLst | Lst[] | |||
| ) |
Definicja w linii 89 pliku MyLib.c.
Odwołuje się do TLst::Ocena, parserCSV(), separator i sepStr.
00090 { 00091 char buf[1024],*wr,*ws[32],*wt[3]; 00092 FILE *fDane; 00093 int i,n; 00094 00095 fDane = fopen(nazwaCSV, "r"); 00096 *N = 0; 00097 n = 3; 00098 if( fDane==NULL ) 00099 { 00100 perror(nazwaCSV); 00101 exit(-1); 00102 } 00103 printf("z pliku \"%s\"", nazwaCSV); 00104 while( fgets(buf,1024,fDane)!=NULL ) 00105 { 00106 /* tu mozemy sprawdzic co jest wczytywane 00107 printf(">%s<\n",buf); 00108 */ 00109 if( parserCSV(buf, ws, n, separator)!=n ) 00110 continue; 00111 for(i=0; i<n; i=i+1) 00112 { 00113 if( parserCSV(ws[i], wt, 2, sepStr)==2 ) 00114 { 00115 switch( i ) 00116 { 00117 case 0: 00118 strcpy(Lst[*N].Im, wt[1]); 00119 break; 00120 case 1: 00121 strcpy(Lst[*N].Na, wt[1]); 00122 break; 00123 default: 00124 puts("ERROR: zly rekord !?"); 00125 break; 00126 } 00127 } 00128 else 00129 { 00130 wr = strchr(ws[i],','); 00131 if( wr!=NULL) 00132 *wr = '.'; 00133 Lst[*N].Ocena = atof(ws[i]); 00134 } 00135 } 00136 *N = *N+1; 00137 } 00138 fclose(fDane); 00139 }
| void WyswietlMacierz | ( | int | n, | |
| int | m, | |||
| double | a[][matrix_M] | |||
| ) |
| void ZapisMacierzy | ( | char * | NazwaPliku, | |
| int | n, | |||
| int | m, | |||
| double | a[][matrix_M] | |||
| ) |
Definicja w linii 28 pliku MyLib.c.
00029 { 00030 FILE *fPlik; 00031 int i,j; 00032 00033 fPlik = fopen(NazwaPliku,"w"); 00034 fprintf(fPlik,"%i\n%i\n",n,m); 00035 for(i=0; i<n; i=i+1) 00036 { 00037 for(j=0; j<m; j=j+1) 00038 { 00039 fprintf(fPlik,"%4.2lf\n",a[i][j]); 00040 } 00041 } 00042 fclose(fPlik); 00043 }
1.5.8