PFC Workshop04 2015

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 11

Subject: PRF192- PFC

Workshop 04
Name: Đỗ Minh Hiếu
Student ID: SE162117
Class: SE1648

Objectives:
(1) Managing data using pointers
(2) Developing programs using simple menus

Part 1: Use notebook

Exercise 1 (1 mark) : Explain outputs:

- Declare variable n=7 and m=6 of type int


- Declare poiter variable *pn and *pm to store the address of n and m
- *pn = 6 + 2*6-3*7 = -3
- *pm = 6 – (-3) = 9
- Print m + n = 9 +(- 3) = 6
- Declare variable c1=’A’ (=65) and c2=’F’(=70) (depend on table ASCII) of type char
- Declare poiter variable *p1 and *p2 to store the address of c1 and c2
- *p1 = 65 + 3 = 68
- *p2 = 70 – 5 = 65
- Print c1 – c2 = 68 – 65 = 3

- Declare variable x = 3.2 and y = 5.1 of type double


- Declare poiter variable *p1 and *p2 to store the address of x and y
- *p1 = 3.2 + 3 – 2* (5.1) = -4
- *p2 = 5.1 – 3*(-4) = 17.1
- Print x + y = - 4 + 17.1 = 13.1
Exercise 2: (1 marks) What are outputs

int
n=7,m=8;
int* p1= &n,
*p2=&m;
*p1 +=12-
m+ (*p2);
*p2 = m + n-
2*(*p1);
printf(“%d”,
m+n);
What is the
output?
- Declare variable n=7 and m=8 of type int
- Declare poiter variable *p1 and *p2 to store the address of n and m
- *p1 = 7 + 12 – 8 + (8) = 19
- *p2 = 8 + 19 – 2*(19) = -11
- Print m + n = -11 + 19 = 8
-

- Declare variable n=260 of type int


( type int store data in 4 byte: 26010 = 00000000 00000000 00000001 000001002)
- Declare poiter variable *p to store the address of n
- Explicit Casting: Declare poiter variable *pp of type char to store the value of lowest
byte of p (000001002 = 410)
- *pp = 0 (change the lowest byte of p by 00000000)
- Print n = 00000000 00000000 00000001 000000002 = 25610
Exercise 3: (2 marks) Walkthroughs

Call function t in main:


- L = t(b,a,c) => x = 6, y = 7, z = 5
- k = 2*x + 3*y + 5*z = 2*6 + 3*7 + 5*5 = 58
- Return k%13 = 58%13 = 6
- The value of the L variable after this code is executed: 6
Call function T in main:
- T(&a, &b) => p = &a = 7 ( p = value at a), q = &b = 6 (q = value at b)
- t = *p => t = 7 ( t = value at p)
- *p = *q => *p = 6 ( value at p = value at q)
- *q = t => *q = 7 ( value at q = t)
- The values of the a and b variables after this is executed: a= 6, b= 7

Call function T in main:


- T(&a, &b) => p = &a = 3 ( p = value at a), q = &b = 4 (q = value at b)
- t = (*p) + (*q) = 3 + 4 = 7 > 12 : false value => t = 6
- Return 2*t%5 = 2*6 % 5 = 12 % 5 = 2
- The value of the c variable after this code is executed: 2
Part 2: Develop a program using simple menu

Program 1(3 marks):


Objectives Practice implementing a program with simple menu.
Related knowledge None
Problem Write a C program that will execute repetitively using a simple menu
as following:

1- Process primes
2- Print min, max digit in an integer;
3- Quit
Select an operation:
1- When user selects the option 1, the program will accept a
positive integral number and print out a message about
whether the input number is a prime or not.
2- When user selects the option 2, the program will accept a
positive integral number and print out the minimum and
maximum digit in this number.
3- The program will terminate when user selects the option 3.

Analysis Nouns:
- positive integral number  int n
- A number represents a choice of user  int choice;
Functions:
int prime( int n)  see above
void printMinMaxDigits( int n)  see above
Suggested algorithm Begin
(logical order of Do /* Print out the menu and get user choice*/
verbs) { Print out “1- Process primes\n”;
Print out “2- Print min, max digit in an integer \n”;
Print out “3- Quit\n”;
Print out “Select an operation:”;
switch(choice)
{ case 1: do
{ Input n;
}
while(n<0);
If ( prime(n)==1) Print “ It is a prime\n”;
Else Print “ It is not a prime\n”;
break;
case 2: do
{ Input n;
}
while(n<0);
printMinMaxDigits( int n) ;
break;
}
}
while ( choice >0 & choice<3);
End
Program 2(3 marks): ( refer to the workshop 2 for algorithms)
Write a C program that will execute repetitively using a simple menu as following:

1-Fibonacci sequence
2-Check a date
3-Quit
Choose an operation:

1- When the option 1 is selected, the program will accept a positive integral number,
called as n, then the first n Fibonacci numbers will be printed out
2- When the option 2 is selected, the program will accept a date then the program will
tell that whether this data is valid or not.
3- If the option 3 is selected, the program quits

More Programs

You can pick 2 or 3 functions in the workshop 2, associate them to a new program.
…Countinue…

You might also like