
Лабораторная работа 1. Процедуры ввода/вывода.
Цель работы: изучить операторы ввода и вывода, форматы, используемые в этих операторах.
Теоретический материал
Форматный вывод
Вначале рассмотрим функцию, определяющую форматный вывод:
printf("управляющая строка", аргумент1, аргумент2, ... );
Управляющая строка содержит объекты трех типов: обычные символы, которые просто выводятся на экран дисплея, спецификации преобразования, каждая из которых вызывает вывод на экран значения очередного аргумента из последующего списка и управляющие символы-константы.
Каждая спецификация преобразования начинается со знака % и заканчивается некоторым символом, задающим преобразования.
Символ преобразования связан с типом переменных. приведем символы преобразования:
1) d – значением аргумента является десятичное целое число;
2) o – значением аргумента является восьмеричное целое число;
3) x – значением аргумента является шестнадцатеричное целое число;
4) c – значением аргумента является символ;
5) s – значением аргумента является строка символов;
6) e – значением аргумента является вещественное число в экспоненциальной форме;
7) f – значением аргумента является вещественное десятичное число с плавающей точкой;
8) u – значением аргумента является беззнаковое целое число;
9) p – значением аргумента является указатель (адрес).
Если после знака % записан не символ, то он выводится на экран. Функция printf использует управляющую строку, чтобы определить, сколько всего аргументов и каковы их типы.
Например, в результате работы программы получены переменная i, имеющая значение 100, и переменная j, имеющая значение 25. Обе переменные целого типа. Для вывода этих переменных на экран в виде
i=100 j=25
необходимо применить функцию
printf(“i=%d j=%d”,i,j);
Как было описано выше, в кавычках задается формат вывода. перед знаком % записываются символы, которые будут непосредственно выданы на экран. После знака % применена спецификация d, т.к. переменные i и j имеют целый тип. Сами i и j приведены через запятую в списке аргументов. Если результат должен быть представлен в виде
i=100; j=25
необходимо применить функцию
printf(“i=%d; j=%d, i, j);
Если после знака % стоит цифра, то она задает поле, в котором будет выполнен вывод числа.
Функция printf(“%2d”, S); выдает на экран:
336
Поскольку для вывода значения переменной b применена спецификация е, то результат выдан в экспоненциальной форме. Следует отметить, что , если ширина поля меньше, чем число цифр в числе, то поле автоматически расширяется до необходимого размера.
Как было отмечено выше, в управляющей строке могут содержаться управляющие символьные константы. Среди управляющих символьных констант наиболее часто используются следующие:
1) \a – для кратковременной подачи звукового сигнала;
2) \b – для перевода курсора влево на одну позицию;
3) \n – для перехода на новую строку;
4) \r – для перевода курсора в начало текущей строки;
5) \t – для горизонтальной табуляции;
6) \v – для вертикальной табуляции.
Предположим, в результате работы программы переменная i получила значение 50. В результате записи инструкции вызова функции
printf(“\t ЭВМ\n%d\n”,i);
сначала выполнится горизонтальная табуляция (\t), т.е. курсор сместится от края экрана на 8 позиций, затем на экран будет выведено слово “ЭВМ”, после этого курсор переместится в начало следующей строки (\n), затем будет выведено целое значение i по формату d, и окончательно курсор перейдет в начало новой строки (\n).
Ввод данных
Для форматного ввода данных используется функция
scanf(«управляющая строка», аргумент1, аргумент2,...);
Если в качестве аргумента используется переменная, то перед ее именем записывается символ &.
Управляющая строка содержит спецификации преобразования и используется для установления количества и типов аргументов. спецификации для определения типов аргументов такие же, как и для функции printf.
Рассмотрим пример. Требуется ввести значения для переменных i (целого типа) и a (вещественного типа). Эту задачу выполнит функция:
scanf(“%d%f”,&i,&a);
В управляющей строке спецификации трех типов могут быть отделены друг от друга различными знаками, в том числе и пробелом. Следовательно, при занесении значений переменных необходимо использовать указанный разделитель. Если спецификации не отделены одна от другой никакими значениями, то значения переменных заносятся через пробел.
Задание:
Написать программу и нарисовать блок-схему к ней согласно данному варианту.
Вариант 1.
Напишите программу вычисления суммы и произведения двух чисел.
Вариант 2.
Напишите программу нахождения гипотенузы и площади прямоугольного треугольника по двум катетам.
Вариант 3.
Напишите программу вычисления среднего арифметического двух чисел.
Вариант 4.
Напишите программу вычисления суммы четырёх слагаемых.
Вариант 5.
Напишите программу вычисления периметра и площади прямоугольного треугольника по двум катетам.
Вариант 6.
Программа запрашивает у пользователя a,b,c, вычислить значение выражения a2-(b-c)2+b2+1.
Вариант 7.
Программа запрашивает три числа a,b,c.
Вывести на экран значения выражения
Вариант 8.
Программа запрашивает три числа a,b,c.
Вывести на экран значения выражения
.
Вариант 9.
Программа запрашивает три числа a,b,c.
Вывести на экран значения выражения
..
Вариант 10.
Найти площадь поверхности параллелепипеда по формуле:
S = 2 ( А В + В С + А С).
Вариант 11.
Найти площадь поверхности и объем куба по формулам:
S = 6 А2 V = A3
Вариант 12.
Найти объем ртути в сосуде по формуле:
Вариант 13.
Вычислить значение функции
Вариант 14.
На обучение одного ученика государство тратит в год 350 тыся рублей. Произвести расчёт затрат государства на обучение одного класса и всей школы, если в классах по 28 учащихся, а в школе 26 классов.
Вариант 15.
Вычислить длину вектора по формуле:
Вариант 16.
Вычислить вес человека, используя формулу:
Вариант 17.
Заработок рабочих на фабрике составил 1854 условные единицы. Этот заработок нужно разделить поровну между рабочими, количество которых N. Найти заработок одного рабочего.
Вариант 18.
Магазин продаёт автомашины по цене 25 тысяч условных единиц за каждую. Найти общую выручку от продажи, если количество машин – 45 штук.
Вариант 19.
На каждом из пяти одинаковых по длине участков дороги автомобиль шел с различной скоростью. Определить среднее время прохождения каждого из участков дороги.
Вариант 20.
Дана последовательность из шести чисел (они вводятся с клавиатуры). Найти сумму этих чисел и их среднее арифметическое. Вывести на экран полученные величины и сами числа на разных строках.
Вариант 21.
Вычислить стоимость дачного гарнитура, состоящего из четырёх стульев, двух кресел и стола. Стоимость каждого предмета вводится с клавиатуры
Вариант 22.
Рассчитать семейный бюджет на одного человека. Семья состоит из четырёх человек: отца, матери, сына и дочери. Отец и мать работают (т.е. приносят в семью деньги), сын и дочь – школьники (денег в семью не приносят). Зарплаты отца и матери вводятся с клавиатуры.
Вариант 23.
Найти площадь поверхности цилиндра и его объём по формулам:
Вариант 24.
Камень бросили в колодец и через Т секунд послышался плеск воды. На какой глубине от сруба находится вода в колодце?
Высота определяется по формуле:
Вариант 25.
Найти массу круглого цилиндрического стержня d=3,5 см и длиной l=11,56 см, сделанного из алюминия, плотность которого p=2,7 г/см. Формулы для расчёта:
Вариант 26.
Сколько времени проводит ученик в школе в тот день, когда у него К уроков по 40 минут, перемены между уроками по 5 минут и еще 2 урока по информатике, которые проходят без перемены?
Вариант 27.
Мальчик задумал целое число. Если его умножить на 8, затем прибавить 44, а потом разделить на 2, то получится 150. Какое число задумал мальчик?
Вариант 28.
Известна длина в сантиметрах. Преобразовать в километры и метры.
Вариант 29.
Дано целое трехзначное число N. Найти:
a) последнюю цифру числа N;
b) первую цифру числа N;
c) вторую цифру числа N;
d) сумму цифр данного числа
Вариант 30.
Дано вещественное число А, содержащее два знака до запятой и два после. Получить новое число, поменяв в числе А целую и дробную части.
Вариант 31.
Определить, какого объема получится файл, если набрать N символов.
Примечание. 1 символ занимает 1 байт; 1 Кбайт = 1024 байт.