Thứ Sáu, 30 tháng 1, 2015

Xử lý nhập chuỗi kí tự với gets() và puts() - input string with gets()/puts() trong C#

Xử lý nhập chuỗi kí tự với gets() và puts() - input string with gets()/puts()

Nếu các bạn đã biết về các lệnh vào ra printf  và scanf thì bây giờ mình sẽ giới thiệu tới gets puts, về cơ bản thì cũng gần tương tự như printf và scanf những khi sử dụng hàm scanf để nhập dữ liệu cho biến chuỗi thì lúc này ta chỉ có thể nhập được một chuỗi không có dấu khoảng trắng. ngoài ra hàm cget() (trong conio.h) cũng được sử dụng để nhập chuỗi.

 Lý Thuyết

– Sử dụng hàm gets() là cách đơn giản nhất để nhập một chuỗi thông qua thiết bị nhập chuẩn. Các ký tự sẽ được nhập vào cho đến khi nhấn phím Enter. Hàm gets() thay thế ký tự kết thúc trở về đầu dòng ‘\n’ bằng ký tự ”. Cú pháp hàm như sau:

code:
gets(str);


– Trong đó str là một mảng ký tự đã được khai báo.
– Tương tự, hàm puts() được sử dụng để hiển thị một chuỗi ra thiết bị xuất chuẩn. Ký tự xuống dòng sẽ kết thúc việc xuất chuỗi. Cú pháp hàm như sau
code:


puts(str);


– Trong đó str là một mảng ký tự đã được khai báo và khởi tạo.

một số bài tập:

để tiện theo dõi những bài tập sau đây các bạn có thể tải tài code và bài giải mình làm sẵn TẠI ĐÂY.


1.   Write a program to accept and add three numbers.

Dịch: viết 1 chương trình chấp nhận và thêm 3 số.

Phân tích từng bước:


  • - Khai báo kiểu dữ liệu số nguyên cho i,j,k;
  • - vào lần lượt từng số với lệnh printf và scanf.
  • - in ra màn hình với lệnh printf 3 số vừa nhập vào

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 int i,j,k;
 printf("nhap vao so thu 1:");
 scanf("%d",&i);
 printf("nhap vao so thu 2:");
 scanf("%d",&j);
 printf("nhap vao so thu 3:");
 scanf("%d",&k);
 printf("so nhap vao la : %d, : %d, : %d",i,j,k);
 
 
 printf("\n\n\n");
 system("pause");
 return 0;
 
}



in-ra-man-hinh-3-so-vua-nhap
kết quả in ra màn hình 3 số vừa nhập





Bài 2: For the following values, write a program to evaluate the expression


z = a*b+(c/d)-e*f ;



  a=10

  b=7

  c=15.75

  d=4

  e=2

  f=5.6      


dịch: đối với các giá trị sau... viết chương trình để thực hiện biểu thức:

z = a*b+(c/d)-e*f ;


trong đó
  a=10
  b=7
  c=15.75
  d=4
  e=2
  f=5.6     


phân tích từng bước:
- khai báo z,a,b,c,d,e,f là biến số thực
- in ra màn hình dòng lệnh nhập vào a,b,c,d,e,f
- đọc các số từ màn hình
- tính z theo công thức z = a*b+(c/d)-e*f ;
- in Z ra màn hình.

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 printf("nhap vao cac so a,b,c,d,e.f: ");
 float z,a,b,c,d,e,f;
 scanf("%f%f%%f%f%f",&a,&b,&c,&d,&e,&f);  
 printf ("\nz = a*b+(c/d)-e*f =  %0.2f ",a*b+(c/d)-e*f); 
 printf("\n\n\n");
 system("pause");
 return 0;
 
}





tinh-z-a-b-c-d-e-f
tính Z = a*b + (c/d) - e*f




Bài 3. Write a program to evaluate the area and perimeter of the rectangle.

dịch: viết chương trình tính diện tích và chu vi hình chữ nhật.

Phân tích từng bước:

  • - định dang i,j là biến nguyên. 
  • - nhập và đọc i,j là các cạnh chiều dài và rộng của hình chữ nhật cần tính. 
  • - ra màn hình diện tích hình chữ nhật 
  • - ra màn hình chu vi hình chữ nhật


#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 int i,j;
 printf("nhap chieu dai hinh chu nhat = ");
 scanf("%d",&i);
 printf("nhap chieu rong hinh chu nhat = ");
 scanf("%d",&j);
 printf("dien tich hinh chu nhat la: %d, chu vi hinh chu nhat la: %d",i*j,i+i+j+j); 
 printf("\n\n\n");
 system("pause");
 return 0; 
}

dien-tic-va-chu-vi-hinh-chu-nhat
tính diện tích và chu vi hình chữ nhật

Bài 4.  Write a program to evaluate the volume of a cylinder.

dịch : viết chương trình tính dung tích của 1 xilanh

Phân tích từng bước:
  • - khai báo số nguyên i,j
  • - yêu cầu nhập đường kính vào chiều cao của xi lanh
  • - vào chiều cao và đường kính với i và j là số nguyên
  • - ra màn hình thể tích của xi lanh (thể tích hình trụ bằng diện tích đáy nhân chiều cao)


#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 int i,j;
 printf("nhap duong kinh day cua xilanh: ");
 scanf("%d",&i);
 printf("nhap chieu cao cua xilanh: ");
 scanf("%d",&j);
 printf("dung tich cua xilanh hinh tru la: %0.2f",3.14*i*i/2*j);
 
 printf("\n\n\n");
 system("pause");
 return 0; 
}


tinh-the-tich-xi-lanh-hinh-tru
tính thể tích hình trụ

5.  Write a program to evaluate the net salary of an employee given the following constraints

Basic salary : $ 12000
DA : 12% of Basic salary
HRA : $150
TA : $120
Others : $450
Tax cuts – a) PF :14% of Basic salary and b) IT: 15% of Basic salary
Net Salary = Basic Salary + DA + HRA + TA + Others – (PF + IT)

dịch: viết 1 chương trình để đánh giá mực lương của nhân viên theo các số liệu sau

Basic salary : $ 12000
DA : 12% of Basic salary
HRA : $150
TA : $120
Others : $450
Tax cuts – a) PF :14% of Basic salary and b) IT: 15% of Basic salary
Net Salary = Basic Salary + DA + HRA + TA + Others – (PF + IT)

Phân tích từng bước :
  • - khai báo a,b,c,d là biến số nguyên:
  • - khai báo i,j,k,l là biến số thực
  • - vào basic salary
  • - đọc basic salary với biến a
  • - tính DA = 12% basic salary
  • - vào HRA với biến b
  • - vào TA với biến c
  • - vào other với biến d
  • - tính PF = 14% basic salary
  • - tính IT = 15% basic salary
  • - tính Net Salary = Basic Salary + DA + HRA + TA + Others – (PF + IT)
  • - đưa ra màn hình kết quả cuối cùng của net salary



#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 int a,b,c,d;
 float i,j,k,l;
 printf("basic salary = ");
 scanf("%d",&a);
 printf("DA = %0.2f",0.12*a);
 printf("\nHRA = ");
 scanf("%d",&b);
 printf("TA = ");
 scanf("%d",&c);
 printf("other = ");
 scanf("%d",&d);
 printf("PF = %0.2f\nIT= %.2f",0.14*a,0.15*a);
 //Net Salary = Basic Salary + DA + HRA + TA + Others – (PF + IT)
 printf("\nNet Salary=BasicSalary+DA+HRA+TA+Others-(PF+IT)= %0.2f",a+0.12*a+b+c+d-0.14*a-0.15-a);
 
 printf("\n\n\n");
 system("pause");
 return 0;
 
}



net-salary
Tính net salary

Nhận xét: đây là những kiến thức căn bàn về nhập xuất dữ liệu với số, kí tự, chuỗi kí tự rất quan trọng và chúng ta cần phải nắm rõ mới có thể đi tiếp các bài sau.


Không có nhận xét nào:

Đăng nhận xét