HBT Blog
Image

Thuật toán tính tổng các chữ số trong pascal



Ý tưởng là ta chia số đó cho 10 lấy dư (mod) thì được chữ số hàng đơn vị, và lấy số đó div 10 thì sẽ được phần còn lại. Do đó sẽ chia liên tục cho đến khi không chia được nữa (số đó bằng 0), mỗi lần chia thì được một chữ số và ta cộng dồn chữ số đó vào tổng.

Hàm tính tổng chữ số nhận vào 1 số nguyên n và trả lại kết quả là tổng các chữ số của nó:

function tongcs(n:integer): integer;
var s : integer;
begin
s := 0;
while n <> 0 do begin
s := s + n mod 10;
n := n div 10;
end;


Thuật toán kiểm tra số nguyên tố trong pascal

Thuật toán kiểm tra số nguyên tố trong pascal của ta dựa trên ý tưởng: nếu n >1 không chia hết cho số nguyên nào trong tất cả các số từ 2 đến thì n là số nguyên tố. Do đó ta sẽ kiểm tra tất cả các số nguyên từ 2 đến có round(sqrt(n)), nếu n không chia hết cho số nào trong đó thì n là số nguyên tố.
Nếu thấy biểu thức round(sqrt(n)) khó viết thì ta có thể kiểm tra từ 2 đến n div 2.

Hàm kiểm tra nguyên tố nhận vào một số nguyên n và trả lại kết quả là true (đúng) nếu n là nguyên tố và trả lại false nếu n không là số nguyên tố.
program sont;
uses crt;
var n,i,tong,j:integer;
    snt:boolean;
    A:array[1..100] of integer;
function ktnt(a:integer):boolean;
var i:integer;
kt:boolean;
begin
kt:=true;
if a<=1 then kt:=false;
for i:=2 to trunc(sqrt(a)) do
if (a mod i = 0) then kt:=false;
ktnt:=kt;
end;
begin
clrscr;
writeln('nhap so phan tu cua mang A :');
readln(n);
for i:= 1 to n do
    begin
    writeln('nhap phan tu thu ',i,' ');
    read(A[i]);
    end;
tong:=0;
for i:=1 to n do
begin
if ktnt(A[i]) then
   tong:=tong+1;
end;
writeln('-------------------------------------------');
writeln(' tong co ',tong,' snt trong mang' );
writeln(' cac so do la ');
for i:=1 to n do
if ktnt(A[i]) then write(A[i],' ');
readln;
readln;
end.

Thuật toán kiểm tra số nguyên tố trong pascal

Bài Tập lớn Môn C/C++ phần Ma Trận

Ma trận trong C/C++
#include <stdio.h>
#include <conio.h>
#include <math.h>
void nhapmt(int a[9][9],int m , int n)
{ for ( int i=0;i<m;i++)
 for (int j=0;j<n;j++)
      { printf("\ nhap a[%d]:[%d]",i,j);
 scanf("%d,%d",&a[i][j]);
 }
}
void xuat_mt(int a[9][9],int m , int n)
{ for (int i=0;i<m;i++)
{printf("\n");
 for (int j=0;j<n;j++)
 { printf("%d  ",a[i][j]);
    // printf("\n");
 }
  }
}
// max tren toan ma tran
void maxmatran(int a[9][9],int m , int n)
 {        int max;
 max= a[0][0];
  for (int i=0;i<m;i++)
  {
   for (int j=0;j<n;j++)
    {
    if( max < a[i][j]  )
    max=a[i][j];
   }
  }
 printf("\n phan tu lon nhat tren ma tran la %d : ",max);
 }
//max theo tung hang
void max_hang(int a[9][9],int m , int n)
{
 int maxhang,max;
  for (int i=0;i<m;i++)
  { max=a[i][0];
   for (int j=0;j<n;j++)
    {
    if( max < a[i][j]  )
    max=a[i][j];
   }
  printf(" max cua hang a[%d][0] la : ",i);
  printf("%d",max);
  printf("\n");
  }

}
//max theo tung cot
void max_cot(int a[9][9],int m , int n)
{
 int maxcot,max;
  for (int j=0;j<m;j++)
  { max=a[0][j];
   for (int i=0;i<n;i++)
    {
    if( max < a[i][j]  )
    max=a[i][j];
   }
  printf(" max cua cot a[%d][0] la : ",i);
  printf("%d",max);
  printf("\n");
  }

}
//chuyen vi ma tran
void chuyen_vi(int a[9][9],int e[9][9],int m , int n)
 {
    int i,j;   
    for (i=0;i<n;i++) 
        for (j=0;j<m;j++)
            {a[i][j]=e[j][i];
   }
}
// tim so nguyen to tren toan ma tran
int snt(int a)
{
    if (a<=1) return 0;
    for (int i=2;i<a;i++)
        if (a%i==0) return 0;
 else
    return 1;   
}
//tich ma tran
void tich_mt(int c[9][9],int a[9][9],int b[9][9],int m , int n)
{ int k;
for(int i=0;i<m;i++)
 for(int j=0;j<n;j++)
 {
 c[i][j]=0;
 for (k=0;k<m;k++)
  c[i][j]=c[i][j]+a[i][k]*b[k][j];
 }
}
// cong 2 ma tran
void cong_mt(int d[9][9],int a[9][9],int b[9][9],int m , int n)
{
 int i, j;
 for (i=1;i<=m;i++)
  for (j=1;j<=n;j++)
  {
  d[i][j]=0;
  d[i][j]=a[i][j]+b[i][j];
  }
}
//so hoan hao
/*bool SoHoanHao(int n)
{
    int temp=0;
    for (int i=1;i<n;i++)
  for (int j=0;j<m;j++)
        if (a[i][j]%i==0)
            temp=temp+i;
    if (temp==n)
        return true;
    else
        return false;
}
*/
//chuong trinh chinh


void main()
{
clrscr();
int a[9][9];
int a2[9][9];
int c[9][9];
int d[9][9];
int e[9][9];
int m,n,m2,n2;
 int i,j;
 int tong=0;
printf("\n nhap so hang : ");
scanf("%d",&m);
printf("\n nhap so cot : ");
scanf("%d",&n);
nhapmt(a,m,n);
printf("\n da nhap xong , bam enter de xem ket qua ");
getch();
printf("\n ma tran ban vua nhap la : ");
xuat_mt(a,m,n);
printf("\n");
maxmatran(a,m,n);
printf("\n");
max_hang(a,m,n);
max_cot(a,m,n);
//in ra cac so nguyen to trong ma tran
printf("\n \n cac so nguyen to trong mang va vi tri cua chung \n");
    for (i=1;i<=n;i++)
 for (j=1;j<=m;j++)
     if (snt(a[i][j])==1)
  printf("\n %d - a[%d][%d]",a[i][j],i,j);
printf("\n bam enter de sap xep");
getch();
// sap xep lai ma tran
 //sap xep theo hang
    for(i=0;i<m;i++)
        for(j=0;j<n-1;j++)
            for(int k=j+1;k<n;k++)
                if (a[i][j]>a[i][k])
                {
                    int tam=a[i][j];
                    a[i][j]=a[i][k];
                    a[i][k]=tam;
                }
        // sap xep theo cot
    for(i=0;i<n;i++)
        for(j=0;j<m-1;j++)
            for( k=j+1;k<m;k++)
                if (a[j][i]>a[k][i])
                {
                    int tam=a[j][i];
                    a[j][i]=a[k][i];
                    a[k][i]=tam;
                }
    printf("\n ma tran sau khi sap xep tang dan la :\n");
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
            printf("%d\t",a[i][j]);
        printf("\n");
    }
printf("\n ma tran chuyen vi");
//ma tran chuyen vi
chuyen_vi(a,e,m,n);
xuat_mt(e,m,n);
printf("\n bam enter de xem tong cac phan tu tren duong cheo chinh ");
getch();
//tinh tong duong cheo chinh
for (i=0;i<n;i++)
tong=tong+a[i][i];
 printf("\n Tong cac phan tu tren duong cheo la: %d",tong);
 getch();
 printf("\n nhap them ma tran 2 de tinh tiep :");
//nhap mt a2
printf("\n nhap so hang ma tran 2 : ");
scanf("%d",&m2);
printf("\n nhap so cot ma tran 2 : ");
scanf("%d",&n2);
nhapmt(a2,m2,n2);
printf("\n ma tran ban vua nhap la : ");
xuat_mt(a2,m2,n2);
getch();
printf("\n Tong cua 2 ma tran ");
//cong 2 ma tran
cong_mt(d,a,a2,m,n);
xuat_mt(d,m,n);
printf("\n bam enter de tinh tich 2 ma tran");
getch();
//tich 2 ma tran
tich_mt(c,a,a2,m,n);
xuat_mt(c,m,n);//xuat ra ma tran c
printf("\n bam enter de ket thuc chuong trinh");
getch();
//ket thuc chuowng trinh
getch();

[C/C++] code bài tập về mảng 1 chiều


đây là code của bài tập cô giao về nhà nhé .. từ câu 1 -> câu 6 :Phần  Mảng .

#include<stdio.h>
#include<conio.h>
#include <math.h>
/*nhap vao mang*/
void nhap(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("vui long nhap vao gia tri cua phan tu thu[%d]:",i+1);
scanf("%d",&a[i]);
}
}
/*xuat mang*/
void xuat(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d\t",a[i]);
}
}
//kiem tra so nguyen to
int ktSNT (int a)
{
int i = 0;
for(i = 2; i <= (int)sqrt(a); i++)
{
if( a % i == 0 || a < 2 && a != 2)
{
return 0;
}
}
return 1;
}
// tim UCLN , BCNN
//-----------------------
int TimUCLN(int a[])
{
int UC;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{
while(a[i]!=a[j]) a[i]>a[j]?(a[i]=a[i]-a[j]):(a[j]=a[j]-a[i]);
UC=a[i];
}
printf("%d",a[i]);
return (UC);
}
//------------------------
int TimBCNN(int a[])
{
int BC;
j=1;
for(i=0;i<n;i++)
{
while(j%a[i]!=0) j++;
BC=j;
print("%d",BC);
}
return (BC);
}
//-------------------------
// CHUONG TRINH CHINH
void main()
{
clrscr();
int n,vt,i,j,so,k;
int tg;//danh cho sap xep tang dan
int tong; // danh cho tinh tong cac phan tu cua mang
// int snt[100];
int a[100];
printf("vui long nhap vao n:");
scanf("%d",&n);
nhap(a,n);
printf("Mang sau khi nhap la:\n");
xuat(a,n);
//kiem tra so nguyen to
printf("\n cac so nguyen to la : ");
for(i = 0; i < n; i++)
{
if(ktSNT(a[i]) == 1)
{
printf("%d",a[i]);
printf(" ");
}
}
// sap xep tang dan
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{
tg=a[i];
a[i]=a[j];
a[j]=tg;
}
printf("\nMang sap xep tang dan la:");
for(i=0;i<n;i++)
printf("\t%d",a[i]);
// tinh tong cac phan tu cua mang
tong=0;
for(i=1;i<n;i++)
tong= tong + a[i];
printf("\n tong cac phan tu cua mang la : %d",tong);
//tim UCLN , BCNN
printf("\nUCLN=%d",TimUCLN(a));
printf("\nBCNN=%d",TimBCNN(a));
// ket thuc chuong trinh
getch();
}
Image

[C++] bài toán gà - chó

sử dụng for và while thui nhá .. các bác tham khảo
---------------------------------------
for (int i=0;i<=36;i++)
{
   int x = i;
   int y = 36 -  i;
   while ((2 * x + 4 * y) == 100) 
   {
       printf("So ga : %d, so cho : %d\n",x,y);
       break;
   }
}
Image

[C++] code giải phương trình bậc 2

code giải phương trình bậc 2

#include “stdio.h”
#include “math.h”
#include “conio.h”
void main()
{
clrscr();
printf(“\n------------------------------------------------------”) ;
printf(“\n chuong trinh giai phuong trinh bac 2 : HuanBuiThanh “) ;
printf(“\n ------------------------------------------------------”) ;
float a,b,c,x1,x2,delta;
printf(“\nNhap a : “);
scanf(“%f”, &a);
printf(“\nNhap b : “);
scanf(“%f”, &b);
printf(“\nNhap c : “);
scanf(“%f”, &c);
printf(“\n ——————————–”);
if (a==0)
{
if(b==0)
{
if(c==0)
printf(“\n pt vo so nghiem \n”);
else
printf(“\n pt vo nghiem \n”);
}
else
printf(“\n pt co nghiem x=%f “,-c/b);
}
else
delta=(b*b-4*a*c);
if (delta>0)
{
printf(“\nNghiem x1 la: %.2f”,-b+sqrt(delta)/2*a);
printf(“\nNghiem x2 la: %.2f\n\n”,-b-sqrt(delta)/2*a);
}
if (delta==0)
printf(“\nPhuong trinh da cho co 1 nghiem kep: %.2f\n\n”,-b/2*a);
if (delta<0)
printf(“\nPhuong trinh da cho vo nghiem\n\n”);
getch();