
- •Информатика и программирование
- •Методические указания к лабораторным работам Содержание
- •Лабораторная работа 1 Цель работы
- •Задание
- •Теоретическая часть
- •Компоненты ide
- •Строка меню и меню
- •Наборы команд
- •Рекомендации по выполнению лабораторной работы
- •Теоретическая часть Преобразование типов операндов
- •Оператор форматного вывода printf
- •Рекомендации по выполнению лабораторной работы
- •Теоретическая часть Выражения и операции в языке си
- •Приоритеты операций в выражениях
- •Теоретическая часть Оператор цикла for
- •Оператор цикла while
- •Оператор do while
- •Теоретическая часть Массивы в языке Си
- •Указатели и массивы
- •Условный оператор
- •Оператор переключатель switch
- •Оператор перехода goto
- •Рекомендации по выполнению лабораторной работы Определение цифр числа
- •Поиск простых чисел
- •Треугольник Паскаля
- •Теоретическая часть Функции в языке Си
- •Объявление и определение функций
- •Прототип функции
- •Параметры функции
- •Локальные и глобальные переменные
- •Функции и массивы Передача одномерных массивов как параметров функции
- •Передача строк в качестве параметров функций
- •Рекомендации по выполнению лабораторной работы Комментарии к заданию 1
- •Комментарии к заданию 2
- •Теоретическая часть Ввод-вывод в языке Си
- •Потоковый ввод-вывод
- •Открытие и закрытие потока
- •Стандартные файлы и функции для работы с ними
- •Символьный ввод-вывод
- •Строковый ввод-вывод
- •Форматированный ввод-вывод
- •Рекомендации по выполнению лабораторной работы
- •Теоретическая часть Ввод-вывод для двоичных файлов
- •Прямой доступ к файлам
- •Рекомендации по выполнению лабораторной работы
- •Теоретическая часть Строки в языке Си
- •Операции со строками
- •Теоретическая часть Проверка символов
- •Теоретическая часть
- •Теоретическая часть
- •Рекомендации по выполнению лабораторной работы Определение корней функции
- •Метод деления отрезка пополам
- •Метод хорд
- •Вычисление интеграла
- •Рекомендации по выполнению лабораторной работы
- •Содержание отчета
Оператор форматного вывода printf
Функция printf() описана в заголовочном файле stdio.h и имеет следующий прототип:
int printf(char *format, ...);
Управляющая строка (format) содержит два типа информации: символы, которые непосредственно выводятся на экран, и спецификаторы формата, определяющие, как выводить аргументы. Спецификатор формата начинается с символа %, за которым следует код формата. Спецификаторы формата следующие:
%с - символ,
%d - целое десятичное число,
%i - целое десятичное число,
%е - десятичное число в виде х.хх е+хх,
%Е - десятичное число в виде х.хх Е+хх,
%f - десятичное число с плавающей занятой хх.хххх,
%F - десятичное число с плавающей запятой хх.хххх,
%g - %f или %е, что короче,
%G - %F или %Е, что короче,
%о - восьмеричное число,
%s - строка символов,
%u - беззнаковое десятичное число,
%х - шестнадцатеричное число например, 5a5f,
%Х - шестнадцатеричное число например, 5A7F,
%% - символ %,
%р - указатель,
Кроме того, к спецификаторам формата могут быть применены модификаторы l и h, например:
%ld - печать long int,
%hu - печать short unsigned,
%Lf - печать long double.
Между знаком % и форматом команды может стоять целое число. Оно указывает на наименьшее поле, отводимое для печати. Если строка или число больше этого поля, то строка или число печатается полностью, игнорируя ширину поля. Нуль, поставленный перед этим числом, указывает на необходимость заполнения неиспользованных мест поля нулями. Например, использование printf("%05d", 15);
даст результат 00015.
Чтобы указать число десятичных знаков после целого числа, ставится точка и целое число, указывающее на количество десятичных знаков. Когда такой формат применяется к целому числу или к строке, то число, стоящее после точки, указывает на максимальную ширину поля печати.
Выравнивание выдачи производится по правому краю поля. Если мы хотим выравнивать по левому знаку поля, то сразу за знаком % следует поставить знак минус (-). В прототипе функции многоточием обозначен список аргументов - переменных или констант, которые следуют через запятую и подлежат печати в соответствующем формате, следующем по порядку.
Рекомендации по выполнению лабораторной работы
При выполнении первой части лабораторной работы необходимо разработать программу, которая демонстрирует особенности автоматического преобразования операндов и возможную потерю значений из-за усечения результата при присваивании.
Для решения первой части задания необходимо в программе определить переменные указанных типов, присвоить одной из них (первой в цепочке) необходимое значение (максимальное для соответствующего типа), а потом присвоить значение этой переменной переменной следующего типа, потом значение новой переменной – переменной другого типа и т.д. После выполнения всех присваиваний для одной величины нужно распечатать значения всех переменных, а потом повторить описанные выше действия для минимального и произвольного значений. Таким образом, в результате выполнения первой части лабораторной работы должно получиться 12 строк результатов – по 4 значения в каждой строке.
При выполнении второго задания лабораторной работы необходимо присвоить переменной заданного типа указанное значение (максимальное или минимальное), распечатать его, затем увеличить (уменьшить) переменную на единицу и распечатать полученное значение.
Содержание отчета
Отчет по лабораторной работе должен содержать:
-
задание лабораторной работы
-
текст программы
-
результаты работы программы
Лабораторная работа 3
Цель работы
Изучение операций языка Си.
Задание
-
Дано число a. Не используя никаких операций, кроме умножения и присваивания, составить программу, вычисляющую
№
Задание
1
a7 за 4 операции умножения;
2
a15 за 5 операций умножения;
3
a8 за 3 операции умножения;
4
a21 за 6 операций умножения;
5
a13 за 5 операций умножения;
6
a28 за 6 операций умножения.
-
Используя тернарную операцию выражение1 ? выражение2 : выражение3 и необходимые арифметические операции, составить программу, выполняющую следующие действия:
-
№
Задание
1
Для заданных целых x,y,z вычислить min(x,y,z) и max(x+y+z,xyz).
2
Для заданных целых x,y заменить меньшее из них на (x+y)/2 , а большее ‑ на x*y.
3
Если сумма заданных вещественных x,y,z меньше 1, то меньшее из них заменить полусуммой остальных, в противном случае меньшее из x и y заменить полусуммой остальных.
4
для заданных целых x,y вычислить z = x-y, если x>y и z= y-x+1, если x<=y
5
для заданных целых x,y,z удвоить их, если x>y>z и заменить их абсолютными значениями в противоположном случае.
6
для заданных целых x,y,z вычислить max(x,y,z) и min2(x+y+z/2,xyz)+1.