Structured Programming Language
Manual Tracing, Basic Loop, 1D Array
Mohammad Imam Hossain,
Lecturer, CSE, UIU
Tracing
#include<stdio.h>
int main()
{
int i=0, x=0;
for(i=1; i<10; ++i) {
if(i%2==1) {
x+=i;
}
else {
x--;
}
printf("%d, “ , x ) ;
}
printf("nx=%d“, x) ;
return 0;
}
i i%2==1 x (=0 initially) Output
Tracing
#include<stdio.h>
int main()
{
int i=0, x=0;
for(i=1; i<10; ++i) {
if(i%2==1) {
x+=i;
}
else {
x--;
}
printf("%d, “ , x ) ;
}
printf("nx=%d“, x) ;
return 0;
}
i i%2==1 x (=0 initially) Output
1 T x=x+i=0+1=1 1,
Tracing
#include<stdio.h>
int main()
{
int i=0, x=0;
for(i=1; i<10; ++i) {
if(i%2==1) {
x+=i;
}
else {
x--;
}
printf("%d, “ , x ) ;
}
printf("nx=%d“, x) ;
return 0;
}
i i%2==1 x (=0 initially) Output
1 T x=x+i=0+1=1 1,
2 F x--;
x=x-1=1-1=0
1, 0,
Tracing
#include<stdio.h>
int main()
{
int i=0, x=0;
for(i=1; i<10; ++i) {
if(i%2==1) {
x+=i;
}
else {
x--;
}
printf("%d, “ , x ) ;
}
printf("nx=%d“, x) ;
return 0;
}
i i%2==1 x (=0 initially) Output
1 T x=x+i=0+1=1 1,
2 F x--;
x=x-1=1-1=0
1, 0,
3 T x=x+i=0+3=3 1, 0, 3,
Problem
• Write a program to show the first n fibonacci
numbers.
1, 1, 2, 3, 5, 8, … … … , upto nth term
Solution
#include<stdio.h>
int main()
{
int prev1=1;
int prev2=1;
int n;
printf("Please enter the value of n: ");
scanf("%d",&n);
if(n==1) printf("%d",prev1);
else if(n>=2){
printf("%d, %d",prev1,prev2);
int cnt;
for(cnt=3;cnt<=n;cnt++){
int term=prev1+prev2;
printf(", %d",term);
prev1=prev2;
prev2=term;
}
}
return 0;
}
Solution using Array
#include<stdio.h>
int main()
{
int arr[1000];
arr[1]=1;
arr[2]=1;
int n;
printf("Please enter the value of n: ");
scanf("%d",&n);
if(n==1) printf("%d",arr[1]);
else if(n>=2){
int cnt;
for(cnt=3;cnt<=n;cnt++){
arr[cnt]=arr[cnt-1]+arr[cnt-2];
}
int i;
for(i=1;i<=n;i++){
printf("%d, ",arr[i]);
}
}
return 0;
}
Problem
• Write a program to find out the gcd between two
numbers.
Solution#include<stdio.h>
int main()
{
int num1,num2;
scanf("%d %d",&num1,&num2);
int mx,mn;
mx=(num1>num2)?num1:num2;
mn=(num1<num2)?num1:num2;
while(mx%mn!=0){
int rm=mx%mn;
mx=mn;
mn=rm;
}
printf("The GCD of %d and %d is %d",num1,num2,mn);
return 0;
}

SPL 10.1 | Manual Tracing on Basic Loop & 1D Array

  • 1.
    Structured Programming Language ManualTracing, Basic Loop, 1D Array Mohammad Imam Hossain, Lecturer, CSE, UIU
  • 2.
    Tracing #include<stdio.h> int main() { int i=0,x=0; for(i=1; i<10; ++i) { if(i%2==1) { x+=i; } else { x--; } printf("%d, “ , x ) ; } printf("nx=%d“, x) ; return 0; } i i%2==1 x (=0 initially) Output
  • 3.
    Tracing #include<stdio.h> int main() { int i=0,x=0; for(i=1; i<10; ++i) { if(i%2==1) { x+=i; } else { x--; } printf("%d, “ , x ) ; } printf("nx=%d“, x) ; return 0; } i i%2==1 x (=0 initially) Output 1 T x=x+i=0+1=1 1,
  • 4.
    Tracing #include<stdio.h> int main() { int i=0,x=0; for(i=1; i<10; ++i) { if(i%2==1) { x+=i; } else { x--; } printf("%d, “ , x ) ; } printf("nx=%d“, x) ; return 0; } i i%2==1 x (=0 initially) Output 1 T x=x+i=0+1=1 1, 2 F x--; x=x-1=1-1=0 1, 0,
  • 5.
    Tracing #include<stdio.h> int main() { int i=0,x=0; for(i=1; i<10; ++i) { if(i%2==1) { x+=i; } else { x--; } printf("%d, “ , x ) ; } printf("nx=%d“, x) ; return 0; } i i%2==1 x (=0 initially) Output 1 T x=x+i=0+1=1 1, 2 F x--; x=x-1=1-1=0 1, 0, 3 T x=x+i=0+3=3 1, 0, 3,
  • 6.
    Problem • Write aprogram to show the first n fibonacci numbers. 1, 1, 2, 3, 5, 8, … … … , upto nth term
  • 7.
    Solution #include<stdio.h> int main() { int prev1=1; intprev2=1; int n; printf("Please enter the value of n: "); scanf("%d",&n); if(n==1) printf("%d",prev1); else if(n>=2){ printf("%d, %d",prev1,prev2); int cnt; for(cnt=3;cnt<=n;cnt++){ int term=prev1+prev2; printf(", %d",term); prev1=prev2; prev2=term; } } return 0; }
  • 8.
    Solution using Array #include<stdio.h> intmain() { int arr[1000]; arr[1]=1; arr[2]=1; int n; printf("Please enter the value of n: "); scanf("%d",&n); if(n==1) printf("%d",arr[1]); else if(n>=2){ int cnt; for(cnt=3;cnt<=n;cnt++){ arr[cnt]=arr[cnt-1]+arr[cnt-2]; } int i; for(i=1;i<=n;i++){ printf("%d, ",arr[i]); } } return 0; }
  • 9.
    Problem • Write aprogram to find out the gcd between two numbers.
  • 10.
    Solution#include<stdio.h> int main() { int num1,num2; scanf("%d%d",&num1,&num2); int mx,mn; mx=(num1>num2)?num1:num2; mn=(num1<num2)?num1:num2; while(mx%mn!=0){ int rm=mx%mn; mx=mn; mn=rm; } printf("The GCD of %d and %d is %d",num1,num2,mn); return 0; }