Задания для подготовки к работе. 1. Изучить, в каких случаях и по каким правилам преобразования типов выполняются автоматически в языках Си и Турбо Паскаль.
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
Одномерные массивы
Цель работы: освоение работы с одномерными массивами в языке Си, в том числе и символьными строками.