Задания для подготовки к работе

 

1. Изучить, в каких случаях и по каким правилам преобразования типов выполняются автоматически в языках Си и Турбо Паскаль.

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

3. Разработать алгоритм и составить программы на языках Си и Турбо Паскаль для решения задачи соответствующего варианта. Необходимые преобразования описать подпрограммами.

4. Подобрать наборы тестовых данных.

 

Варианты заданий

 

1. В строке записано вещественное число r в форме с фиксированной точкой. Дописать в строку значение целой части r2.

2. В строке записано вещественное число в форме с плавающей точкой. Вывести целую часть этого числа.

3. В строке записаны вещественные числа, которые разделены пробелами. Найти сумму этих чисел.

4. С клавиатуры вводятся целые числа и вещественные в форме с фиксированной точкой. Признак конца ввода – точка. Определить максимальное из целых и минимальное из вещественных чисел.

5. С клавиатуры вводятся целые числа. Признак конца ввода – ноль. Записать в строку эти числа как вещественные в форме с плавающей точкой, разделив пробелами.

6. Дано вещественное число rи целые неотрицательные mи n. Записать число rв строку в формате :m:nпо правилам форматного вывода ТР.

7. Дано вещественное число rи целое неотрицательное m. Записать число rв строку в формате :m по правилам форматного вывода ТР.

8. В строке записано арифметическое выражение, содержащее целые числа в восьмеричной, десятичной и шестнадцатеричной системах счисления, соединенные знаками операций: + , - . Вычислить значение этого выражения. Признаком восьмеричного числа служит префикс 0 (ноль), шестнадцатеричного - $.

9. Дана последовательность пар целых неотрицательных чисел (pi, ni), 1<pi£16, i£20. Вывести каждое число ni в системе счисления с основанием pi.

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

11. В строке записано вещественное число r в форме с плавающей точкой. Определить, является ли это число целым. Если да, то присвоить это значение целой переменной n.

12. В строке записано вещественное число r в форме с плавающей точкой. Если это число не является целым, то найти такое минимальное целое k, чтобы n=r×10k было целым. Число n вывести.

13. В строке записано вещественное число в форме с плавающей точкой. Присвоить это значение вещественной переменной r, округлив его до тысячных.

14. С клавиатуры вводится последовательность вещественных чисел в форме с плавающей точкой, числа разделены запятыми. Записать введенную последовательность в строку в форме с фиксированной точкой.

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

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

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

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

19. В строке записано число p – основание системы счисления, а затем целое неотрицательное число n в p-ичной системе счисления. Целочисленной переменной присвоить значение n.

20. В строке записано число в форме с плавающей точкой. Записать в строку целую часть этого числа в четверичной системе счисления.

21. Вещественной переменной присвоить значение, записанное в строке.

22. Дано вещественное число. Записать в строку целую часть данного числа в восьмеричной системе счисления.

23. В строке записано число в форме с плавающей точкой. Вещественной переменной присвоить дробную часть этого числа.

24. В строке записано число в форме с плавающей точкой. Целочисленной переменной присвоить целую часть этого числа.

25. Преобразовать вещественное число в строку, сохранив значащих n цифр (n£10).

26. В строке записано вещественное число в форме с плавающей точкой. Преобразовать эту запись к форме с фиксированной точкой.

27. Целую часть данного вещественного числа записать в строку в шестнадцатеричной системе счисления.

28. В строке записано выражение вида m/n, где mи n–натуральные числа. Дописать в строку значение этого выражения, округлив его до сотых.

29. Создать функцию для ввода целого числа с терминала. Причем вводимое число может быть десятичным, если оно не начинается нулем, восьмеричным, если лидирующая цифра – ноль, шестнадцатеричным, если оно содержит префикс 0x или 0X. С помощью этой функции ввести три целых числа, затем вывести их сумму.

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

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

 

1. Какие преобразования типов и по каким правилам выполняются автоматически при вычислении значений выражений в языках Си и Турбо Паскаль?

2. Какие преобразования типов выполняются подпрограммами ввода и вывода?

3. Опишите последовательность типов в порядке повышения типа в языке Си.

4. Как выполняется явное преобразование типов в языках Турбо Паскаль и Си?

5. Пусть символьной переменной ch присвоено значение строчной латинской буквы. Напишите на языках Турбо Паскаль и Си выражения, значениями которых являются:

а) порядковый, номер этой буквы а алфавите;

b) соответствующая прописная буква.

6. Что будет выведено в результате выполнения оператора:

a)printf("%c %i\n",'1'+1,'1'+1 );

b)printf("%с\n",0x1aЗ0);?

 

ЛАБОРАТОРНАЯ РАБОТА №14

Одномерные массивы

 

Цель работы: освоение работы с одномерными массивами в языке Си, в том числе и символьными строками.