One extremely interesting feature that modern applications are using is the Interprocess communication (IPC). It is a really important especially for designing a well established architecture having in mind the extendability. In this tutorial we will see a simple IPC made with Named Pipes. Keep in mind that the following is just an example and should not be used in production. For this example...

## Problem: FrogRiverOne

A small frog wants to get to the other side of a river. The frog is initially located on one bank of the river (position 0) and wants to get to the opposite bank (position X+1). Leaves fall from a tree onto the surface of the river. You are given an array A consisting of N integers representing the falling leaves. A[K] represents the position where one leaf falls at time K, measured in seconds...

## Problem: TapeEquilibrium

A non-empty array A consisting of N integers is given. Array A represents numbers on a tape. Any integer P, such that 0 < P < N, splits this tape into two non-empty parts: A[0], A[1], ..., A[P − 1] and A[P], A[P + 1], ..., A[N − 1]. The difference between the two parts is the value of: |(A[0] + A[1] + ... + A[P − 1]) − (A[P] + A[P + 1] + ... + A[N − 1])| In other words, it is the absolute...

## Problem: PermMissingElem

An array A consisting of N different integers is given. The array contains integers in the range [1..(N + 1)], which means that exactly one element is missing. Your goal is to find that missing element. Write a function: int solution(int A[], int N); that, given an array A, returns the value of the missing element. For example, given array A such that: A[0] = 2 A[1] = 3 A[2] = 1 A[3] = 5 the...

## Problem: FrogJmp

A small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to a position greater than or equal to Y. The small frog always jumps a fixed distance, D. Count the minimal number of jumps that the small frog must perform to reach its target. Write a function: int solution(int X, int Y, int D); that, given three integers X, Y and D, returns...

## Problem: OddOccurrencesInArray

A non-empty array A consisting of N integers is given. The array contains an odd number of elements, and each element of the array can be paired with another element that has the same value, except for one element that is left unpaired. For example, in array A such that: A[0] = 9 A[1] = 3 A[2] = 9 A[3] = 3 A[4] = 9 A[5] = 7 A[6] = 9 the elements at indexes 0 and 2 have value 9,the elements at...

## Problem: CyclicRotation

An array A consisting of N integers is given. Rotation of the array means that each element is shifted right by one index, and the last element of the array is moved to the first place. For example, the rotation of array A = [3, 8, 9, 7, 6] is [6, 3, 8, 9, 7] (elements are shifted right by one index and 6 is moved to the first place). The goal is to rotate array A K times; that is, each element...

## Problem: Binary Gap

A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N. For example, number 9 has binary representation 1001 and contains a binary gap of length 2. The number 529 has binary representation 1000010001 and contains two binary gaps: one of length 4 and one of length...

## How to use EEPROM M24256 with STM32 microcontroller

In this post we will see how we can use the M24256 EEPROM to read and write data with an STM32 microcontroller. The complexity of those operations are really minimal as long as the provided HAL libraries generated by STM32CubeIDE basically does most of this job. Our main idea is to safely read and write data to M23256 by considering the delays that this chip may have and ensuring our operations...

## Interactive Linear Regression application in WPF C#

In this post we will see a simple application in C# implementing the linear regression algorithm on a set of data created by the user. A linear regression is one of the easiest statistical models in machine learning. Linear regressions can be used in business to evaluate trends and make estimates or forecasts, It is used to show the linear relationship between a dependent variable and one or more...