kzhgutova
?>

3. текст программы с ошибкой представлен ниже: program n1; var a: array [1..8] of integer; s, k: integer; beginfor k : = 1 to 8 do readln (a[k]); s : = 0; for k : =1 to 8 doif a (k) < 0 then s : = s + a[1]; writeln (s)endкаким окажется ответ после исполнения этой программы, если вчестве элементов массива будут введены числа 1, 2, 3, 4, -1, -2, -3, -4? как исправить программу, чтобы она решала поставленную передпограммистом ? 20б​

Информатика

Ответы

uchpaot

1- Известно, что с бит можно закодировать 2N различных чисел. Т. к. поля независимы, то для каждого нужно своё минимальное число бит.

Для поля с номером года 211 < 2100 < 212, значит, минимальное количество бит для этого поля 12.

Номер месяца: 23 < 12 < 24, значит, для этого поля — 4 бита.

Номер дня: 24 < 30 < 25, значит, этому полю соответствуют 5 бит.

Итого для одной записи нужно: 12 + 4 + 5 = 21 бит

2-Согласно условию, в номере могут быть использованы 10 цифр (0..9) и 26 букв, всего 10 + 26 = 36 символов. Известно, что с бит можно закодировать 2N различных символов. Поскольку 25 < 36 < 26, то для записи каждого из 36 символов необходимо 6 бит.

Для хранения всех 7 символов номера нужно 7 * 6 = 42 бит, а т. к. для записи используется целое число байт, то берём ближайшее не меньшее значение, кратное восьми, это число 48 = 6 * 8 бит (6 байт).

Тогда 40 номеров занимают 6 * 40 = 240 байт.

3 текст скинь

ldstroy

           int[,] a = { { 1, 2, 17, 16, 6, 455, 867 }, { 1, 2, 17, 8, 5757, 455, 867 }, { 1, 2, 17, 8, 5757, 455, 867 }, { 1, 2, 17, 8, 16, 455, 867 }, { 1, 2, 17, 8, 5757, 455, 867 } }; //естественно тут ваш двухмерный массив.

           int i = 0;

           int s = 0;

           for (int j = 0; j < a.GetLength(1); j++)

           {

               var t = a[1, j];

               if (t != 0 & t > 15) { i++; }

           }

           Console.WriteLine(i);

           i = 0;

           for (int j = 0; j < a.GetLength(0); j++)

           {

               var t = a[j, 4];

               if (t%2!=0) { i++; s += t; }

           }

           if (i != 0) { Console.WriteLine(s / i); }

           i = 0;

           s = 0;

           for (int j = 0; j < a.GetLength(1); j++)

           {

               var t = a[3, j];

               if (t % 4 == 0) { i++; s += t; Console.WriteLine(t); }

           }

           if (i != 0) { Console.WriteLine(s / i); }

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

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

3. текст программы с ошибкой представлен ниже: program n1; var a: array [1..8] of integer; s, k: integer; beginfor k : = 1 to 8 do readln (a[k]); s : = 0; for k : =1 to 8 doif a (k) < 0 then s : = s + a[1]; writeln (s)endкаким окажется ответ после исполнения этой программы, если вчестве элементов массива будут введены числа 1, 2, 3, 4, -1, -2, -3, -4? как исправить программу, чтобы она решала поставленную передпограммистом ? 20б​
Ваше имя (никнейм)*
Email*
Комментарий*

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

pronikov90
krisrespect2
Anna-Miron
Galina_Yurevna
Vasilisan
сузанна_Людмила
gilmore886173
smileystyle
yda659
Stryapunina
alena
iskypka
Иванов
ВладимировичСтанислав
volodin-alexander