По теме лабораторной работы. Целые данные являются наиболее часто встречаемым типом данных

Целые данные являются наиболее часто встречаемым типом данных. Большинство машинных команд ПЭВМ ориентированны на обработку целых данных.

В языке Си к целым типам относятся типы char и int. Любой символ в компьютере связан с целым числом – кодом этого символа, например в таблице ASCII. Сам символ необходим, когда информация выводится на экран или на принтер или, наоборот, вводится с клавиатуры. Подобные преобразования символа в код и наоборот производятся автоматически. Тип char по умолчанию является знаковым типом. Тип int всегда знаковый.

В стандарте ANSI языка Си имеются модификаторы

signed – знаковый,

unsigned – беззнаковый,

long – длинный,

short – короткий.

Модификаторы ставятся перед соответствующим типом и, в результате, получаются новые типы данных. Модификаторы signed и unsigned могут применятся к типам char и int. Модификаторы short и long могут применятся к типу int. Модификаторы signed и unsigned могут комбинироваться с модификаторами short и long в применении к типу int.

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

При внимательном рассмотрении этой таблицы можно заметить, что типы int, short int, signed int и signed short int имеют одни и те же пределы изменения. Эти типы, хотя и имеют разные названия, являются совершенно одинаковыми в данной реализации компилятора языка. Типы int и signed int всегда обозначают один и тот же тип, так как тип int всегда знаковый и без модификатора signed. Модификатор short в данной реализации не оказывает никакого воздействия на тип.

Таблица 1 – размеры типов данных

Тип Размер в байтах (битах) Интервал изменения
char unsigned char signed char int unsigned int signed int short int unsigned short int signed short int long int signed long int unsigned long int 1 (8) 1 (8) 1 (8) 2 (16) 2 (16) 2 (16) 2 (16) 2 (16) 2 (16) 4 (32) 4 (32) 4 (32) от –128 до 127 от 0 до 255 от –128 до 127 от –32768 до 32767 от 0 до 65535 от –32768 до 32767 от –32768 до 32767 от 0 до 65535 от –32768 до 32767 от –2147483648 до 2147483647 от –2147483648 до 2147483647 от 0 до 4294967295

При вводе и выводе целых данных используются следующие спецификаторы:

%c – символ,

%d – целое десятичное число,

%i – целое десятичное число,

%o – восьмеричное число,

%u – беззнаковое десятичное число,

%x – шестнадцатеричное число,

%ld – целое типа long int.

При работе с целыми данными нередко приходится иметь дело с операциями mod – остаток от деления нацело, и с div частное от деления нацело. Эти операции определяются как

a div b = [ a / b ]

a mod b = a - b * [a / b ], где [x] - целая часть числа х.

Например:

11 div 4 = [2.75] = 2 11 mod 4 = 11 – 4*2 = 3

(-11) div 4 = [-2.75] = -2 (-11) mod 4 = (-11) – 4*(-2) = -3

11 div (-4) = [-2.75] = -2 11 mod (-4) = 11 – (-4)*(-2) = 3

(-11) div (-4) = [2.75] = 2 (-11) mod (-4) = (-11) – (-4)*2 = -3

Результат деления нацело по знаку положителен, если оба операнда одного знака, и отрицателен, если операнды разного знака. Это аналогично обычному делению. Остаток же от деления нацело, если не равен нулю, по знаку совпадает с делимым. Делить на нуль нельзя, т.е. в a/b, a div b, a mod b предполагается, что b¹0.

В языке Си операция mod обозначается %, т.е. a mod b записывается как a%b. Эта операция определена только для целых a, b. Специального символа для обозначения операции div в языке Си нет. Операция a div b в языке Си реализуется как a/b, где a и b – целые данные. Дело в том, что в языке Си операция деления (/) для целых операндов вычисляет частное от деления нацело. Если же хотя бы один операнд вещественный, то это будет обычная операция деления.

Пример:

Вычислить сумму цифр числа n.

# include<stdio.h>

main()

{

long int n;

int S;

scanf("%ld",&n);

if (n < 0) n = -n;

S = 0;

while(n! = 0)

{ S = S + n%10;

n = n / 10;}

printf("Сумма цифр = %d",S);}

Задания для лабораторной работы:

1. Заданы три натуральных числа A, B и N (A N, B N). Найти все натуральные числа С, не превосходящие N, которые можно представить в виде суммы (произвольного типа) слагаемых, каждое из которых А или В (т.е. C=kA+mB, где k,m – целые положительные числа)

2. Определить можно ли представить заданное натуральное число N как сумму кубов каких-нибудь трех натуральных чисел n, m, k (т.е. N= n3 + + m3 + k3 ).

3. Найти наименьшую цифру в заданном целом числе N.

4. Найти количество цифр в заданном целом числе N.

5. Найти наибольшую цифру в заданном целом числе N.

6. Найти все натуральные числа, не превосходящие заданного числа N и равные сумме кубов своих цифр.

7. Найти все натуральные числа, не превосходящие заданного числа N и делящиеся на каждую из своих цифр.

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

9. Среди простых чисел, не превосходящих заданного числа N,найти все такие сумма квадратов цифр которых больше самих чисел.

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

11. Найти все натуральные числа, не превосходящие заданного числа N, десятичное представление которых не симметрично.

12. Найти все натуральные числа, не превосходящие заданного числа N, десятичное представление которых строго возрастающая последовательность цифр.

13. Среди натуральных чисел, не превосходящих заданного числа N,найти такие, десятичное представление которых содержит совпадающие цифры.

14. Найти все натуральные числа, не превосходящие заданного числа N,десятичное представление которых не содержит совпадающие цифры.

15. Найти цифры, которые чаще всего встречаются в заданном натуральном числе N.

16. Найти все простые числа, не превосходящие заданного числа N, десятичная запись которых содержит совпадающие цифры.

17. Разложить заданное натуральное число N на простые множители.

18. Среди простых чисел, не превосходящих заданного числа N, найти такие, десятичное представление которых содержит убывающую последовательность цифр.

19. Найти все простые числа, не превосходящие заданного числа N,в десятичном представлении которых нет совпадающих цифр.

20. Цифры целого числа упорядочить в порядке возрастания и сформировать из них новое целое число.

21. Для заданного натурального числа N найти сумму его цифр S. Найти все целые числа с таким же количеством цифр и имеющих ту же сумму цифр S.

22. Для заданного натурального числа N найти все целые числа, имеющие сумму цифр равную N.

23. Для заданного натурального числа N найти все целые числа, имеющие убывающую последовательность цифр, сумма которых равна N.

24. Для заданного натурального числа N найти все простые числа, сумма цифр которых равна N.

25. Для заданного натурального числа N найти все целые числа, имеющие возрастающую последовательность цифр, сумма которых равна N.

Контрольные вопросы:

1. Что такое модификаторы?

2. Для чего служат спецификаторы?

3. Как определяется функция mod и функция div?

4. Какие преобразования типов в языке Си++ выделяют?

5. Модификаторы signed и unsigned могут комбинироваться с модификаторами short и long в применении к типу int?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: