Варіант 20 лаба 5 #include <stdio.h> #include <conio.h> #define N 10 int main(void) { int a[N][N],i,j,size; int m,n,k=2,count=0,flag=0; puts("Enter size of array (size<10):"); scanf("%d",&size); puts("Enter array:"); for(i=0;i<size;i++) for(j=0;j<size;j++) scanf("%d",&a[i][j]); puts("Enter k"); scanf("%d",&k); for(i=0;i<size;i++) for(j=0;j<size;j++){ if(a[i][j]==0 && (size-j)>=k && (size-i)>=k){ for(m=i;m<k+i && flag!=1;m++) for(n=j;n<k+j && flag!=1;n++) if(a[m][n]!=0) flag=1; if(flag==0) count++; } flag=0 ; } puts("Result:"); printf("%d",count); getch(); return 0;
} Варіант 4 лаба 5 #include <stdio.h> #include <conio.h> #include <dos.h> void main(){ unsigned char far *membeg; unsigned char far *cur; unsigned char far *pre; char ans; int k=0; membeg=(unsigned char far*)MK_FP(0xB800, 0); cur=membeg; pre=membeg; do{ ans=getch(); if(ans=='*'&&cur!=membeg){ pre=cur-2; if(*pre=='*')*pre='^'; else *cur=ans; } else *cur=ans; k++; cur+=2; }while(!(ans==13)); }
Варіант 20 лаба 3 #include <stdio.h> #include<conio.h> #define MAX 10 int check(int a[], int b[], int size) { int i,k=1; for(i=0;i<size;i++) if(b[i]!=a[i]){ k=0; break; } if(k==0) return 0; else return 1; } int selection_sort(int a[], int size) { int i,j,temp; int count=0; for(i=0;i<size;i++) for(j=i+1;j<size;j++){ if(a[i]>=a[j]){ temp=a[i]; a[i]=a[j]; a[j]=temp; } } return count=size*size/4; } void print(int *a,int size) { int i; for(i=0;i<size;i++) printf("%d ",a[i]); } int radixsort(int *a,int size) { int i,b[MAX],m=0,exp=1; int count=0,k=0; for(i=0;i<size;i++) { if(a[i]>m) m=a[i]; } while(m/exp>0) { int bucket[10]={0}; for(i=0;i<size;i++) bucket[a[i]/exp%10]++; for(i=1;i<10;i++) bucket[i]+=bucket[i-1]; for(i=size-1;i>=0;i--) b[--bucket[a[i]/exp%10]]=a[i]; for(i=0;i<size;i++) a[i]=b[i]; exp*=10; k++; }
return count=(size+10)*k; } int main() { int a[MAX],b[MAX]; int i,n,c1,c2; printf("Enter total elements (n < %d) : ",MAX); scanf("%d",&n); printf("Enter 1st array : "); for(i=0;i<n;i++) scanf("%d",&a[i]); printf("Enter 2nd array : "); for(i=0;i<n;i++) scanf("%d",&b[i]); c1=radixsort(a,n); c2=selection_sort(b,n); if(!check(a,b,n)) printf("Arrays are different\n"); else{ printf("Arrays are same\n"); print(b,n); } printf("\nRadix: %d\nSelection: %d",c1,c2); getch(); return 0; }
Варіант 4 лаба 3 #include <stdio.h> #include <alloc.h> #include <stdlib.h> #include <math.h> #include <alloc.h> int xchgs=0,cmprs=0; div_t divres; int idegree(int, int); void Xchangev(int*, int*); void insertions(int*, int); void digits(int*, int, int); void Xtractequals(int*, int*); void arAND(int*, int*, int, int); void main(){ char ans; int i,j,k; int n,m,t; int *a1, *a2; printf("How many elements are there in array#1?\n"); scanf("%d",&n); printf("How many elements are there in array#2?\n"); scanf("%d",&m); printf("How many digits are we going to use?"); scanf("%d",&t); a1=(int*)calloc(n,sizeof(int)); a2=(int*)calloc(m,sizeof(int)); for(i=0;i<n;i++){ printf("Enter the el-t #%d (array#1): ",i+1); scanf("%d",a1+i); } for(i=0;i<m;i++){ printf("Enter the el-t #%d (array#2): ",i+1); scanf("%d",a2+i); } Xtractequals(a1, &n); Xtractequals(a2, &m); insertions(a1, n); digits(a2, m, t); arAND(a1, a2, n, m); free(a1); free(a2); } void Xchangev(int *a, int *b){ int z; z=*a; *a=*b; *b=z; } void insertions(int *mas, int n){ int i,j,z,c=0,r=0; for(i=1;i<n;i++){ z=*(mas+i); r++; for(j=i-1;j>=0&&*(mas+j)>z;j--){ c++; *(mas+j+1)=*(mas+j); r++; } *(mas+j+1)=z; r++; } printf("Insertion\n Comparations: %d\n Data transfers: %d\n",c,r); } void digits(int *Q, int n, int t){ int m=1,i,j,k,l; int *list[10], len[10]; for(j=0;j<t;j++){ for(k=0;k<10;k++){ list[k]=(int*)malloc(n*sizeof(int)); len[k]=0; } for(i=0;i<n;i++){ k=(Q[i]/m)%10; *(list[k]+len[k])=Q[i]; len[k]++; } for(k=0;k<10;k++) for(l=0;l<len[k];l++,i++)Q[i]=*(list[k]+l); for(k=0;k<10;k++)free(list[k]); } } void Xtractequals(int *mas, int *n){ int i,j; for(i=0;i<*n-1;i++) for(j=i+1;j<*n;j++){ if(*(mas+i)==*(mas+j)){ Xchangev(mas+j,mas+(*n)-1); (*n)--; } } } void arAND(int *a1, int *a2, int n, int m){ int i,j; for(i=0;i<n;i++) for(j=0;j<m;j++) if(a1[i]==a2[j])printf("%d\n",a1[i]); }
Варіант 19 лаба 3 #include<stdio.h> #include<conio.h> #define N 10 #define L 10 int Perevirka(int *m, int &n1); int SortV(int *ms, int n2); int Porivn(int *mel1, int *mel2, int n3); int k5=0; int k6=0; void main(void) { int n,i,y,l,mas[N],mas1[L]; printf("Vvedit kilkist elementiv perwogo masyvu: "); scanf("%d",&n); printf("Vvedit elementy pershogo masyvu: "); for(i=0; i<n; i++) scanf("%d",&mas[i]); Perevirka(mas,n); SortV(mas,n); printf("Vvedit kilkist elementiv drugogo masyvu: "); scanf("%d",&l); printf("Vvedit elementy drugogo masyvu: "); for(y=0; y<l; y++) scanf("%d",&mas1[y]); Perevirka(mas1,y); SortV(mas1,y); Porivn(mas, mas1, n); printf("Kilkist obminiv - %d",k5); printf("\nKilkist porivnjan - %d",k6); getch(); } int Perevirka(int *m, int &n1) { int i1, j1,k,k1,t; for(i1=0; i1<n1; i1++) { for(j1=i1+1;j1<n1;j1++) { while (m[i1]==m[j1]) { for(k=j1; k<n1; k++) m[k]=m[k+1]; n1--; } } } } int SortV( int *ms, int n2) { int q,w,temp; for(q=1; q<n2; q++) { temp=ms[q]; for(w=q-1;q>=0&&ms[w]>temp;w--) ms[w+1]=ms[w]; k5++; ms[w+1]=temp; } } int Porivn(int *mel1, int *mel2, int n3) { int i2, j2,k2,k3=-1,t1,mel3[10]; for(i2=0; i2<n3; i2++) { for(j2=0;j2<n3;j2++) { k6++; if (mel1[i2]==mel2[j2]) { k3++; mel3[k3]=mel1[i2]; } } } printf("Novui masyv: "); for(k2=0;k2<=k3;k2++) printf("%d ",mel3[k2]); printf("\n"); return mel3[k2]; }