посчитайте объем всей информации в эелектронной книге, если книга сделана с компютера, содержит 240 страниц; на каждой странице - 60 строк, в каждой строке 80 символов
Алгоритм сортировки строки массива по возрастанию методом прямого выбора может быть представлен так: 1. Просматривая строку массива от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального. 2. Просматривая строку массива от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального. 3. И так далее до предпоследнего элемента.
Решение:
//Pascal const n = 7;
var a: array[1..n, 1..n] of integer; i, j, min, ind: integer;
//Заполнение массива сл. числами и вывод на экран begin for i := 1 to n do begin for j := 1 to n do begin a[i, j] := random(100); write(a[i, j]:4); end; writeln; end;
//Сортировка строки матрицы прямым выбором
for i := 1 to n - 1 do begin min := a[4, i]; ind := i; for j := i + 1 to n do if a[4, j] < min then begin min := a[4, j]; ind := j; end; a[4, ind] := a[4, i]; a[4, i] := min; end; writeln;
//вывод отсортированной строки for j := 1 to n do begin write(a[4, j]:4); end; end.
1. Оператор цикла предназначен для выполнения большого количества однотипных вычислений, отличающихся только значениями переменных, входящих в формулу. Например, вычисление значений формулы y=sin(x) для х=1..10 с шагом 1. 2. В языке Паскаль существуют циклы: с параметром (FOR), с предусловием (WHILE..DO), с постусловием (REPEAT...UNTIL). 3. Оператор FOR для примера п.1 имеет вид: FOR K:= 1 TO 10 DO Y[K]:=SIN(K). Если в теле цикла будет несколько операторов, то они заключаются в операторных скобки BEGIN...END. 4. Во время исполнения этого оператора переменной Y[K] (элементам маccива Y) последовательно присваиваются значения SIN(K). 5. Оператор FOR применяется в тех случаях, когда число повторений заранее известно (К=1..10). 6-9. Циклы WHILE и REPEAT применяются, когда число повторений заранее неизвестно, например, для вычисления суммы ряда с заданной точностью, но их можно применять и для расчета по предыдущему примеру. K:=0; WHILE K<11 DO BEGIN K:=K+1; Y[K]:=SIN(K) END; или для цикла REPEAT: K:=0; REPEAT K:=K+1; Y[K]:=SIN(K} UNTIL K>10; Для вычислений эти циклы равносильны, но есть одно (иногда решающее) отличие - цикл WHILE не будет выполнен ни разу, если условие сразу ложно, а цикл REPEAT сначала выполнит одну операцию, а потом, если условие окажется ложным, остановится.
240 * 60 * 80 = 1 152 000 - символов на странице.
Если предположить, что книга хранится в кодировке ASCII или Windows-1251, то один символ занимает 8 бит.
1152000 * 8 бит = 1152000 Байт = 1 125 КБайт = 1.1 МБайт - ответ.
Если же книга хранится в кодировке UTF-8, то один символ занимает 16 бит памяти.
1152000 * 16 бит = 1152000 * 2 Байт = 1 125 * 2 КБайт = 2.2 МБайт - ответ.