РК1_Программирование. РК1_Прога_Аксенов. Функции вводавывода
Скачать 39.51 Kb.
|
Рубежный контроль №1 по дисциплине «Программирование» ФУНКЦИИ ВВОДА-ВЫВОДА Функции ввода-вывода 1 вариант
Москва 2022 Цель работы: изучение функций ввода-вывода и получение навыков организации простейшего ввода-вывода данных. Представленная в примере программа осуществляет ввод и вывод переменных в различных форматах. Исходными данными для вычисления является значение переменных ch, name[20], firstname[20], ip, io, fp, fo, number. Значения этих переменных выводятся с клавиатуры. //Лабараторная работа №2 //вариант 1 //выполнил студент группы ИНБ-Б-0-Д-2022-1 //АксеновК.М. #include #include int main(void) { //объявление переменной для символа char ch; //приглашения для ввода символа printf("Введите символ: "); //ввод символа scanf("%c",&ch); //вывод в символьном виде и в виде кода (формат %с); printf("Вывод в символьном виде %c\n",ch); //объявление переменной строки char name[20], firstname[20]; //приглашения для ввода строки printf("Введите ваше имя и фамилию: "); //вводстроки scanf("%s %s",name,firstname); //вычислениедлиныстроки int length = strlen(name) + strlen(firstname); //выводстрокииеёдлины printf("Менязовут %s %s. Длинастроки %d\n",name,firstname,length); //переменные для целых чисел int ip, io; //приглашение для ввода printf("Введите два целых числа (положительное и отрицательное): "); //ввод целых чисел scanf("%d%d",&ip,&io); //Вывод чисел в десятичном формате printf("Вывод в десятичном формате чисел со сдвигом вправо и фиксированной длиной вывода.\n%-5d->\n%5d",ip,io); //Вывод чисел в шестнадцатеричном формате printf("\nВывод в шестнадцатеричном формате чисел %x и %x\n",ip,io); //переменные для чисел с плавающей точкой float fp, fo; //приглашение для ввода printf("Введите два числа с плавающей точкой (положительное и отрицательное): "); //ввод целых чисел scanf("%f%f",&fp,&fo); //Вывод чисел в десятичном формате printf("Вывод в десятичном формате чисел с заданной точностью.\n%0.3f и %0.3f",fp,fo); //Вывод чисел в экспоненциальном формате printf("\nВывод в экспоненциальном формате чисел %e и %e\n",fp,fo); //переменная для целого беззнакового числа unsigned int number; //приглашение для ввода printf("Введите целое беззнаковое число: "); //ввод числа scanf("%d",&number); //вывод в виде десятичного целого без знака printf("Вывод в виде десятичного целого без знака: %u\n",number); //вывод в виде восьмеричного целого без знака printf("Вывод в виде восьмеричного целого без знака: %o\n",number); //вывод в виде шестнадцатеричного целого без знака printf("Вывод в виде шестнадцатеричного целого без знака: %x\n",number);; } Первые четыре строки программы представляют собой комментарий, в котором указывается номер лабораторной работы и сведения о ее исполнителях. Затем следуют две строки, указывающие на необходимость включения в данный файл двух заголовочных файлов (*.h), находящихся в системной директории и содержащих внешние декларации (прототипы) библиотечных функций printf(), scanf(), strlen(). Библиотеки, содержащие данные функции, также находятся в стандартной директории. Следующая строка является декларацией функции main() с указанием имени функции и типа возвращаемого значения (void – никакое значение функцией не возвращается). Каждая программа обязательно должна иметь одну функцию со стандартным именем main(). Далее в фигурных скобках описывается тело функции. Назначение отдельных операторов программы указывается в виде комментариев. Диалог с пользователем ведется на экране, который после выполнения данной программы будет содержать следующую информацию: Введите символ: A Вывод в символьном виде A Введите ваше имя и фамилию: Kostya Aksenov Меня зовут Kostya Aksenov. Длина строки 13 Введите два целых числа (положительное и отрицательное): 315 -27 Вывод в десятичном формате чисел со сдвигом вправо и фиксированной длиной вывода. 315 -> -27 Вывод в шестнадцатеричном формате чисел 13b и ffffffe5 Введите два числа с плавающей точкой (положительное и отрицательное): 127.361 -574.953 Вывод в десятичном формате чисел с заданной точностью. 127.361 и -574.953 Вывод в экспоненциальном формате чисел 1.273610e+02 и -5.749530e+02 Введите целое беззнаковое число: 2124 Вывод в виде десятичного целого без знака: 2124 Вывод в виде восьмеричного целого без знака: 4114 Вывод в виде шестнадцатеричного целого без знака: 84c Числовое значение переменныхвводятся с клавиатуры после специального приглашения. После ввода значения переменных нажимается клавиша Enter. Затем происходит вывод введённых переменных в определённом формате. Этот алгоритм повторяется несколько раз с различными типами переменных. Программа завершит свою работу после нажатия на любую клавишу на клавиатуре. Контрольные вопросы. Спецификатор определяет тип переменной и способ её вывода. В Си имеется четыре базовых арифметических (числовых) типа данных. Из них два целочисленных — char, int — и два плавающих (вещественных) — float и double. Кроме того, в программах можно использовать некоторые модификации этих типов, описываемых с помощью служебных слов — модификаторов. Существуют два модификатора размера — short (короткий) и long (длинный) — и два модификатора знаков — signed (знаковый) и unsigned (беззнаковый). Знаковые модификаторы применяются только к целым типам. В Си нет четкого закрепления количества памяти за определёнными типами. Это отдано на реализацию конкретного компилятора под конкретную платформу. Правда, все стремятся к универсализации, как представлено в таблице ниже.
Функция printf() предназначена для форматированного вывода. Она переводит данные в символьное представление и выводит полученные изображения символов на экран. Форматы нужны для того, чтобы указывать вид, в котором информация будет выведена на экран. Отличительной чертой формата является наличие символа процент ‘%’ перед ним. Строка форматов содержит форматы для вывода значений. После строки форматов через запятую указываются имена переменных, которые необходимо вывести. Количество символов % в строке формата должно совпадать с количеством переменных для вывода. Тип каждого формата должен совпадать с типом переменной, которая будет выводиться на это место. Замещение форматов вывода значениями переменных происходит в порядке их следования. Функция форматированного ввода данных с клавиатуры scanf() выполняет чтение данных, вводимых с клавиатуры, преобразует их во внутренний формат и передает вызывающей функции. При этом программист задает правила интерпретации входных данных с помощью спецификаций форматной строки. Строка форматов аналогична функции printf(). Строка форматов и список аргументов для функции обязательны. Функция scanf() принимает несколько параметров. Первым параметром является форматная строка, в которой указывается, какой тип данных будет введён. Ввод может осуществляться в несколько переменных, соответственно в форматной строке указывается форматы для всех переменных. Далее, после первого аргумента, функции scanf() задаются переменные, в которые осуществляется ввод. Их должно быть столько, сколько форматов указано в форматной строке. Например: scanf(“%d %f”,number,count). Функция printf() аналогична функции scanf(). Если в управляющей строке функции есть форматы, после управляющей строки нужно передать переменные, которые будут выводится в строке. Их должно быть столько, сколько указано в форматной строке. Управляющие символы – символы, которые используют в строках для управления вывода. Например, перенос строки \n, или знак табуляции \t. |