- •Форматный ввод/вывод данных.
- •1.Форматный вывод
- •2.Форматный ввод .
- •Операции языка с.
- •Лабораторная работа №1 Данные. Типы данных. Приведение типов. Циклы Теоретическая часть Типы данных
- •Оператор sizeof
- •Преобразования типов.
- •Примеры программ
- •Задание на лабораторную работу № 1
- •Операторы организации условных и безусловных переходов.
- •If (проверка_условия) инструкция_1; else инструкция_2;
- •Примеры программ
- •Задание на лабораторную работу № 2
- •Массивы.
- •Строки символов.
- •Структуры.
- •Оператор typedef.
- •Битовые поля.
- •Смеси (объединения).
- •Перечисляемый тип данных.
- •Примеры программ
- •Задание на лабораторную работу № 3
- •Примеры программ
- •Классы памяти.
- •Указатели на функции.
- •Рекурсия.
- •Примеры программ
- •Задание на лабораторную работу № 5
- •Контрольные вопросы:
- •Рекомендуемая литература
Задание на лабораторную работу № 2
Название работы: Изучение операторов циклов, условных переходов.
Цель работы: Научиться работе в среде Borland C++ 3.1. Исследовать работу операторов if, for, while.
1. Составить программу для решения уравнения второй степени в виде: a*x2+b*x+c=0
Программа должна запрашивать у пользователя данные для расчета, находить решение для всех значений a, b, c (учесть мнимые числа) и выводить результаты работы на экран.
2. По справочной системе исследовать работу математических функций: pow(), log(), sqrt(), описания которых находятся в справочной системе, заголовочный файл <math.h>. Составить программу, которая демонстрировала бы работу этих функций.
Контрольные вопросы:
Оператор организации циклов for.
Оператор организации циклов while и do while.
Оператор организации условных переходов if.
Оператор организации ветвления switch.
Оператор организации безусловных переходов.
Лабораторная работа №3 Указатели. Структурированные типы данных
Теоретическая часть
Указатели и операции с ними.
Указатели - это переменные, показывающие место или адрес памяти, где расположены другие объекты (переменные, функции и т. п.). Так как указатель содержит адрес некоторого объекта, то через него можно обращаться к этому объекту.
Унарная операция & дает адрес объекта, поэтому оператор y=&x; присваивает адрес х переменной у. Операцию & нельзя применять к константам и выражениям; конструкции вида &(х+7) или &28 недопустимы.
Унарная операция * воспринимает свой операнд как адрес некоторого объекта и использует этот адрес для выборки содержимого, поэтому оператор z=*y; присваивает z значение переменной, записанной по адресу у. Если y= &x; z=*y; то z=x.
Объекты, состоящие из знака * и адреса (например, *а), необходимо объявлять. Делается это, например, так:
int *а, *b, *с;
char *d;
Объявление вида char *d; говорит .о том, что значение, записанное по адресу d, имеет тип char.
Указатели могут встречаться и в выражениях. Если у - указатель на целое, т. е. имело место объявление int *у;, то *у может появиться там же, где и любая другая переменная, не являющаяся указателем. Таким образом, следующие выражения вполне допустимы:
*у = 7;
*х * = 5;
(*z)++;
Первое из них заносит число 7 в ячейку памяти по адресу у, второе увеличивает значение по адресу х в пять раз, третье добавляет единицу к содержимому ячейки памяти с адресом z. В последнем случае круглые скобки необходимы, так как операции * и ++ с одинаковым приоритетом выполняются справа налево (см. табл. 1.2). В результате если, например, *z=5, то (*z)++ приведет к тому, что *z=6, а *z++ всего лишь изменит сам адрес z (операция ++ выполняется над адресом z, а не над значением *z по этому адресу).
Указатели можно использовать как операнды в арифметических операциях. Если у - указатель, то унарная операция y++; увеличивает его значение; теперь оно является адресом следующего элемента. Указатели и целые числа можно складывать. Конструкция y+n (у - указатель, n- целое число) задает адрес n-ro объекта, на который указывает у. Это справедливо для любых объектов (int, char, float и т. п.); транслятор будет масштабировать приращение адреса в соответствии с типом, определенным из соответствующего объявления.
Любой адрес можно проверить на равенство (= =) или неравенство (!=) со специальным значением NULL, которое позволяет определить ничего не адресующий указатель.
