Skip to main content
Home Wireless Communication Modulation MATLAB Beamforming Project Ideas MIMO Computer Networks Lab 🚀

C++ Programming


How to run C++ program on your computer

To run any programming language on your local machine or computer you need a compiler first. The compiler reads each and every line of your program. It interprets line by line actually. If there is no error in the program, they only go ahead to run your particular program. In our case, we are using the "DEV C++" compiler to run our programs. You can easily download and install the "DEV C++ application file" or .exe file from the internet.


How to save C++ files on your computer

You simply go to your "DEV C++" and then click on "new" in the file section in the upper tabs. Then save the file adding the ".cpp" extension. For example, if your program name is "myfirstprogram" then save it as "myfirstprogram. cpp". 


Hello World program in C++

#include <iostream> 
using namespace std;           // it calls the library
int main() {                         // it defines the method main()
cout << "Hello World!";  // 'cout' is used for printing
return 0;                             // it returns only one value
}


Result

Hello World!


In the above program, "using namespace std;" calls a library that has a set of signs that are used to identify and refer to objects of various kinds. Here in the 3rd line main() is a method. 



How To Add Comments in C++ Programming

To add comments in C++ Programming you need to write "//", then write your comment. 

For Example

#include <iostream>

using namespace std;

int main() {

int x = 22; //declaring of variable x

if (x >= 10) {

cout << "It is true";

}

else {

cout << "It is false";

}

/* 

It is a comment on multiple lines

If...else is used for adding conditions in C programming

*/

return 0;

}


Here, in the above code single line comment is written after "//". But if comments contain multiple lines then we use "/* Your Comment of multiple lines */" as shown in the above code.



Declaring of Variable in C++

In all programming languages, we declare some variable for specific purposes.


#include <iostream>

using namespace std;

int main() {

  int x = 5;

  int y = 10;

  int sum = x + y;

  cout << "Value of x + y = " << sum;

}


Result

Value of x + y = 15


Here in the above code, we've declared two variables x = 5, and y=10.



'Else If' Condition in C++ Programming

#include <iostream>

using namespace std;

int main() {

  int product;

  cout << "Enter the number of product: ";

  cin >> product; 

  if (product < 500) {

    cout << "Total price = " << product*20;

  } else if (product >= 500 && product < 1000) {

    cout << "Total price = " << product*18;

  } else {

    cout << "Total price = " << product*15;

  }

  return 0;

}


Result

Enter the number of products: 400

Total price = 8000


We implemented three different conditions for an e-commerce application for the wholesale market in the code above. If you buy less than 500 items, you'll have to pay $20 for each one. If you buy more than 500 but fewer than 1000 units, you pay 18 dollars for each unit. The third condition is that if you purchase more than 1000 items, you will be charged $15 for each item.

 

While For - Loop in C++ Programming


We often need to run a loop inside a program to run several iterations and impose many logics, conditions, etc. 


Example

In a school sport, a group of three pupils will compete in a three-round running race. After each round, you must record the time taken by each student. Calculate the average time taken by each student over the three rounds once they have completed all of the rounds, and choose the student with the lowest average timing as the best runner. If more than one student meets the minimum average timing criteria, they must all be chosen. Show the fastest runner's name and average timing.


Solution in C++

Inputs:

The time taken by three students over three rounds to complete a 100-meter run is as follows

Student A: 8, 9, 9 (in second)

Student B: 9, 8, 12 (in second)

Student C: 7, 11, 9 (in second)

Condition:

All students will be judged unfit if they fail to maintain an average timing of 12 seconds over the three rounds, or if the time average taken by all students is greater than 12 seconds.

The input of the code is below:

8

9

7

9

8

11

9

12

9

Code:

#include <iostream>

#include <cmath>

using namespace std;

int main() {

int x, T1=0, T2=0, T3=0, count=1;

double A1, A2, A3;

while (count <=9)

{

cin >> x;

if(count%3==1)

T1=T1+x;

else if(count%3==2)

T2=T2+x;

else

T3=T3+x;

count++;

}

A1= (T1/3);

A2= (T2/3);

A3= (T3/3); 

if(A1>=12 && A2>=12 && A3>=12) {

cout<<"All trainees are unfit";

return 0;

}

if(A1<=A2 && A1<=A3){

cout<<"Student A"<<endl;

}

if(A2<=A1 && A2<=A3){

cout<<"Student B"<<endl;

}

if(A3<=A1 && A3<=A2){

cout<<"Student C"<<endl;

}

return 0;

}

Result:

Student A


We can say Student A takes less average time to cover 3 rounds of 100 meters runs.


 

Solve the following C Programs

#include<stdio.h>
int main() {
int a=2,b=2;
a=b<<a;
printf("%d", a);
return 0;
}


Output: 8


Explanation:

Operator "<<" denotes the left shifting of bits and operator ">>" denotes the right shifting of bits.

So, here operation occurs in bit level

b = 2 = binary 10; If we shift bits in the left direction by 2 places then it will be 1000 which is equal to decimal 8

So, the output will be 8 in the above code.

People are good at skipping over material they already know!

View Related Topics to







Admin & Author: Salim

profile

  Website: www.salimwireless.com
  Interests: Signal Processing, Telecommunication, 5G Technology, Present & Future Wireless Technologies, Digital Signal Processing, Computer Networks, Millimeter Wave Band Channel, Web Development
  Seeking an opportunity in the Teaching or Electronics & Telecommunication domains.
  Possess M.Tech in Electronic Communication Systems.


Contact Us

Name

Email *

Message *

Popular Posts

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...

Modulation Constellation Diagrams BER vs. SNR BER vs SNR for M-QAM, M-PSK, QPSk, BPSK, ... 1. What is Bit Error Rate (BER)? The abbreviation BER stands for bit error rate, which indicates how many corrupted bits are received (after the demodulation process) compared to the total number of bits sent in a communication process. It is defined as,  In mathematics, BER = (number of bits received in error / total number of transmitted bits)  On the other hand, SNR refers to the signal-to-noise power ratio. For ease of calculation, we commonly convert it to dB or decibels.   2. What is Signal the signal-to-noise ratio (SNR)? SNR = signal power/noise power (SNR is a ratio of signal power to noise power) SNR (in dB) = 10*log(signal power / noise power) [base 10] For instance, the SNR for a given communication system is 3dB. So, SNR (in ratio) = 10^{SNR (in dB) / 10} = 2 Therefore, in this instance, the signal power i

Difference between AWGN and Rayleigh Fading

Wireless Signal Processing Gaussian and Rayleigh Distribution Difference between AWGN and Rayleigh Fading 1. Introduction Rayleigh fading coefficients and AWGN, or additive white gaussian noise [↗] , are two distinct factors that affect a wireless communication channel. In mathematics, we can express it in that way.  Fig: Rayleigh Fading due to multi-paths Let's explore wireless communication under two common noise scenarios: AWGN (Additive White Gaussian Noise) and Rayleigh fading. y = h*x + n ... (i) Symbol '*' represents convolution. The transmitted signal  x  is multiplied by the channel coefficient or channel impulse response (h)  in the equation above, and the symbol  "n"  stands for the white Gaussian noise that is added to the signal through any type of channel (here, it is a wireless channel or wireless medium). Due to multi-paths the channel impulse response (h) changes. And multi-paths cause Rayleigh fading. 2

BER vs SNR for ASK, FSK, and PSK

  BER vs. SNR denotes how many bits in error are received in a communication process for a particular Signal-to-noise (SNR) ratio. In most cases, SNR is measured in decibel (dB). For a typical communication system, a signal is often affected by two types of noises 1. Additive White Gaussian Noise (AWGN) 2. Rayleigh Fading In the case of additive white Gaussian noise (AWGN), random magnitude is added to the transmitted signal. On the other hand, Rayleigh fading (due to multipath) attenuates the different frequency components of a signal differently. A good signal-to-noise ratio tries to mitigate the effect of noise.  Calculate BER for Binary ASK Modulation The theoretical BER for binary ASK (BASK) in an AWGN channel is given by: BER  = (1/2) * erfc(0.5 * sqrt(SNR_ask));   Enter SNR (dB): Calculate BER BER vs. SNR curves for ASK, FSK, and PSK Calculate BER for Binary FSK Modulation The theoretical BER for binary FSK (BFSK) in an AWGN channel is g

RMS Delay Spread, Excess Delay Spread and Multi-path ...

Signal Processing RMS Delay Spread, Excess Delay Spread, and Multipath... RMS Delay Spread, Excess Delay Spread, and Multipath (MPCs) The fundamental distinction between wireless and wired connections is that in wireless connections signal reaches at receiver thru multipath signal propagation rather than directed transmission like co-axial cable. Wireless Communication has no set communication path between the transmitter and the receiver. The line of sight path, also known as the LOS path, is the shortest and most direct communication link between TX and RX. The other communication pathways are called non-line of sight (NLOS) paths. Reflection and refraction of transmitted signals with building walls, foliage, and other objects create NLOS paths. [ Read More about LOS and NLOS Paths] Multipath Components or MPCs: The linear nature of the multipath component signals is evident. This signifies that one multipath component signal is a scalar multiple of

BER performance of QPSK with BPSK, 4-QAM, 16-QAM, 64-QAM, 256-QAM, etc

   Compare the BER performance of QPSK with other modulation schemes (e.g.,  BPSK, 4-QAM, 16-QAM, 64-QAM, 256-QAM, etc) under similar conditions. MATLAB Code clear all; close all; % Set parameters for QAM snr_dB = -20:2:20; % SNR values in dB qam_orders = [4, 16, 64, 256]; % QAM modulation orders % Loop through each QAM order and calculate theoretical BER figure; for qam_order = qam_orders     % Calculate theoretical BER using berawgn for QAM     ber_qam = berawgn(snr_dB, 'qam', qam_order);     % Plot the results for QAM     semilogy(snr_dB, ber_qam, 'o-', 'DisplayName', sprintf('%d-QAM', qam_order));     hold on; end % Set parameters for QPSK EbNoVec_qpsk = (-20:20)'; % Eb/No range for QPSK SNRlin_qpsk = 10.^(EbNoVec_qpsk/10); % SNR linear values for QPSK % Calculate the theoretical BER for QPSK using the provided formula ber_qpsk_theo = 2*qfunc(sqrt(2*SNRlin_qpsk)); % Plot the results for QPSK semilogy(EbNoVec_qpsk, ber_qpsk_theo, 's-', &#

Comparisons among ASK, PSK, and FSK | And the definitions of each

Modulation ASK, FSK & PSK Constellation MATLAB Simulink MATLAB Code Comparisons among ASK, PSK, and FSK    Comparisons among ASK, PSK, and FSK Comparison among ASK,  FSK, and PSK Performance Comparison: 1. Noise Sensitivity:    - ASK is the most sensitive to noise due to its reliance on amplitude variations.    - PSK is less sensitive to noise compared to ASK.    - FSK is relatively more robust against noise, making it suitable for noisy environments. 2. Bandwidth Efficiency:    - PSK is the most bandwidth-efficient, requiring less bandwidth than FSK for the same data rate.    - FSK requires wider bandwidth compared to PSK.    - ASK's bandwidth efficiency lies between FSK and PSK. Bandwidth Calculator for ASK, FSK, and PSK The baud rate represents the number of symbols transmitted per second Select Modulation Type: ASK FSK PSK Baud Rate (Hz):

Why is Time-bandwidth Product Important?

  To calculate the period of a signal with finite bandwidth, Heisenberg’s uncertainty principle plays a vital role where the time-bandwidth product indicates the processing gain of the signal. We apply spread spectrum techniques in wireless communication for various reasons, such as interference resilience, security, robustness in multipath, etc. But in spread spectrum techniques, we compromise some bandwidth.  The time-bandwidth product for Gaussian-shaped pulses is 0.44 (approx.). If the time-bandwidth product of a signal is >> 1 , then it indicates the usable bandwidth is very much greater than the data rate. So, in this case, we are unable to utilize the whole available bandwidth. For this case, spectrum efficiency will be less. To your knowledge, the product of the variance of time and variance of bandwidth for a Gaussian signal is 0.25, and for a triangular-shaped signal, it is 0.3. 

Applications of a Raise Cosine Filter

  For a typical wireless communication system, we use modulation schemes and filters before transmitting the signal. The main purpose of using it is to transmit a proper waveform so that we can recover the signal at the receiving end more accurately.  If the roll-off factor is Î±, then  Bandwidth (B) = (1 + α) / (2 * T) where T is the time interval. The filter response is zero outside that. The roll-off factor is a parameter used to shape the spectrum of a digital signal in communication systems, and it is not just the product of time and bandwidth. It affects both the time and frequency domain characteristics of the signal. Application A raised cosine filter is used for pulse shaping. You might have noticed in most of the diagrams of 'communication systems.' It is common to use this type of filter after the modulation module.  MATLAB code for raise-cosine filter clc; clear all; close all; Data_sym = [0 1 1 0 1 0 0 1]; M = 4; Phase = 0; Sampling_rate = 48e3; Data_Rate = 100; Ba