using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ArrayService
{
public class ArrayService
{
public static void ResetArray(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שיש בו ערכים
//טענת יציאה: הפעולה מאפסת את המערך
for (int i = 0; i < arr.Length; i++)
arr[i] = 0;
}
public static void InsertToArray(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שאין בו ערכים
//טענת יציאה: הפעולה מכניסה ערכים למשתני המערך
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine("Insert Number: ");
arr[i] = int.Parse(Console.ReadLine());
}
}
public static void PrintArray(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך מלא בערכים
//טענת יציאה: הפעולה מדפיסה את משתני המערך לפי סדר קליטתם
for (int i = 0; i < arr.Length; i++)
Console.WriteLine(arr[i] + " ");
Console.WriteLine();
}
public static void OppositePrint(int[] arr)
{
//טענת יציאה: הפעולה מקבלת מערך מלא בערכים
//טענת יציאה: הפעולה מדפיסה את משתני המערך הפוך מסדר קליטתם
for (int i = arr.Length - 1; i >= 0; i--)
Console.WriteLine(arr[i] + " ");
Console.WriteLine();
}
public static int SumOfArray(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שיש בו ערכים
//טענת יציאה: הפעולה מחזירה את סכום איברי המערך
int sum = 0;
for (int i = 0; i < arr.Length; i++)
{
sum = sum + arr[i];
}
return sum;
}
public static double AvgOfArray(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שיש בו ערכים
//טענת יציאה: הפעולה מחזירה את ממוצע איברי המערך
int sum=0;
for(int i=0; i<arr.Length; i++)
sum+=arr[i];
return sum / arr.Length;
}
public static void ZugiArray(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שיש בו ערכים
//טענת יציאה: הפעולה מחזירה את איברי המערך במקומות הזוגיים
for (int i = 0; i < arr.Length; i++)
{
if (i % 2 == 0)
Console.WriteLine(arr[i] + " ");
}
Console.WriteLine();
}
public static void EzugiArray(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שיש בו ערכים
//טענת יציאה: הפעולה מחזירה את איברי המערך במקומות האי זוגיים
for (int i = 0; i < arr.Length; i++)
{
if (i % 2 != 0)
Console.WriteLine(arr[i] + " ");
}
Console.WriteLine();
}
public static void ValueEzugiArray(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שיש בו ערכים
//טענת יציאה: הפעולה מדפיסה את איברי המערך שערכם אי זוגי
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] % 2 != 0)
Console.WriteLine(arr[i] + " ");
}
Console.WriteLine();
}
public static void ValueZugiArray(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שיש בו ערכים
//טענת יציאה: הפעולה מדפיסה את איברי המערך שערכם זוגי
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] % 2 == 0)
Console.WriteLine(arr[i] + " ");
}
Console.WriteLine();
}
public static int MaxInArray(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שיש בו ערכים
//טענת יציאה: הפעולה מחזירה את המספר המקסימילי במערך
int max = int.MaxValue;
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] > max)
max = arr[i];
}
return max;
}
public static int MinInArray(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שיש בו ערכים
//טענת יציאה: הפעולה מחזירה את המספר המנימלי במערך
int min = int.MaxValue;
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] < min)
min = arr[i];
}
return min;
}
public static bool IfShavim(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך מלא בערכים
//טענת יציאה: הפעולה מדפיסה הודעה אם כל האיברים שווים או לא
bool check = true;
int bodek = arr[0];
for (int i = 1; i < arr.Length; i++)
{
if (bodek != arr[i])
check = false;
}
return check;
}
public static void IfMemuyan(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך מלא בערכים
//טענת יציאה: הפעולה מדפיסה הודעה אם האיברים ממוינים בסדר עולה או לא
bool mesudar = true;
for (int i = 0; i < arr.Length - 1; i++)
{
if (arr[i] >= arr[i + 1])
mesudar = false;
}
Console.WriteLine(mesudar);
}
public static int MaxIndexOfArray(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שיש בו ערכים
//טענת יציאה: הפעולה מחזירה את האינדקס של המספר המקסימלי במערך
int mone = 0;
int max = int.MinValue;
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] > max)
{
max = arr[i];
mone = i;
}
}
return mone;
}
public static int MinIndexOfArray(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שיש בו ערכים
//טענת יציאה: הפעולה מחזירה את האינדקס של המספר המינימלי במערך
int mone = 0;
int min = int.MaxValue;
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] < min)
{
min = arr[i];
mone = i;
}
}
return mone;
}
public static void RandomNumbersToArray(int[] arr)
{
//טענת כניסה: הפעולה מקבל מערך שאין בו ערכים
//טענת יציאה: הפעולה מכניסה ערכים רנדומליים בין 1 ל-100
Random rnd = new Random();
for (int i = 0; i < arr.Length; i++)
arr[i] = rnd.Next(1, 101);
}
public static int SecondMax(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שיש בו ערכים
//טענת יציאה: הפעולה מחזירה את המספר השני הכי גדול במערך
int max = 0;
int SecondMax = 0;
for (int i = 0; i < arr.Length; i++)
if (arr[i] > max)
max = arr[i];
for (int i = 0; i < arr.Length; i++)
if (arr[i] < max && arr[i] > SecondMax)
SecondMax = arr[i];
return SecondMax;
}
public static int CountMax(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שיש בו ערכים
//טענת יציאה: הפעולה מחזירה את מספר הפעמים שיש את מספר המקסימום
int max = 0;
int count = 0;
for (int i = 0; i < arr.Length; i++)
if (arr[i] > max)
max = arr[i];
for (int i = 0; i < arr.Length; i++)
if (arr[i] == max)
count++;
return count;
}
public static int NegativRezef(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך של מספרים שלמים
//טענת יציאה: הפעולה מחזירה את אורך הרצף השלילי הראשון במערך
int count = 0;
int i = 0;
while (i < arr.Length && arr[i] >= 0)
i++;
while (i < arr.Length && arr[i] < 0)
{
count++;
i++;
}
return count;
}
public static int[] FillArray(int n)
{
//טענת כניסה: הפעולה תמלא את המערך במספרים שלמים כמספר הפעמים שנבחר
//טענת יציאה: הפעולה מחזירה את המערך
int[] arr = new int[n];
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine(i + " הכנס ערך מספרי שלם לתא מספר --> ");
arr[i] = int.Parse(Console.ReadLine());
}
return arr;
}
public static int TwoMax(int[] arr)
{
//טענת כניסה: הפעולה מקבלת מערך שיש בו ערכים
//טענת יציאה: הפעולה מחזירה את המקסימום העוקב
int max = arr.Max();
int smax = arr[0];
for (int i = 1; i < arr.Length; i++)
{
if (arr[i] > smax && arr[i] < max)
smax = arr[i];
}
return smax;
}
}
}