4563 = 4 × 10^3 + 5 × 10^2 + 6 × 10^1 + 3 × 10^0
100101 = 1 × 2^5 + 0 ×2^4 + 0 ×2^3 + 1 ×2^2 + 0 ×2^1 + 1 ×2^0
AC6 = 10 ×16^2 + 12 ×16^1 + 6 × 16^0
Задание 2:
1001010, 112, 4А
Задание 3:
1)
11001101011+1110000101=100111110000
101011-10011=11000
1011х101=101100+1011=110111
2)
+564
Получилось: 564+234 = 1020
Получилось: 652-465 = 165
3)
+DF45
Получилось: DF45+128A = F1CF
Получилось: 92D4-11AE = 8126
254₈ = 172₁₀ = АС₁₆
9F₁₆ = 159₁₀ = 237₈
Объяснение:
Переведите число 254₈ по схеме А8 → А10 → А16
254₈ = 2 * 8² + 5 * 8¹ + 4 * 8⁰ = 2 * 64 + 5 * 8 + 4 * 1 = 128 + 40 + 4 = 172₁₀
254₈ = 172₁₀
172 / 16 = 10 + остаток 12 (С)
10 / 16 = 0 + остаток 10 (А)
записываем остатки снизу вверх
В качестве цифр 16-ой системы счисления используются цифры от 0 до 9 и латинские буквы от A до F.
А = 10₁₀ B = 11₁₀ C = 12₁₀ D = 13₁₀ E = 14₁₀ F = 15₁₀
172₁₀ = АС₁₆
Переведите число 9F₁₆ по схеме А16 → А10 → А8
9F₁₆ = 9 * 16¹ + F * 16⁰ = 9 * 16 + 15 * 1 = 144 + 15 = 159₁₀
В качестве цифр 16-ой системы счисления используются цифры от 0 до 9 и латинские буквы от A до F.
А = 10₁₀ B = 11₁₀ C = 12₁₀ D = 13₁₀ E = 14₁₀ F = 15₁₀
9F₁₆ = 159₁₀
159 / 8 = 19 + остаток 7
19 / 8 = 2 + остаток 3
2 / 8 = 0 + остаток 2
записываем остатки снизу вверх
159₁₀ = 237₈
using System;
using System.Linq;
namespace restless
{
class Program
{
static double Average(double[] arr)
{
double _sum = 0;
for (int i = 0; i < arr.Length; i++)
_sum += arr[i];
return _sum / arr.Length;
}
static Tuple<double, double> SumProdToLastPositive(double[] arr)
{
double _sum = 0, _prod = 1;
int i = arr.Length - 1;
while(arr[i] <= 0)
{
i--;
}
for (int j = 0; j <= i; j++)
{
_sum += arr[j];
_prod *= arr[j];
}
return Tuple.Create(_sum, _prod);
}
static double[] RemoveElements(double[] arr, double a, double b)
{
int startSize = arr.Length;
var tmp = arr.Cast<double>().ToList();
for (int i = 0; i < tmp.Count; i++)
{
if (arr[i] >= a && arr[i] <= b)
{
tmp.Remove(arr[i]);
}
}
for (int i = 0; i < tmp.Count; i++)
{
arr[i] = tmp[i];
}
for (int i = tmp.Count; i < startSize; i++)
arr[i] = 0;
return arr;
}
static void Main()
{
Random rnd = new Random();
double[] arr = new double[10];
Console.WriteLine("Введите элементы массива (каждый на новой строке): ");
for (int i = 0; i < 10; i++)
arr[i] = Convert.ToDouble(Console.ReadLine());
/*Для удобства проверки сделана генерация только целых чисел*/
Console.Write("Исходный массив: ");
for (int i = 0; i < 10; i++)
{
Console.Write($"{arr[i]} ");
}
Console.WriteLine();
//функция, которая вернет нам среднее арифметическое
Console.WriteLine($"Среднее арифметическое: {Average(arr)}");
//функция, которая вернет нам сумму и произведение элементов до последнего положительного
Console.WriteLine($"Сумма и произведение до последнего положительного: {SumProdToLastPositive(arr)}");
/*Последняя функция возвращает массив, мы его запишем в переменную g, а затем выведем на экран.
Хотя можно было передать массив с модификатором ref и изменять его, ну так тоже пойдёт.
*/
Console.Write("Изменённый массив после удаления элементов из промежутка [a, b]: ");
var g = RemoveElements(arr, 2.0, 5.0);
for (int i = 0; i < g.Length; i++)
Console.Write(g[i] + " ");
}
}
}