oaved2018
?>

Всем ., решить по информатике.нужно полное решение.объём сообщения, содержащего 2048 символов, составил 2/512 часть мбайт.какова мощность алфавита, с которого записано сообщение?

Информатика

Ответы

MaratФам
2/512 Мбайт = 2*1024/512 Кбайт = 4 Кбайта = 4*1024 байт
Память для одного символа = 4*1024/2048 = 2 байта = 2*8 бит = 16 бит.
Мощность алфавита = 2^16 = 65536
Татьяна-Мария
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace zamenaZnakaVmassive
{
class Program
{
static void Main(string[] args)
{
int[] mas = new int[10];
Random r = new Random();
Console.WriteLine("Исходный массив: ");
for (int i = 0; i<mas.Length;i++)
{
mas[i] = r.Next(1, 10);
Console.Write(mas[i] + " ");
}
Console.WriteLine();
Console.WriteLine("Введите значение");
int x = int.Parse(Console.ReadLine());
Console.WriteLine("Измененный массив: ");
for (int i =0; i < mas.Length; i++)
{
if (mas[i] == x) mas[i] = mas[i] * (-1);
Console.Write(mas[i] + " ");
}
Console.ReadKey();
{
}
}
}
}
Виталий887
Чтобы разъяснить происходящее, были сделаны следующие шаги.
1. Константы 3.1 и 0.8 переведены в машинное представление а затем назад в десятичное с максимальной для паскалевских данных вещественного типа real (он же double) точностью (вложения 1 и 2).
2. В системе компьютерной алгебры, позволяющей работать с произвольной точностью (выбрана точность в 30 значащих цифр) для полученных констант выполнены соответствующие заданному фрагменту программы вычисления (вложение 3)
3. Результат 0.499999999999999955591079014996 был переведен в машинное представление. Затем в машинное представление была переведена константа 0.5, которая, как видно во вложении 4, представляется в компьютере точно. Поэтому проверка на точное равенство с 0.5 дает не тот результат, который Вы ожидали.
4. Можно было также воспользоваться программой на паскале.
begin
  var x:=3.1;
  var y:=0.8;
  var p:=2;
  var a:=Frac(x); // =0,1
  var b:=Frac(y)-0.5; // =0,3
  var kp:=sqrt(sqr(0.5-a)+b*b); // =0,5
  if abs(kp-0
  Writeln(kp-0.5)
end.

Результат: -5.55111512312578E-17
Это как раз то, что так портит Вам всю картину.

По поводу Вашего условия if kp>=0.5 then p=p+1;
Ошибка имеет порядок 0.6·10⁻¹⁶ и наверно ничего страшного не будет, если оператор (с запасом) подправить на if kp>=(0.5-1e-15) then p:=p+1;

Pascalabc.net вот кусочек программки: // x=3.1 (введено с клавиатуры) // y=0.8 (введено с клавиатуры
Pascalabc.net вот кусочек программки: // x=3.1 (введено с клавиатуры) // y=0.8 (введено с клавиатуры
Pascalabc.net вот кусочек программки: // x=3.1 (введено с клавиатуры) // y=0.8 (введено с клавиатуры
Pascalabc.net вот кусочек программки: // x=3.1 (введено с клавиатуры) // y=0.8 (введено с клавиатуры

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Всем ., решить по информатике.нужно полное решение.объём сообщения, содержащего 2048 символов, составил 2/512 часть мбайт.какова мощность алфавита, с которого записано сообщение?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Vrezh
ирина_Андреевич1634
vrn3314
Pavel_Olegovna1601
Ka-shop2791
dzo-dzo
Владислав893
muzeynizhn
гайсанов
vera4
annanas08
Abdullaev
Наталья_Владимир708
natalia-bokareva
Koranna1986