Что Вы знаете о переменных в среде программирования КуМир?
Укажите один или несколько правильных вариантов ответа:
1) Переменная - это команда языка программирования.
2) Переменная - это величина, имеющая тип, имя и значение
3) В качестве переменных нельзя использовать знаки *, ?, +, - и т.д.
4) Существуют 3 типа переменных: целые, вещественные и логические.
5) В качестве переменных могут использоваться латинские буквы и цифры
6) Строчные и заглавные буквы при объявлении переменных не различаются.
Основные единицы измерения информации должен знать даже информатический дилетант
Бит является наименьшей единицей измерения информации. Один бит представляет собой количество информации, которое содержится в сообщении, позволяющее вдвое уменьшить неопределенность знаний о чём бы то ни было.
Байт является основной единицей измерения информации. В одном байте содержится 8 бит. Байт - достаточно мелкая единица измерения информации. К примеру, при одного байта можно зашифровать только один символ, используя таблицу ASCII.
Производные единицы измерения информации
Название
Обозначение
Взаимосвязь с другими единицами
Килобит
Кбит
1 Кбит = 1024 бит = 210 бит
Мегабит
Мбит
1 Мбит = 1024 Кбит = 220 бит
Гигабит
Гбит
1 Гбит = 1024 Мбит = 230 бит
Килобайт
Кбайт (Кб)
1 Кб = 1024 байт = 210 байт
Мегабайт
Мбайт (Мб)
1 Мб = 1024 Кб = 220 байт
Гигабайт
Гбайт (Гб)
1 Гб = 1024 Мб = 230 байт
Стоит отметить, что прием и передача информации может происходить с различной скоростью. Скоростью передачи информации, либо скоростью информационного потока, является объем информации, переданный за единицу времени. Скорость можно выразить в таких единицах, как бит за секунду (бит/с), байт за секунду (байт/с) и т.п.
Формула Хартли при измерении информации
Как уже было сказано ранее, при одного бита можно вдвое уменьшить неопределенность знаний о чём бы то ни было. При формулы Хартли можно установить связь между количеством возможных событий и объемом информации.
N = 2I, где
N – число возможных событий; I – объем информации.
Вероятностный метод измерения информации
Применение данного метода возможно только тогда, когда вероятность появления в сообщении каждого из символов не является одинаковой. В таком случае объем информации можно определить при использовании формулы Шеннона:
, где
N - число возможных событий; I - объем информации; Pi - вероятность события i
Алфавитный метод измерения информации
Представленный метод предусматривает рассмотрение информации в качестве последовательности знаков в выбранной знаковой системе, при этом не концентрируя внимания на самом смысле информации.
Алфавит, который является множеством символов определенного языка, можно интерпретировать как разные события. Следовательно, если вероятность появления каждого символа в сообщении считать одинаковой, применяя формулу Хартли можно определить объем информации, который содержится в каждом символе:
I = log2N, где
N – число возможных событий; I – объем информации
Использование алфавитного метода измерения информации является наиболее практичным в технических средствах обработки информации.
Алфавитный подход – наиболее объективный измерения информации. Этим он отличается от содержательного подхода, который отличается своей субъективностью. Наиболее удобно измерять информацию в тех случаях, когда число символов в алфавите соответствует целой степени 2. Если N = 64, то в каждом символе будет содержаться 6 бит.
Стоит отметить, что в теории максимальный размер алфавита не может быть ограниченным. В связи с этим употребляется такое понятие, как достаточный алфавит. При работе с вычислительной техникой объем достаточного алфавита составляет 256 символов. В такой алфавит помещаются все необходимые символы.
// Внимание! Если программа не работает, обновите версию!
type
Exams=record
fam:string;
nam:string;
ball:=new integer[4];
end;
begin
var Ls:=new List<Exams>;
var b:Exams; // буфер
ReadLines('marks.csv')
.Foreach(t->begin
var a:=t.ToWords(',');
(b.fam,b.nam):=(a[0],a[1]);
b.ball:=a[2:].Select(q->q.ToInteger).ToArray;
Ls.Add(b)
end);
var n:=Ls.Count;
// а
var m:=Arr(0,0,0,0);
var c:=Ls.Select(t->t.Ball);
foreach var d in c do
for var i:=0 to 3 do m[i]+=d[i];
Writeln('Средние по предметам: ', m[0]/n:0:1,', ',m[1]/n:0:1,
', ',m[2]/n:0:1,', ',m[3]/n:0:1);
// б
var max:=Ls.Select(t->t.Ball.Sum).Max;
Writeln(NewLine,'Максимальная сумма ',max);
// в
Writeln(NewLine,'Учащиеся, набравшие максимальную сумму :');
Ls.Where(t->t.Ball.Sum=max).Select(t->t.fam+' '+t.nam)
.OrderBy(t->t).Println(NewLine);
// г
Writeln(NewLine,'Получили хотя бы одну двойку:');
Ls.Where(t->t.Ball.Any(t->t=2)).Select(t->t.fam+' '+t.nam)
.OrderBy(t->t).Println(NewLine)
end.
Пример:
Средние по предметам: 3.3, 3.3, 4.0, 2.0
Максимальная сумма 13
Учащиеся, набравшие максимальную сумму :
Алескеров Имран
Бармин Владимир
Получили хотя бы одну двойку:
Александрова Маргарита
Алескеров Имран
Бармин Владимир
Замечание:
В PascalABC.NET 3.3 динамические массивы реализованы с списков, поэтому было принято решение использовать именно список, позволяющий не знать заранее размера массива и добавлять элементы по мере необходимости. Если возникнет причуда иметь данные именно в массиве, перед end. добавьте строку var x:=Ls.ToArray; - она создаст из списка массив х.