Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Nhờ chuyển code từ C sang Pascal

  1. #1
    Ngày gia nhập
    11 2008
    Bài viết
    203

    Mặc định Nhờ chuyển code từ C sang Pascal

    Em gái thân yêu nhờ tớ viết chương trỉnh trên pascal nhưng tớ lại mù tịt về pascal nên viết trên C và nhờ các bạn chuyển sang mã Pascal giúp tớ.
    Nội dung chương trình:
    Viết chương trình nhập vào một mảng kích thước n phần tử chứa các số thực, với n là số nguyên nhập từ bàn phím, sau đó:
    +In mảng vưa nhập
    +Tính trung bình cộng của các số lẻ;
    +Liệt kê tất cả các cặp số có tổng chia hết cho 3;(Cái code này tớ viết chưa đúng lắm vì nếu nhập vào dãy 1 2 2 1 thì nó sẽ in ra các cặp trùng nhau)

    Code:
    #include<iostream.h>
    #include<stdio.h>
    #include<conio.h>
    int main()
    {
    	int n,i=0, tong=0;
     	int a[n];
    	int dem=0;
    	printf("Nhap vao so phan tu: ");scanf("%d",&n);
    	while(i<n)
    	{
    	    printf("Nhap vao phan tu thu %d: ",i+1);scanf("%d",&a[i]);
    	   if(a[i]%2!=0)
    	   {
    		tong+=a[i];
    		dem+=1;
    	   }
           i++;
    	};
        while(i>0)
    	{
    	    printf("%d  ",a[n-i]);
                     i--;
    	};
    	printf("%\n");
    	printf("Cac cap co tong chia het cho 3:");
    	for(i=0;i<n-1;i++)
    	    for(int j=i+1;j<n;j++)
    	    {
    		if((a[i]+a[j])%3==0)
    		   {
    		     printf("\n");
    			 printf("%d  %d",a[i],a[j]);
    		   }
    	    }
    	printf("\nGia tri trung binh cua cac phan tu le la: %.3f",float(tong)/dem);
    getch();
    }
    Cám ơn nhiều!
    Đã được chỉnh sửa lần cuối bởi Loveanygirls : 16-03-2009 lúc 12:06 PM.

  2. #2
    Ngày gia nhập
    11 2008
    Nơi ở
    Bình Dương
    Bài viết
    37

    Tự học rùi tự làm đi cho em iu cảm đông chứ
    public bool love(person anh, person em)
    {
    if(love(em,anh))
    return true;
    }

  3. #3
    Ngày gia nhập
    11 2008
    Bài viết
    203

    Không ai giúp mình à? Mình đâu có lười biếng đâu, đã đưa source code lên rùi mà.

  4. #4
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Viết C hay C++ kia, mà while đã có {} thì không cần ; ở sau nữa đâu nhé:
    Câu cuối nếu muốn như ý muốn thì phải xóa các phần tử trùng nhau trong mảng trước đi đã.
    Code:
    TYPE mang = array [1..20] of integer;
    VAR  a     :mang;
           n     :integer;
    
    procedure Nhap(var a:mang; n:integer);
         var   i:integer;
         Begin
               for i:=1 to n do
               begin
                    write(' - nhap so: ');readln(a[i]);
               end;
         End;
    
    procedure Xuat(a:mang; n:integer);
         var   i:integer;
         Begin
               write(' * Mang cua ban: ');
               for i:=1 to n do
                    write('    ',a[i]);
         End;
    
    function Tinh(a:mang; n:integer):real;
         var i,count:integer;
              tong:real;
         Begin
              for i:=1 to n do
                   if (a[i] div 2 = 0) then
                   begin
                          tong := tong + a[i]; 
                          inc(count)
                   end;
              tinh := tong/count;
         End;
    
    procedure InChiaHet(a:mang; n:integer)
         var i,j  :integer;
         Begin
              for i:=1 to n do
                   for j:=i+1 to n do
                        if ((a[i]+a[j]) div 3 = 0) writeln('  ',a[i],'  ',a[j]);
         End;
    
    BEGIN
         Nhap(a,n);
         Xuat(a,n);
         writeln('Gia tri TB cua cac phan tu le: ', tinh(a,n):7:2);
         {}
         InChiaHet(a,n);
         readln
    END.

  5. #5
    Ngày gia nhập
    11 2008
    Bài viết
    203

    Cám ơn cậu QuangHoang.

  6. #6
    Ngày gia nhập
    11 2008
    Bài viết
    203

    Mặc định Nhờ chuyển code từ C sang Pascal

    Đề bài thế này:
    Viết chương trình nhập vào mảng A gồm n số nguyên, hãy thực hiện các yêu cầu sau đây:
    a) Hiển thị mảng A vừa nhập lên màn hình
    b) Tính giá trị trung bình các phần tử trong mảng.
    c) Tính tổng các phần tử chia hết cho 5, hiển thị kết quả lên màn hình.
    d) Sắp xếp các phầ tử có vị trí lẻ trong mà hình theo thứ tự tăng dần và hiển thị mảng kết quả (thực sự, mình không hiểu mảng kết quả là mảng nào nữa: là mảng toàn các phần tử ở vị trí lẻ hay lẻ được xếp tăng, vị trí chẵn thì không xếp tăng?).

    Mình đã nhờ các bạn viết code trong Pascal, nhưng sao mình biên dịch nó không cho phép mình nhập, mà chỉ hiển thị kết quả tong=0 tất tần tật.
    Thật sự, bài này viết trên C thì mình không sợ, đằng này viết trên Pascal làm mình mù.
    Các bạn ráng giúp mình viết nốt câu d, trong tối này nhé!
    Cám ơn nhiều!
    Đây là code của câu a, b,c: (Của QuangHoang)
    Code:
    TYPE mang = array [1..20] of integer;
    VAR  a     :mang;
           n     :integer;
    
    procedure Nhap(var a:mang; n:integer);
         var   i:integer;
         Begin
               for i:=1 to n do
               begin
                    write(' - nhap so: ');readln(a[i]);
               end;
         End;
    
    procedure Xuat(a:mang; n:integer);
         var   i:integer;
         Begin
               write(' * Mang cua ban: ');
               for i:=1 to n do
                    write('    ',a[i]);
         End;
    
    function Gttb(a:mang; n:integer):real;{Tinh gia tri trung binh cac phan tu trong mang}
         var i,dem:integer;
              tong:real;{Gan tri mac dinh cho dem va tong thi phai viet the nao day?}
         Begin
              for i:=1 to n do
                  { if (a[i] div 2 = 0) then} {Them doan nay de chi tinh gia tri ca phan tu chan}
                   begin
                          tong := tong + a[i];
                          dem:=dem+1;
                   end;
              Gttb := tong/dem;
         End;
    function Tong_cac_pt_chia_het_cho5(a:mang; n:integer):real;{Tinh gia tri trung binh cac phan tu chia het cho 5}
         var i:integer;
              tong:real;{Gan tri mac dinh cho dem va tong thi phai viet the nao day?}
         Begin
              for i:=1 to n do
                   if (a[i] div 5= 0) then {Lenh nay de chi tinh gia tri ca phan tu chia het cho 5}
                   begin
                          tong := tong + a[i];
                   end;
              Tong_cac_pt_chia_het_cho5:= tong;
         End;
    
    procedure InChiaHet(a:mang; n:integer);
         var i,j  :integer;
         Begin
              for i:=1 to n-1 do
                   for j:=i+1 to n do
                        if ((a[i]+a[j]) div 3 = 0) then writeln('  ',a[i],'  ',a[j]);
         End;
    
    BEGIN
         Nhap(a,n);
         Xuat(a,n);
         writeln('Gia tri TB cua cac phan tu: ', Gttb(a,n):7:2);
         writeln('Tong cua cac phan tu chia het cho 5: ', Tong_cac_pt_chia_het_cho5(a,n):7:2);
         {}
         InChiaHet(a,n);
         readln;
    END.
    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật là bản thiết kế của ngôi nhà, code là phần xây dựng. Nếu chỉ xây nhà trên giấy thì ta sống chả khác nào người nguyên thủy.

  7. #7
    Ngày gia nhập
    11 2008
    Bài viết
    203

    Trích dẫn Nguyên bản được gửi bởi Loveanygirls Xem bài viết
    Đề bài thế này:
    Viết chương trình nhập vào mảng A gồm n số nguyên, hãy thực hiện các yêu cầu sau đây:
    a) Hiển thị mảng A vừa nhập lên màn hình
    b) Tính giá trị trung bình các phần tử trong mảng.
    c) Tính tổng các phần tử chia hết cho 5, hiển thị kết quả lên màn hình.
    d) Sắp xếp các phầ tử có vị trí lẻ trong mà hình theo thứ tự tăng dần và hiển thị mảng kết quả (thực sự, mình không hiểu mảng kết quả là mảng nào nữa: là mảng toàn các phần tử ở vị trí lẻ hay lẻ được xếp tăng, vị trí chẵn thì không xếp tăng?).

    Mình đã nhờ các bạn viết code trong Pascal, nhưng sao mình biên dịch nó không cho phép mình nhập, mà chỉ hiển thị kết quả tong=0 tất tần tật.
    Thật sự, bài này viết trên C thì mình không sợ, đằng này viết trên Pascal làm mình mù.
    Các bạn ráng giúp mình viết nốt câu d, trong tối này nhé!
    Cám ơn nhiều!
    Đây là code của câu a, b,c: (Của QuangHoang)
    Code:
    TYPE mang = array [1..20] of integer;
    VAR  a     :mang;
           n     :integer;
    
    procedure Nhap(var a:mang; n:integer);
         var   i:integer;
         Begin
               for i:=1 to n do
               begin
                    write(' - nhap so: ');readln(a[i]);
               end;
         End;
    
    procedure Xuat(a:mang; n:integer);
         var   i:integer;
         Begin
               write(' * Mang cua ban: ');
               for i:=1 to n do
                    write('    ',a[i]);
         End;
    
    function Gttb(a:mang; n:integer):real;{Tinh gia tri trung binh cac phan tu trong mang}
         var i,dem:integer;
              tong:real;{Gan tri mac dinh cho dem va tong thi phai viet the nao day?}
         Begin
              for i:=1 to n do
                  { if (a[i] div 2 = 0) then} {Them doan nay de chi tinh gia tri ca phan tu chan}
                   begin
                          tong := tong + a[i];
                          dem:=dem+1;
                   end;
              Gttb := tong/dem;
         End;
    function Tong_cac_pt_chia_het_cho5(a:mang; n:integer):real;{Tinh gia tri trung binh cac phan tu chia het cho 5}
         var i:integer;
              tong:real;{Gan tri mac dinh cho dem va tong thi phai viet the nao day?}
         Begin
              for i:=1 to n do
                   if (a[i] div 5= 0) then {Lenh nay de chi tinh gia tri ca phan tu chia het cho 5}
                   begin
                          tong := tong + a[i];
                   end;
              Tong_cac_pt_chia_het_cho5:= tong;
         End;
    
    procedure InChiaHet(a:mang; n:integer);
         var i,j  :integer;
         Begin
              for i:=1 to n-1 do
                   for j:=i+1 to n do
                        if ((a[i]+a[j]) div 3 = 0) then writeln('  ',a[i],'  ',a[j]);
         End;
    
    BEGIN
         Nhap(a,n);
         Xuat(a,n);
         writeln('Gia tri TB cua cac phan tu: ', Gttb(a,n):7:2);
         writeln('Tong cua cac phan tu chia het cho 5: ', Tong_cac_pt_chia_het_cho5(a,n):7:2);
         {}
         InChiaHet(a,n);
         readln;
    END.
    Câu d, mình làm trên C như thế này nè:
    #include<conio.h>
    #include<stdio.h>

    int main()
    {
    int i=0,j=0,n;
    float manga[20],mangb[10];
    printf("Nhap vao so phan tu cua mang: ");scanf("%d",&n);
    for(i=0;i<n;i++)
    {
    printf("Nhap vao phan tu thu %d: ",i);scanf("%f",&manga[i]);
    }
    //printf("\nGia tri i: %d\n",i);
    for(int k=1;k<i;k+=2)
    {
    mangb[j]=manga[k];
    //printf("%.2f ",mangb[j]);
    j++;
    }
    //printf("\Gia tri j: %d\n",j);
    /*printf("Mang b la:\n");
    for(int k=0;k<j;k++)
    printf("%.2f ",mangb[k]);*/
    //SAP XEP CAC PHAN TU TRONG MANG B
    for(int k=0;k<j-1;k++)
    {
    for(int q=k+1;q<j;q++)
    {
    if(mangb[q]<mangb[k])
    {
    float temp=0;
    temp=mangb[q];
    mangb[q]=mangb[k];
    mangb[k]=temp;
    }


    }

    }
    //IN MANG B;
    for(int k=0;k<j;k++)
    printf("%.2f ",mangb[k]);




    getch();
    }
    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật là bản thiết kế của ngôi nhà, code là phần xây dựng. Nếu chỉ xây nhà trên giấy thì ta sống chả khác nào người nguyên thủy.

  8. #8
    Ngày gia nhập
    05 2012
    Bài viết
    0

    Mặc định giúp mình bài này với, các bạn giúp mình chuyểnvới!

    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    #include <stdlib.h>
    #include <process.h>

    struct Tnode
    {
    float digit;
    struct Tnode *left;
    struct Tnode *right;
    };

    typedef struct Tnode treeNode;
    int ld,rd;

    treeNode *makeTreeNode (float digit);
    treeNode *search (treeNode *tree, float key);
    treeNode *findTreeMin (treeNode *tree);
    treeNode *delNode (treeNode *tree, float key);
    treeNode *makeTreeNode (float digit);
    treeNode *treeInput (treeNode *tree);
    treeNode *insert (treeNode *tree,float digit);

    void freeTree (treeNode *tree);
    void printPreorder (treeNode *tree);
    void printPostorder (treeNode *tree);
    void printInorder (treeNode *tree);
    int countNodes (treeNode *tree);
    int depth (treeNode *tree);

    int main()
    {
    treeNode *treeRoot = NULL;
    treeNode *node;

    int main_sl,sub_sl,value,i;
    float key;

    float x[] = {6,9,12,4,6,7,10,13,3,5};
    for (i = 0;i <= 9; i++)
    treeRoot = insert (treeRoot,x[i]);

    while(1)
    {
    mainMenu();
    while(1)
    {
    printf(" Lua chon cua ban : ");
    scanf("%d",&main_sl);
    if(main_sl >= 0 && main_sl <= 6)
    break;
    fflush(stdin);
    }

    switch (main_sl)
    {
    case 1 : treeRoot = treeInput(treeRoot);
    break;
    case 2 :
    {
    value = countNodes(treeRoot);
    if(value == 0)
    printf (" Chua co du lieu tren cay !");
    else
    printf (" So nut cua cay : %d \n\n",value);
    }
    break;
    case 3 :
    {
    value = depth (treeRoot);
    printf (" Do sau cua cay la : %d \n\n",value);
    }
    break;
    case 4 :
    {
    printf (" Nhap so can tim kiem : ");
    scanf ("%f",&key);
    if(search (treeRoot, key) == NULL)
    printf (" Khong tim thay ! \n");
    else
    printf (" Da tim thay \n\n");
    }
    break;
    case 5 :
    {
    printf (" Nhap vao so can xoa : ");
    scanf ("%f",&key);
    node = search (treeRoot,key);
    if(node != NULL)
    printf (" Da xoa ! \n\n");
    treeRoot = delNode (treeRoot, key);
    }
    break;
    case 6 :
    {
    while (1)
    {
    subMenu();
    printf (" Lua chon cua ban : ");
    while (1)
    {
    scanf ("%d",&sub_sl);
    if(sub_sl >= 0 && sub_sl <= 3)
    break;
    fflush(stdin);
    }

    switch (sub_sl)
    {
    case 1 :
    {
    printPreorder (treeRoot);
    printf("\n");
    }
    break;
    case 2 :
    {
    printInorder (treeRoot);
    printf ("\n");
    }
    break;
    case 3 :
    {
    printPostorder (treeRoot);
    printf("\n");
    }
    break;
    case 0 :
    printf (" Quay lai mainMenu \n\n");
    break;
    }
    if(sub_sl == 0)
    break;
    }
    }
    break;
    }
    if(main_sl == 0)
    {
    printf ("\n Thoat khoi chuong trinh.");
    break;
    }
    }

    getch();
    freeTree (treeRoot);
    return 0;
    }

    // menu chinh cua chuong trinh
    int mainMenu ()
    {
    printf (" mainMenu \n");
    printf (" . Nhap du lieu .\n");
    printf (" 2. Dua ra so nut .\n");
    printf (" 3. Dua ra chieu sau .\n");
    printf (" 4. Tim kiem phan tu.\n");
    printf (" 5. Xoa mot phan tu.\n");
    printf (" 6. In ra cac phan tu.\n");
    printf (" 0. Thoat.\n");
    return 0;
    }

    // menu 2 cua chuong trinh
    int subMenu ()
    {
    printf ("\n subMenu\n");
    printf (" 1. PrintPreorder.\n");
    printf (" 2. PrintInorder.\n");
    printf (" 3. PrintPostorder.\n");
    printf (" 0. Quay lui.\n");
    return 0;
    }

    // ham nhap du lieu vao cay
    treeNode *treeInput (treeNode *tree)
    {
    float digit;
    printf ("\n Nhap vao 1 so : ");
    scanf ("%f",&digit);
    tree = insert (tree, digit);
    return tree;
    }

    // ham tao node cua cay
    treeNode *makeTreeNode (float digit)
    {
    treeNode *node = (treeNode *) malloc (sizeof(treeNode));
    if(node == NULL)
    {
    printf ("Khong du bo nho !");
    exit(1);
    }
    else
    {
    node -> digit = digit;
    node -> left = NULL;
    node -> right = NULL;
    }
    return node;
    }

    // ham tinh so nut cua cay
    int countNodes (treeNode *tree)
    {
    if( tree == NULL)
    return 0;
    else
    return 1 + countNodes(tree -> left) + countNodes(tree -> right);
    }

    // ham tinh do sau cua cay
    int depth (treeNode *tree)
    {
    if(tree == NULL)
    return 0;
    ld = depth (tree -> left);
    rd = depth (tree -> right);
    return 1 + (ld > rd ? ld : rd);
    }

    // ham tim kiem tren cay
    treeNode *search (treeNode *treeNode, float digit)
    {
    if(treeNode == NULL)
    return NULL;

    if(digit < treeNode -> digit)
    treeNode = search (treeNode -> left, digit);
    else
    if(digit > treeNode -> digit)
    treeNode = search (treeNode -> right, digit);
    else
    return treeNode;

    }

    // ham xoa cac node cua cay
    void freeTree (treeNode *tree)
    {
    if(tree == NULL)
    return;
    freeTree(tree -> left);
    freeTree(tree -> right);
    free(tree);
    }

    // ham chen phan tu moi vao xau
    treeNode *insert (treeNode *tree,float digit)
    {
    if(tree == NULL)
    tree = makeTreeNode (digit);
    else
    if(digit < tree -> digit)
    tree -> left = insert (tree -> left, digit);
    else
    if(digit >= tree -> digit)
    tree -> right = insert (tree -> right, digit);
    return tree;
    }

    // ham tim phan tu nho nhat cua treeNode
    treeNode *findTreeMin (treeNode *tree)
    {
    if(tree == NULL) return NULL;
    else
    if (tree -> left == NULL)
    return tree;
    else
    return findTreeMin(tree -> left);
    }

    // ham in cay theo thu tu truoc
    void printPreorder (treeNode *tree)
    {
    if(tree != NULL)
    {
    printf (" %3.1f ",tree -> digit);
    printPreorder (tree -> left);
    printPreorder (tree -> right);
    }
    }

    // ham in cay theo thu ru giua
    void printInorder (treeNode *tree)
    {
    if(tree != NULL)
    {
    printInorder (tree -> left);
    printf (" %3.1f ",tree -> digit);
    printInorder (tree -> right);
    }
    }

    // ham in cay theo thu tu sau
    void printPostorder (treeNode *tree)
    {
    if(tree != NULL)
    {
    printPostorder (tree -> left);
    printPostorder (tree -> right);
    printf (" %3.1f ",tree -> digit);
    }
    }


    // ham xoa mot nut tren cay
    treeNode *delNode (treeNode *tree, float key)
    {
    treeNode *node;
    if(tree == NULL)
    printf ("\nKhong tim thay !");
    else
    if(key < tree -> digit)
    tree -> left = delNode (tree -> left,key);
    else
    if (key > tree -> digit)
    tree -> right = delNode (tree -> right,key);
    else
    if(tree -> left != NULL && tree -> right != NULL)
    {
    node = findTreeMin (tree -> right);
    tree -> digit = node -> digit;
    tree -> right = delNode (tree -> right, node -> digit);
    }
    else
    {
    node = tree;
    if(tree -> left == NULL)
    tree = tree -> right;
    else
    if(tree -> right == NULL)
    tree = tree -> left;
    else
    free(node);
    }
    return tree;
    }

Các đề tài tương tự

  1. Chuyển code pascal sang C++
    Gửi bởi minhthuyit85 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 10-04-2011, 11:49 PM
  2. Chuyển code Nested Dolls từ C sang code pascal
    Gửi bởi longago trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 04-01-2011, 08:54 AM
  3. Chuyển sang code C từ Pascal
    Gửi bởi levanhuan trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 0
    Bài viết cuối: 05-04-2009, 02:37 PM
  4. Mã nguồn C | Chương trình chuyển code Pascal sang C
    Gửi bởi sieuphuong trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 12
    Bài viết cuối: 31-10-2008, 10:27 PM
  5. Chuyển code Pascal sang C??
    Gửi bởi Tuấn Mạnh trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 26-06-2007, 03:41 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn