1. Определите объем (в байтах) оперативной памяти электронно-вычислительной машины EDVAC, которая могла хранить 1024 слова. Каждое слово состояло из 44 двоичных разрядов. Какое количество триггеров понадобилось бы для такого объема памяти? 2. Рассчитайте количество ламп, которое заменила микросхема памяти в 512 байт, 1 килобайт.
3. Определите максимальное количество листов, которое может содержать книга, записанная на диск 1,4 Мбайт. Каждая страница содержит 40 строк по 64 символа.
nn = 50;{максимальное число элементов}
var
a: array[1..nn] of integer;
m, n, max, min, i, kn, kz, kp, kt, nmax, nmin, t: integer;
begin
Write('Задайте количество элементов в массиве (1-50): '); Readln(n);
Write('Введите значение для поиска: '); Readln(t);
Writeln('Введите элементы массива');
max := -32768; min := 32767; kn := 0; kz := 0; kp := 0; kt := 0;
for i := 1 to n do
begin
Read(m);
if max < m then begin max := m; nmax := i end
else if min > m then begin min := m; nmin := i end;
if m < 0 then Inc(kn)
else if m = 0 then Inc(kz) else Inc(kp);
if m = t then Inc(kt);
a[i] := m
end;
m := a[nmax]; a[nmax] := a[nmin]; a[nmin] := m;
Writeln('Результирующий массив');
for i := 1 to n do Write(a[i], ' ');
Writeln;
Writeln('Количество элементов, равных ', t, ': ', kt);
Writeln('Количество отрицательных элементов равно ', kn);
Writeln('Количество нулевых элементов равно ', kz);
Writeln('Количество положительных элементов равно ', kp)
end.
Тестовое решение:
Задайте количество элементов в массиве (1-50): 13
Введите значение для поиска: 7
Введите элементы массива
15 -6 11 0 7 0 18 -7 -3 -4 7 0 12
Результирующий массив
15 -6 11 0 7 0 -7 18 -3 -4 7 0 12
Количество элементов, равных 7: 2
Количество отрицательных элементов равно 4
Количество нулевых элементов равно 3
Количество положительных элементов равно 6
--- C# 7.3 -- (.NET Framework 4.8)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CSLear
{
class Program
{
static void Main(string[] args)
{
Tuple<int, int> MatrixRange = new Tuple<int, int>(-10, 10);
int M = int.Parse(Console.ReadLine());
int N = int.Parse(Console.ReadLine());
int[,] Arr = new int[M,N];
ArrayRandomize(ref Arr, M, N, MatrixRange);
MatrixPrint(Arr, M, N);
int Negatives = Arr.Count(x => x < 0);
int Zero = Arr.Count(x => x == 0);
int Positives = Arr.Count(x => x > 0);
Console.WriteLine($"Positive Items: {Positives}\nNegative Items: {Negatives}\nZeroes: {Zero}");
Console.ReadKey();
}
public static void MatrixPrint<T>(T[,] Matrix, int MRows, int MCols)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < MRows; i++)
{
for (int j = 0; j < MCols; j++)
{
sb.Append($"{Matrix[i, j]} ");
}
sb.Append("\n");
}
Console.WriteLine(sb.ToString());
}
public static void ArrayRandomize(ref int[,] Arr, int ArrRows, int ArrCols, Tuple<int, int> Range)
{
Random r = new Random();
for (int i = 0; i < ArrRows; i++)
{
for (int j = 0; j < ArrCols; j++)
{
Arr[i, j] = r.Next(Range.Item1, Range.Item2);
}
}
}
}
public static class Extensions
{
public static int Count<T>(this T[,] Matr, Func<T, bool> Predicate)
{
int counter = 0;
foreach (T Item in Matr)
{
if (Predicate(Item)) counter++;
}
return counter;
}
}
}