3.3. Write a program that produces the given sequence numbers (in alternate arrangement and reverse order using the three looping statements: 5, 1, 4, 2, 3, 3, 2, 4, 1, 5,
1st Solution – using for loop
2nd Solution – using while loop
3rd Solution-‐ using do while
using System;
using System.Text;
namespace ConsoleAppProduceSiquense
{
class Program
{
static void Main(string[] args)
{
int n = 5;
int[] siquense;
int[] resultArray;
siquense = ProduceSiquenseUsingForLoop(n);
resultArray = AddReflectionToArray(siquense);
Console.WriteLine($"The sequence using a 'for' loop is {ArrayToCommaSeparatedString(resultArray)}.");
siquense = ProduceSiquenseUsingWhileLoop(n);
resultArray = AddReflectionToArray(siquense);
Console.WriteLine($"The sequence using a 'while' loop is {ArrayToCommaSeparatedString(resultArray)}.");
siquense = ProduceSiquenseUsingDoWhileLoop(n);
resultArray = AddReflectionToArray(siquense);
Console.WriteLine($"The sequence using a 'do while' loop is {ArrayToCommaSeparatedString(resultArray)}.");
Console.ReadKey();
}
static int[] AddReflectionToArray(int[] siquense)
{
int[] reverseSiquense = new int[siquense.Length];
siquense.CopyTo(reverseSiquense, 0);
Array.Reverse(reverseSiquense);
int[] resultArray = new int[siquense.Length + reverseSiquense.Length];
Array.Copy(siquense, resultArray, siquense.Length);
Array.Copy(reverseSiquense, 0, resultArray, siquense.Length, reverseSiquense.Length);
return resultArray;
}
static string ArrayToCommaSeparatedString(int[] siquense)
{
StringBuilder stringBuilder = new StringBuilder();
foreach (int i in siquense)
{
stringBuilder.Append(i + ",");
}
stringBuilder.Remove(stringBuilder.Length - 1, 1);
return stringBuilder.ToString();
}
static int[] ProduceSiquenseUsingForLoop(int n)
{
int[] siquense = new int[n];
int currentReverse = n;
int currentDirect = 1;
for (int i = 0; i < n; i++)
{
if (i % 2 == 0)
{
siquense[i] = currentReverse--;
}
else
{
siquense[i] = currentDirect++;
}
}
return siquense;
}
static int[] ProduceSiquenseUsingWhileLoop(int n)
{
int[] siquense = new int[n];
int currentReverse = n;
int currentDirect = 1;
int i = 0;
while (i < n)
{
if (i % 2 == 0)
{
siquense[i] = currentReverse--;
}
else
{
siquense[i] = currentDirect++;
}
i++;
}
return siquense;
}
static int[] ProduceSiquenseUsingDoWhileLoop(int n)
{
int[] siquense = new int[n];
int currentReverse = n;
int currentDirect = 1;
int i = 0;
do
{
if (i % 2 == 0)
{
siquense[i] = currentReverse--;
}
else
{
siquense[i] = currentDirect++;
}
i++;
}
while (i < n);
return siquense;
}
}
}
Comments
Leave a comment