Tuesday, August 26, 2014

Cho tệp văn bản input.txt mỗi dòng chứa 2 số thực cách nhau ít nhất một dấu cách trống. Cho kiểu cấu trúc số phức gồm 2 thành phần là phần thực và phần ảo. Viết chương trình tạo danh sách LIFO gồm các số phức có phần thực và phần ảo đọc ra từ tệp trên. Tính và thông báo ra màn hình tổng các số phức có mặt trong danh sách LIFO.

Cho tệp văn bản input.txt mỗi dòng chứa 2 số thực cách nhau ít nhất một dấu cách trống. Cho kiểu cấu trúc số phức gồm 2 thành phần là phần thực và phần ảo. Viết chương trình tạo danh sách LIFO gồm các số phức có phần thực và phần ảo đọc ra từ tệp trên. Tính và thông báo ra màn hình tổng các số phức có mặt trong danh sách FIFO.


Tệp input.txt tạo và lưu trên nền ổ C

#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
typedef struct sp
{
      floatthuc,ao;
      sp *next;
};
sp *doctep(sp *x) // doc tep c://input.txt
{
      FILE *u;
      x=NULL;
      sp *p;
      u=fopen("C:\\input.txt","rt");
      while(!feof(u))
      {
                  p=new sp;
                  fscanf(u,"%f",&p->thuc);
                  fscanf(u,"%f",&p->ao);
                  p->next=x;
                  x=p;
      }
      fclose(u);
      returnx;  
}
void xem(sp x)  // xem tong so phuc
{
      printf("\n   %5.2f  +  %5.2f i  ",x.thuc,x.ao);
}
void xemtoanbo(sp *x)// xem toàn bô sô phuc vua doc tu tep input.txt
{
      sp *tam=x;
      while(tam!=NULL)
      {
            //printf("\n   %5.2f  +  %5.2f i  ",tam->thuc,tam->ao);
            xem(*tam);
            tam=tam->next;
      }
}
sp tong2sp(sp a,sp b) // tong 2 so phuc
{
      sp z;
      z.thuc=a.thuc+b.thuc;
      z.ao=a.ao+b.ao;
      returnz;
}
sp tong(sp *x) // tong danh sach so phuc
{
      sp tong,*tam=x;
     
      tong.thuc=0;   //khoi tao sp tong=0
      tong.ao=0;     //
     
      while(tam!=NULL)
      {
           
            tong=tong2sp(tong,*tam);
            tam=tam->next;
      }
      returntong;
}
void main()
{
      sp *x;
      x=newsp;
      x=doctep(x);
      xemtoanbo(x);
      printf("\nTong mang so phuc  :   ");
      xem(tong(x));
      getch();

}

Câu 2: Cho dãy số {a1,a2,…an} với n<=100. Viết chương trình thực hiện các công việc sau: a) Đọc các giá trị {a1,a2,..an} vào từ bàn phím và xác định xem dãy nhận được có phải là hoán vị của {1,2..n} không? b) Phân chia {a1,a2…an} thành các dãy con tăng dần có độ dài cực đại.

Câu 2: Cho dãy số {a1,a2,…an} với n<=100. Viết chương trình thực hiện các công việc sau:
a)       Đọc các giá trị {a1,a2,..an} vào từ bàn phím và xác định xem dãy nhận được có phải là hoán vị của {1,2..n} không?
Phân chia {a1,a2…an} thành các dãy con tăng dần có độ dài cực đại.
code :


Bai 2a

#include <stdio.h>
#include <conio.h>
void nhapmang(int a[],int n)
{
                int i;
                for (i=0;i<n;i++)
                {
                                printf("\nNhap phan tu thu %5d    :   ",i);
                                scanf("%d",&a[i]);
                }
}
void xemmang(int a[],int n)
{
                int i;
                printf("\n"); 
                for (i=0;i<n;i++)
                                printf("  %5d  ",a[i]);
                printf("\n");
}
int kiemtra(int x[],int n)
{
     inty[1000],i;
                 for(i=0;i<1000;i++) y[i]=0;
                 for(i=0;i<n;i++) (y[x[i]])++;
                 for(i=1;i<=n;i++) if (y[i]!=1) return 0;
                 return 1;
}
void main()
{
                int n;
                int a[100];
                printf("\nnhap so phan tu trong mang   :  ");
                scanf("%d",&n);
                nhapmang(a,n);
                xemmang(a,n);
                if (kiemtra(a,n)) printf("\n       La hoan vi cua .................");
                else printf("\n       Khong phai La hoan vi..............");
                getch();
}






Bai2 B

#include <stdio.h>
#include <conio.h>
void nhapmang(int a[],int n)
{
                int i;
                for (i=0;i<n;i++)
                {
                                printf("\nNhap phan tu thu %5d    :   ",i);
                                scanf("%d",&a[i]);
                }
}
void xemmang(int a[],int n)
{
                int i;
                printf("\n"); 
                for (i=0;i<n;i++)
                                printf("  %5d  ",a[i]);
                printf("\n");
}
void daycon(int b[],int n)
{
     inti=0,j,x;
                 printf("\nDay con");
                 do
                 {
                                 while((b[i]>b[i+1])&&(i<n))
                     {
                                                  printf("\n%5d\n",b[i]);
                                                  i++;
                                 }
                                 if (i>=n) break;
                                 j=i;
                                 while((b[i]<=b[i+1])&&(i<n)) i++;
                                 printf("\n");
                                 for(x=j;x<=i;x++) printf("%5d",b[x]);
                                 printf("\n");
                 } while(i<n);
}
void main()
{
                int n;
                int a[100];
                printf("\nnhap so phan tu trong mang   :  ");
                scanf("%d",&n);
                nhapmang(a,n);
                xemmang(a,n);
                printf("\nDay con");
                daycon(a,n);
                getch();

}

Cho một tệp văn bản input.txt chứa các phần tử nguyên không âm, các phần tử cách nhau ít nhất một dấu cách trống hoặc ít nhất một dấu xuống dòng. Viết chương trình đổi các số nguyên đọc ra từ tệp input.txt thành xâu nhị phân và xâu hexa tương ứng. Kết quả đưa vào tệp văn bản output.txt theo dạng: n ----> xâu nhị phân -----> xâu hexa (1 điểm)


Cho một tệp văn bản input.txt chứa các phần tử nguyên không âm, các phần tử cách

nhau ít nhất một dấu cách trống hoặc ít nhất một dấu xuống dòng. Viết chương trình đổi các
số nguyên đọc ra từ tệp input.txt thành xâu nhị phân và xâu hexa tương ứng. Kết quả đưa
vào tệp văn bản output.txt theo dạng:
n ----> xâu nhị phân -----> xâu hexa (1 điểm)

 : file input.txt và output.txt ở nền ô C




#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <math.h>
void doctep(int a[],int *n,FILE *l)
{
     int i=0;
     while(!feof(l))
     {
         fscanf(l,"%d",&a[i]);
         i++;
     }
     *n=i;
}
void xemmang(int a[],int n)
{
     int i;
     printf("\n");
     for(i=0;i<n;i++)
             printf(" %d ",a[i]);
     printf("\n");
}
char *nhiphan(int n)
{
     int i=0,j,k,x;
     char s[33],d[3]="01",tg;
     x=n;
     while(x!=0)
     {
          k=x%2;
          s[i]=d[k];
          i++;
          x=x/2;
     }
     j=i;
     for(i=0;i<(j/2);i++)
     {
          tg=s[i];
          s[i]=s[j-i-1];
          s[j-i-1]=tg;
     }
     s[j]=NULL;
     return&s[0];
}
char *chuanhoa(char s[])
{
     inti,j,n=strlen(s)-1,k;
     chars1[100];
     if((n+1)%4==0) return &s[0];
     k=((n+1)/4+1);
     for(i=0;i<=n;i++) s1[k*4-i]=s[n-i];
     for(i=0;i<(k*4-n);i++) s1[i]='0';
     s1[k*4+1]=NULL;
     return&s1[1];
}
char *hecxa2(int n,FILE *l)
{
                inti,j,k,x=0;
                chars[65],np1[65],np[65],d[17]="0123456789ABCDEF";
                strcpy(np1,nhiphan(n));
                fprintf(l,"%d  ==> %s ===>",n,np1);
                strcpy(np,chuanhoa(np1));
                n=strlen(np);
                for(i=0;i<n;i+=4)
                {
          k=0;
          for(j=0;j<4;j++) if (np[i+j]=='1') k+=pow(2.0,3-j);
          s[x]=d[k];
          x++;
      }
      s[x]=NULL;
      return&s[0];
}
void ghihecxa(int a[],int n,FILE *l)
{
      int i;
      charhx[33];
      for(i=0;i<n;i++)
      {
           strcpy(hx,hecxa2(a[i],l));
           fprintf(l,"%s\n",hx);
      }
}
int main()
{
      intn,a[1000];
      FILE *u,*v;
      v=fopen("c:\\output.txt","wt");
      u=fopen("c:\\input.txt","rt");
      doctep(a,&n,u);
      printf("\nMang du lieu doc ra co  %5d  phan tu",n);
      xemmang(a,n);
      ghihecxa(a,n,v);
      fclose(u);
      fclose(v);
      printf("\n\nHoantat");
      getch();

}

Tuesday, August 12, 2014

Cho tệp văn bản input.txt mỗi dòng một xâu ký tự. Viết chương trình đếm xem mỗi loại chữ cái từ ‘A’ đến ‘Z’ xuất hiện bao nhiêu lần trong tệp input.txt Ví dụ: Với nội dung của tệp là “AbcDeaB” ‘A’: Xuất hiện 2 lần; ‘B’: Xuất hiện 2 lần; ‘C’: Xuất hiện 1 lần; ‘D’: Xuất hiện 1 lần; ‘E’: Xuất hiện 1 lần.

#include <stdio.h>
#include <string.h>
#include <ctype.h>
intmain()
{
       chars[1000],t;
       inta[91],i,j,k;
       FILE *u;
       u=fopen("c:\\input.txt","rt");
       for(k=65;k<=90;k++) a[k]=0;
       while(!feof(u))
       {
              fflush(stdin);
              fgets(s,1000,u);
              for(j=0;j<strlen(s);j++)
              {
                     t=toupper(s[j]);
                     if(t>='A'&&t<='Z') a[t]++;
              }
              //printf("\n%s",s);
       }
       fclose(u);
       for(i=65;i<=90;i++)
       if(a[i]!=0)
              printf("\nKi tu %c xuat hien %d lan",i,a[i]);
}




Câu 1.21: viết chương trình tính tổng s= 1+ 1/3^2 + 1/5^2....+ 1/(2n+1)^2) với n nguyên dương nhập vào từ bàn phím

#include <conio.h>
#include <stdio.h>

floattong(int n)
{
       int i;
       floats=0;
       for(i=0;i<=n;i++)
              s+=1.0/((2*i+1)*(2*i+1));
       return s;
}
voidmain()
{
       int n;
       printf("\nNhap N=   ");
       scanf("%d",&n);
       printf("\n Tong s = %f",tong(n));
       getch();
}


1.22 :viết chương trình tính tổng s= 1+ 1/2 + 1/3....+ 1/n với n nguyên dương nhập vào từ bàn phím

#include <conio.h>
#include <stdio.h>

floattong(int n)
{
       int i;
       floats=0;
       for(i=1;i<=n;i++)
              s+=1.0/i;
       return s;
}
voidmain()
{
       int n;
       printf("\nNhap N=   ");
       scanf("%d",&n);
       printf("\n Tong s = %f",tong(n));
       getch();
}


Câu 2.20: Viết chương trình nhập vào một mảng hai chiều amxn gồm các số thực. Đếm và in ra màn hình số phần tử dương có mặt trong mảng.

//code Dung NV
#include <stdio.h>
#include <conio.h>
void nhapmang(int a[][50],int x,int y)
{
    int i,j;
    for (i=0;i<x;i++)
    for (j=0;j<y;j++)
    {
        printf("nhap phan tu [%d][%d] : ",i,j);
        scanf("%d",&a[i][j]);
    }
}
void inmang(int a[][50],int x,int y)
{
    int i,j;
    for (i=0;i<x;i++)
    {
       for (j=0;j<y;j++)
       printf(" %5d ",a[i][j]);
       printf("\n");
    }
}
int dem(int a[][50],int x,int y)
{
                int i,j,dem1=0;
                for (i=0;i<x;i++)
       for (j=0;j<y;j++)
                                   if(a[i][j]>0) dem1++;
                return dem1;
}
void main()
{
    int m,n;
    int a[50][50];
    printf("nhap so hang ,so cot");
    scanf("%d%d",&m,&n);
    printf("nhap mang : \n");
    nhapmang(a,m,n);
    printf("\n in mang  \n");
    inmang(a,m,n);
    printf("\nSo phan tu duong trong mang la :    %5d",dem(a,m,n));
    getch();

}