double[] numbers1 = { 2.0, 2.0, 2.1, 2.2, 2.3, 2.3, 2.4, 2.5 };
double[] numbers2 = { 2.2 };
IEnumerable<double> onlyInFirstSet = numbers1.Except(numbers2);
foreach (double number in onlyInFirstSet)
Console.WriteLine(number);
/*
This code produces the following output:
2
2.1
2.3
2.4
2.5
*/
var max = 359999;
var ts = TimeSpan.FromSeconds(max);
var hours = (int)ts.TotalHours;
var minutes = ts.Minutes;
var seconds = ts.Seconds;
var formattedString = $"{hours}:{minutes}:{seconds}";
Console.WriteLine(formattedString); // 99:59:59
string str = "1243586701";
Console.WriteLine(String.Concat(str.OrderBy(x => x)));
sudo apt-get install p7zip p7zip-rar rar unrar
p7zip p7zip-rar
- на случай, если захочешь распаковывать rar им...using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace DrawPlot
{
public partial class MainForm : Form
{
// Добавил сюда, чтобы в InitializeComponent не лезть
PictureBox picDisplay;
// Макс размер сетки по наибольшему измерению окна
// для сохранения пропорции (либо по ширине, либо по высоте)
const float MaxGrid = 10.0f;
// Это задаёт логический размер окна
SizeF viewPort;
// Шаги сетки
const float GridStep = 0.1f;
// Каждые 10 линий сетки делаем линию поярче
const int BoldLineStep = 10;
// Цвета
Pen pen_LargeGrid = new Pen(Color.FromArgb(0,64,0));
Pen pen_SmallGrid = new Pen(Color.FromArgb(0,32,0));
Pen pen_Axii = new Pen(Color.FromArgb(0,128,0));
SolidBrush plotBrush = new SolidBrush(Color.Red);
// Ширина 1 пиксела в логических размерах
float Pixel_Width;
public MainForm()
{
InitializeComponent();
picDisplay = new PictureBox() { Parent = this, Dock = DockStyle.Fill, BackColor = Color.Black };
picDisplay.Paint += this.PicDisplay_Paint;
picDisplay.Resize += this.PicDisplay_Resize;
// Стрелочка 10х4
AdjustableArrowCap cap = new AdjustableArrowCap(4.0f,10.0f);
pen_Axii.CustomEndCap = cap;
CalculateDimensions();
} // MainForm Ctor
private void PicDisplay_Resize(object sender, EventArgs e)
{
CalculateDimensions();
picDisplay.Invalidate();
} // PicDisplay_Resize
private void CalculateDimensions()
{
var rect = picDisplay.ClientRectangle;
// Устанавливаем размеры в зависимости от того, что больше, длина или ширина
// для сохранения квадратной сетки
if (rect.Width > rect.Height)
viewPort = new SizeF(MaxGrid, MaxGrid * (rect.Height / (float)rect.Width));
else
viewPort = new SizeF(MaxGrid * (rect.Width / (float)rect.Height), MaxGrid);
// Считаем ширину 1 пикселя
Pixel_Width = viewPort.Width / rect.Width;
// Назначаем эту ширину используемым перьям
foreach (var pen in new Pen[] { pen_Axii, pen_LargeGrid, pen_SmallGrid, pen_LargeGrid })
pen.Width = Pixel_Width;
} // CalculateDimensions
private void PicDisplay_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
// Масштабируем
g.ScaleTransform(picDisplay.Width / viewPort.Width, (picDisplay.Height / viewPort.Height));
// Двигаем начало координат в середину
float halfWidth = viewPort.Width / 2;
float halfHeight = viewPort.Height / 2;
g.TranslateTransform(halfWidth, halfHeight);
// Переворачиваем Y
g.ScaleTransform(1.0f, -1.0f);
// Рисуем сетку
int step = 0;
for(var f = 0f; f < MaxGrid / 2 ; f += GridStep)
{
var currentPen = pen_SmallGrid;
if (0 == step % BoldLineStep) currentPen = pen_LargeGrid;
// Горизонтальные
g.DrawLine(currentPen, -halfWidth, f, halfWidth, f);
g.DrawLine(currentPen, -halfWidth, -f, halfWidth, -f);
// Вертикальные
g.DrawLine(currentPen, f, -halfHeight, f, halfHeight);
g.DrawLine(currentPen, -f, -halfHeight, -f, halfHeight);
step++;
} // for
// Оси координат
g.DrawLine(pen_Axii, -halfWidth, 0, halfWidth, 0);
g.DrawLine(pen_Axii, 0, -halfHeight, 0, halfHeight);
// график
float y;
for (var x = -halfWidth ; x < halfWidth ; x+= Pixel_Width)
{
y = ((float)Math.Pow(x, 3) - 1) / (x + 5);
// Обязательно проверка на NaN и Infinity
if (!float.IsNaN(y) && !float.IsInfinity(y))
g.FillRectangle(plotBrush, new RectangleF(x, y, Pixel_Width, Pixel_Width));
} // for
} // PicDisplay_Paint
} // class MainForm` 1+m
} // DrawPlot namespace
var pen = Pens.Yellow;
Risovatel.MakeIt(pen, ???, ???);
Risovatel.MakeIt(pen, ???, ???);
Risovatel.MakeIt(pen, ???, ???);
Risovatel.MakeIt(pen, ???, ???);
Risovatel.Change(???, ???);
Risovatel.Change(???, ???);
Здесьпосоветую создать три переменные double в них соответственно сохранить:
var outputAmount = (Convert.ToDouble(arrayUserInput[0], CultureInfo.InvariantCulture) / 100) * (Convert.ToDouble(arrayUserInput[1]) / 12) + Convert.ToDouble(arrayUserInput[0], CultureInfo.InvariantCulture);
это может улучшить понимание кода.
исходную сумму, процентную ставку и срок вклада в месяцах.
class Program
{
private const int MinArrayLength = 2;
private const int MaxArrayLength = 20;
private static int ReadInteger(string prompt)
{
while (true)
{
Console.Write(prompt);
string input = Console.ReadLine();
if (!int.TryParse(input, out int number))
{
Console.WriteLine($"Значение {input} не является числом");
continue;
}
return number;
}
}
private static int ReadArrayLength()
{
while (true)
{
var number = ReadInteger($"Введите размер массива от {MinArrayLength} до {MaxArrayLength}: ");
if (number > MaxArrayLength || number < MinArrayLength)
{
Console.WriteLine($"Число {number} лежит вне границ интервала [{MinArrayLength}..{MaxArrayLength}]");
continue;
}
return number;
}
}
private static int[] ReadArray(int length)
{
while (true)
{
Console.Write($"Введите до {length} целых чисел через пробел: ");
string input = Console.ReadLine();
string[] entries = input.Split(' ', StringSplitOptions.RemoveEmptyEntries);
if (entries.Length > length)
{
Console.WriteLine($"Вы ввели более {length} чисел");
continue;
}
if (!TryParseIntegerArray(length, entries, out var array))
continue;
return array;
}
}
private static bool TryParseIntegerArray(int length, string[] strings, out int[] array)
{
array = new int[length];
for (int i = 0; i < strings.Length; ++i)
{
if (!int.TryParse(strings[i], out int number))
{
Console.WriteLine($"Строка {strings[i]} (позиция {i}) не является числом");
return false;
}
array[i] = number;
}
if (length > strings.Length)
{
Array.Clear(array, strings.Length, length - strings.Length);
}
return true;
}
private static int CountNumberOccurs(int[] array, int targetNumber)
{
int occursCount = 0;
for (int i = 0; i < array.Length; ++i)
{
if (array[i] == targetNumber)
occursCount++;
}
return occursCount;
}
static void Main(string[] args)
{
int arrayLength = ReadArrayLength();
int[] array = ReadArray(arrayLength);
int targetNumber = ReadInteger("Введите целое число для поиска повторений: ");
int occursCount = CountNumberOccurs(array, targetNumber);
Console.WriteLine($"Количество вхождений числа {targetNumber} в массив: {occursCount}.");
Console.WriteLine("Нажмите <ENTER> для выхода.");
Console.ReadLine();
}
}