Задача на одномерные массивы

Автор работы: Пользователь скрыл имя, 15 Сентября 2013 в 10:47, методичка

Краткое описание

Системы счисления делятся на непозиционные и позиционные. В непозиционных системах количественное значение символа определяется только его изображением и не зависит от его места (позиции) в числе. Например, римские цифры. Числа обозначались: 1 – I, 2 – II, 3 – III, 4 – IIII, 5 – V, 10 – X. Для более крупных чисел применялись обозначения L – 50; C – 100; D – 500; M – 1000. Позже стали применять обозначения 4 – IV; 9 – IX; 40 – XL; 90 – XC, и т.д. Числа обозначались посредством суммирования знаков в записи числа. Например, число 37 обозначалось в виде ХХХVII = 10+10+10+5+2. Этим способом можно записать любое число. Например, число 99 изображается XCIX.

Вложенные файлы: 1 файл

Задача на модномерные ассивы.doc

— 1.26 Мб (Скачать файл)



Также при пересечении  соответствующей строки и соответствующего столбца можно получить результат произведения. Например, 3´5 = 23.

 

 

Действительно:

3´ 5 = 5 + 5 + 5 = 5 + (1 + 4) + (2 + 3) =

= (5 + 1) + (4 + 2) + 3 = 10 + 10 + 3 = 23.

С помощью таблицы  умножения также может быть определено произведение многозначных чисел. Посмотрим, например, как определяется произведение двух шестеричных чисел 315 и 543. Разложим оба числа на множители:

315´543 = (3´100 + 1´10 + 5) (5´100 + 4´10 + 3).

На основе дистрибутивного  свойства операции данное произведение разлагается таким образом:

315´543 = (3´100 + 1´10 + 5)´5´100 + (3´100 + 1´10 + 5)´4´10 + (3´100 + +1´10+5)´3.

В конечном итоге следует  вычислить три произведения, а  затем полученные произведения суммировать.

Рассмотрим сначала  последнее слагаемое. Используя  дистрибутивное и ассоциативное  свойство, а также коммутативность  операции умножения, получим следующее  выражение:

(3´100 + 1´10 + 5) ´3 = (3´3) ´100 + (1´3) ´10 + (5´3).

Определив отдельные произведения из таблицы умножения, получим:

315´3 = 13´100 + 3´10 + 23 = 1300 + 30 + 23 = 1353.

В предпоследнем члене  приходится определить результат умножения 315´4´10. Произведение  первых  двух сомножителей   2112, все произведение 2112´10 = 21120. Таким же образом определим первое слагаемое: 243100. Сложение отдельных произведений осуществляется по способу, приведенному выше:

Знаки 0 в конце отдельных чисел  могут быть пропущены, но оговаривается, что каждое частное произведение записывается левее на одно место. Если записать все произведение, получится следующее:

     315*543

    1353

  2112

2431

310013




Метод осуществляется автоматически, как и в десятичной системе  чисел. Отдельно подсчитываются все  «частные произведения», и затем  они суммируются. Вначале осуществляется  умножение на 3: 5´3 = 23, записывается 3, остается 2; 1´3 = 3, прибавляя остаток 3 + 2 = 5, записывается и остается 0; 3´3 = 13 и остатка нет; поскольку это было последнее число, то записывается 13. Затем проводится умножение на 4: 5´4 = 32, записывается 2, но на одно место левее и остается 3; 1´4 = 4, прибавляя остаток 4+3 = 11, записывается и остается 1; 3´4 =

= 20, прибавляя остаток 20 + 1 = 21, и так как произведение закончилось, все число записывается. Наконец, проводится умножение на 5: 5´5= = 41, записывается цифра 1 — опять на одно место левее — записывается и остается 4; 1´5 = 5, прибавляя остаток: 5 + 4 = 13, записывается 3, остается 1; 3´5 = 23, прибавляя остаток:  23+1= =24 и, поскольку произведение закончено, все число записывается.

После этого следует  осуществить сложение частных произведений. Последняя цифра записывается без  изменения. Делая шаг на одну позицию  влево: 5+2=11, записывается последняя  цифра 1 и остается 1. Делая шаг  влево еще раз на одну позицию, 3+1+1=5, прибавляя остаток: 5 + 1 = 10, записывается 0, остается 1. Шагая влево опять на одну позицию:  1+1+3=5, прибавляя остаток: 5+1=10, записывается 0 и остается 1. Опять делаем шаг влево на одну позицию: 2+4=10, прибавляя остаток: 10+1=11, записывается 1, остается 1. Наконец, прибавляя остаток  к первому знаку: 2+1= 3, записывается 3.

Значения произведений и сложений однозначных чисел  выписываются из таблиц, приведенных  выше.

Деление как повторное вычитание. Операция деления может быть выполнена в виде повторного вычитания. Пусть делится, например, число 3440314 на 512. (Числа шестеричной системы.) Вместо того чтобы брать в качестве делимого числа 512, 2´512, ¼, целесообразно рассматривать числа 512, 5120, 51200, 512000, 5120000, ¼ . Как видно, последнее число уже больше, чем делимое, но предпоследнее — еще меньше. Поэтому число 3440314 делится на 512000; итак, вычитание осуществляется не шагами в 1, а шагами в 1000. Поскольку в делителе стоит 0 на последних трех местах, то неважно, что стоит на последних трех местах делимого; проще всего будет записать туда также знаки 0. Следовательно, сейчас число 3440000 делится на 512000. На самом деле рассматривается деление 3440:512, так как сокращение на 1000 не меняет результата частного. Выполняя операцию деления с остатком, получим:

3440 - 4´512 = 3440 - 3252 =144.

Таким образом, 3440314 - 4´512000 = 3440000 – 3252000 + 314 = 144000 + 314 = =144314.

Теперь  уже только число 144314 приходится делить на 512. Так  как  данное число меньше, чем 512000, оно делится на 51200, точнее, делится даже не число 144314, а число 144300. Подобно предыдущему случаю, вместо настоящего деления проводится деление числа 1443 на 512. Из операции деления с остатком получится результат: 1443 –2´512 = 1443 – 2´512 = 15, то есть:

144314 – 2´51200 = 144300 – 142400 + 14 = 1500 + 14 = 1514.

Далее число 1514 делится  на 5120, точнее, делится число 1510, т.е. вместо  этого число 151 делится  на 512. Очевидно, результатом деления  с остатком  является равенство: 151 = 0´512 + 151. На основе данного рассуждения  этот шаг описывается следующим образом:

1514 – 0´5120 = 1510 – 0 + 4 = 1514.

(По существу, данный  шаг пришлось делать только  с целью обозначения деления  на 5120.)

Наконец, делением числа 1514 на 512 определяется равенство: 1514= 2´512+50. Покажем запись всей суммарной процедуры деления. При этом не учитываются цифры, вместо которых записывался знак 0 на соответствующем шаге процедуры.

Число, стоящее на правой стороне деления, получено следующим  образом. На основе ассоциативности операции умножения, вычитаемые на отдельных шагах записываются так: 512´4000,   512´200 и 512´2.

    3440314: 512 = 4202

  –3252

      1443

    –1424

          151

          – 0

          1514

       –1424

              50




Следовательно, частным  является именно число 4202, и если всегда только первый знак  записывается, то путем записи друг за другом отдельных, полученных таким образом знаков, получится именно частное.

Как было упомянуто выше, шестеричная  система была выбрана потому, что  число 6 не слишком большое и не слишком маленькое. Если основное число слишком большое, то и таблицы операций получаются слишком большие, следовательно, слишком большое количество основных операций необходимо знать наизусть. Если основное число слишком маленькое, то отдельные числа будут «слишком длинные». В таком случае 10, как основное число, является довольно удачным выбором.

Контрольные задания
  1. Существует ли система счисления, в которой  8+1=10    и  3´4=13?
  2. Перевести число 198(10) в восьмеричную систему счисления.
  3. Перевести число 1AA(16) в восьмеричную систему счисления.
  4. Перевести число 216(10) в двоичную систему счисления.
  5. Найти сумму всех целых двоичных чисел в диапазоне от 1110(2) до 10001(2) включительно.
  6. Перевести число 1BE7(16) в восьмеричную, двоичную и десятичную системы счисления.
  7. Число 20,45(10) перевели в четверичную систему счисления. Найти 1999 цифру после запятой. Указать период.
  8. Составить таблицу умножения  в системе счисления с основанием  2, 3, 4, 5, 8.
  9. Выполнить операции в заданных системах счисления: 21(3)´22(3); 31(4)´23(4); 100011(2)´110011(2);
  10. Выполнить операции деления в заданных системах счисления с точностью до третьего знака после запятой: 21(3):22(3); 31(4):23(4); 1110011,1101(2):11001(2);
  11. Выполнить операции в заданных системах счисления: 221(3) - 22 (3); 231(4)+23(4); 11011(2) ´10011(2).
  12. Выполнить операции в заданных системах счисления: 21(3)´12(3); 31(4) - 123(4); F1ABA3011(16) - DFAEE19(16); F5(16)´31;  AB(16)´92(16).
  13. Найти наибольшее число из заданных: AB(16); 252(8); 2223(4);  10101101(2); 20102(3);
  14. Найти наименьшее число из заданных: AB(16); 251(8); 2222(4);  10101101(2); 20100(3);
  15. Найти наибольшее число из заданных: B,12(16); 13(8); 23,03(4); 1011,01(2); 101,22(3).

3. Хранение данных в ЭВМ

 

Сегодня ЭВМ является основным инструментом для хранения и обработки информации. ЭВМ может хранить информацию различного типа, обрабатывать различные виды информации, а также делать логическое выводы. ЭВМ хранит информацию в зависимости от ее типа в различных форматах.

Для проведения вычислительных операций компьютер хранит целые числа в двоичной системе в формате со знаком или без знака, вещественные числа в форматах с фиксированной или плавающей запятой, отводя под каждое число определенное количество двоичных ячеек. Хранение логических переменных требует минимального количества двоичных ячеек, т.к. логическая переменная может принимать только значения “да ” или “нет”, которые соответственно обозначаются 1 или 0. Хранение символьной, звуковой, видео информации также осуществляется по строго разработанным форматам, которые используются различными программными продуктами, что делает их совместимыми.

Рассмотрим формы и  форматы хранения данных, и обработку  некоторых видов  информации подробнее.

 

Представление числовых данных в ЭВМ. Элементом для хранения единицы информации является двоичная ячейка, в которой может быть записано либо 0, либо 1. Объем информации, хранимой в такой ячейке, один бит. Восемь таких ячеек, объединенных в группу, позволяет хранить 1 байт (8 бит) информации. Типичным для современных компьютеров объединением таких ячеек является объединение по 2, 4 или 8 байт.

 

Представление целых чисел. Естественная форма. Используя только один байт,  можно записать 28 =256 различных положительных чисел в диапазоне от 0 до 255.

Число

Разряды двоичного числа

0

0

1

1

1

1

1

1

1

127

0

1

1

1

1

1

1

1

255

1

1

1

1

1

1

1

1




 

 

 

 

Заметим, что все ячейки отданы под представление самого числа. Очевидно, что если первый  разряд выделить под  знак числа, то в этом же количестве   разрядов  можно  поместить  числа в два раза меньшие по модулю, т.е.  от

–128 до +127, всего 256 чисел. Например, числа –127 и +127 записываются, как указано в таблице (заштрихованный первый разряд обозначает знак числа).

Число

Разряды двоичного числа

127

0

1

1

1

1

1

1

1

-127

1

1

1

1

1

1

1

1




 

 

 

 

В двух байтах можно расположить  расширенный ряд натуральных  чисел (без знака) в диапазоне от 0 до 65535, а целые числа (со знаком) в диапазоне от

–32768 до +32767.

В алгоритмических языках введено понятие типа данных. Примерами типов данных являются символы, целые, числа с плавающей точкой. Другие типы данных включают адреса памяти и машинные команды, которые управляют работой компьютера.  В языках С++ и Паскаль имеется предопределенный набор типов данных, который позволяет представлять целые числа, числа с плавающей точкой и отдельные символы. Следует отметить, что в некоторых языках (например, в С++) размеры байта и машинного слова различны в разных машинах. Поэтому следует говорить об этих величинах как о машинно-зависимых понятиях.

Существенным недостатком естественной формы представления числа является ограниченный диапазон представления величин. Если результаты вычислений выходят за допустимые пределы, то наступает переполнение разрядной сетки и результат искажается. В персональных ЭВМ обычно производится автоматический переход к представлению данных в нормальной форме.

 

Представление вещественных чисел в форме с  плавающей точкой. Нормальная форма. Вещественные константы, даже не отличаясь от целых констант по значению, имеют другую форму внутреннего представления в ЭВМ. При операциях с такими константами эта форма требует использования арифметики с плавающей точкой.

В математике форма представления  вещественных чисел разнообразна. Любое  число можно представить в  различной форме записи, например,

A = 125, 25 = 12525×10-3 = 0,12525×103 = 0,0012525×105.

Поэтому для однозначного понимания представления числа  в виде кода ЭВМ необходимо ввести стандарт для записи вещественных чисел. Такой стандарт называется нормализованной формой представления вещественного числа. Любое число в нормализованной форме представляется в виде

Информация о работе Задача на одномерные массивы