- •Министерство образования и науки украины
- •Лабораторная работа № 1
- •Ход работы
- •Требования к отчетам
- •Отчёт должен содержать
- •Вопросы для контроля и самостоятельной работы
- •Лабораторная работа №2
- •Символы типа
- •Ход работы
- •Вопросы для контроля и самостоятельной работы
- •Лабораторная работа №3 Разработка программ со скалярными типами данных (2 часа)
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №4 Разработка программ с циклическими вычислительными процессами
- •Теоретические сведения
- •Алгоритм работы оператора цикла for ():
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №5 Разветвляющийся вычислительный процесс с различными логическими условиями: оператор if... Else, условная операция (?:), оператор switch, оператор break, оператор goto (2 часа)
- •Теоретические сведения
- •Условная тернарная операция (?:)
- •Оператор варианта switch
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №6 Операции с, их приоритеты и использование. Преобразование типов (4 часа)
- •Теоретические сведения
- •Приоритет операций и порядок выполнения (ассоциативность)
- •Преобразование типов
- •(Новый_тип) операнд
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №7
- •Синтаксис определения функций в с
- •Использование локальных и глобальных переменных в функциях. Вызов функции
- •Ход работы
- •Требования к содержанию отчёта приведены в лабораторной работе №1. Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №8 Разработка программ с указателями (2 часа)
- •Теоретические сведения
- •Основные операции с указателями
- •Указатели и целые величины
- •Динамическое размещение указателей в памяти
- •Ход работы
- •Требования к содержанию отчёта приведены в лабораторной работе №1. Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №9 Массивы. Селективная обработка массивов
- •Теоретические сведения
- •Ход работы
- •Требования к содержанию отчёта приведены в лабораторной работе №1
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №10
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №11
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа № 12
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа № 13
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа № 14
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа № 15 Использование указателей для работы с составными типами данных (2часа)
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа № 16
- •Указатели как параметры функции
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №17
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа № 18
- •Использование администратора проектов
- •Lab18.Cpp- Основной файл проекта
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа № 19
- •Доступ к пикселям
- •Графические примитивы
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №20 Разработка программ с использованием классов (2 часа)
- •Теоретические сведения
- •Объявление и определение класса
- •Тело класса
- •Использование класса
- •Инкапсуляция. Управление доступом к членам класса
- •Классы памяти для объектов
- •Использование данных-членов класса
- •Ход работы
- •Требования к содержанию отчёта приведены в лабораторной работе №1. Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №21
- •Инициализация объектов класса
- •Деструкторы
- •Вызов деструкторов
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №22 Использование наследования для создания иерархии классов (2 часа)
- •Теоретические сведения
- •"Друзья" классов (friend)
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №23 Использование виртуальных и указателей для работы с объектами классов (2 часа)
- •Теоретические сведения
- •Виртуальные базовые классы
- •Виртуальные деструкторы
- •Ход работы
- •Литература
- •Выходные данные
Контрольные вопросы для подготовки и самостоятельной работы
Что означают символы: ’\r’, ’\f ’, ’\b’, ’\a’, ’\n’, ’\\’, ’\’’ ’, ’\’ ’, ’\000’, ’\0x00’, ’\0x0a’, ’\0x5c’?
Какие переменные относятся к скалярным, арифметическим, составным, символьным ?
Почему в строке ’’c:\\bc\\test\\f.c’’ знак \ повторяется два раза ?
Что означает ключевое слово signed ?
Что означает ключевое слово #define, для чего используется ?
Что означает ключевое слово const, для чего используется ?
Что означает ключевое слово typedef, для чего используется?
Что означает ключевое слово #include, для чего используется ?
Правильно ли выражение #include ’’c:\bc\test\my.h’’?
Что означают записи: 1254L, 34l, 0xf9ac, 0875, 76678UL ?
Какой размер в байтах имеют базовые типы Си ?
Где можно объявить переменную? Какой тип имеет переменная по умолчанию?
Что означает множественное объявление переменных ?
Как определить размер типа в байтах ?
Происходит ли инициализация переменной по умолчанию? В каких случаях?
Назовите класс памяти переменной по умолчанию. Зависит ли он от места объявления?
Лабораторная работа №4 Разработка программ с циклическими вычислительными процессами
(2 часа)
Цель работы: Изучить написание программ на языке С, используя итерационные (циклические) методы, освоить основные операторы, поддерживающие работу с циклами (for, while, do... while). Научиться писать программы, используя данные операторы.
Теоретические сведения
Каждый оператор С заканчивается оператором (;), который является пустым оператором. Циклы или итерационные процедуры позволяют выполнять отдельные операторы или блоки операторов (составные операторы {…}). Число повторов определяется выражением в скобках, значение которого сравнивается с (-прекращение цикла). Циклы бывают с проверкой значения выражения перед началом выполнения тела цикла (с предусловием), по окончанию выполнения тела (с постусловием) или внутри тела цикла. В С определено три вида операторов цикла: оператор цикла с предусловием - while, оператор цикла с постусловием do... while и оператор цикла for. Рассмотрим эти операторы детально:
Цикл while имеет следующий формат:
while (<выражение>) <оператор>
Условие выполнения итерации в цикле while предварительно проверяется и в случае истинности выражения (не равно ) выполняются те операторы, которые описаны в теле цикла. В противном случае цикл заканчивается, и программа продолжает свое выполнение с того места, где закончилось тело цикла. Если тело цикла содержит несколько операторов, оно ограничивается операторными скобками: "{" и "}" и является составным оператором.
Прервать выполнение цикла можно, используя операторы break, goto, return. Ниже продемонстрировано два примера работы с циклом while в виде фрагментов программ.
Первый пример демонстрирует применение операторов while и break, перекрывающего цикл. Второй пример показывает использование цикла while для проверки ответа, который вводится с клавиатуры.
Пример 1 |
Пример 2 |
… int i=10,k,s =; printf ("ввести шаг приращения к: "); scanf("%i",&k ); while (i) //выполнять цикл, пока i не // равно { s+=k; // увеличить s на k i- - ; // уменьшить i на 1 if (i=k) break; //выйти, если выполнится // условие: i=k }... |
... char ch =’a’; do // начать цикл do while { printf("\n Отвечайте yes или no (y/n):"); scanf(ch!=’y’ &&ch!= 'n'); // выполнять цикл до тех пор, пока не будет нажата // буква ‘y’ или ‘n’
|
Оператор цикла do while() является циклом с постусловием. В этом случае тело цикла всегда выполнится хотя бы один раз.
Формат оператора цикла следующий:
do <оператор>
while(<выражение>);
Телом цикла может являться один или несколько операторов (составной оператор). Ниже приведены аналогичные примеры реализации цикла с постусловием.
Пример 1 |
Пример 2 |
|
int i=10, k, s=; printf ("ввести шаг приращения к: "); scanf("%i", &k); do // начать цикл do while { s+=k; //увеличить s на k i-- ; //уменьшить i if (i=k) break; //выйти, если // выполнится условие: i= =k while (i); // выполнять цикл, пока i // не равно |
char ch; do //начать цикл do while printf ("\n Отвечайте yes или no (y/n):"); scanf("%c",&ch); while (ch!='y' && ch!='n'); // выполнять //цикл до тех пор, пока не будет нажата //буква 'y' или 'n'
|
Оператор цикла for является наиболее удобным и мощным средством организации циклических вычислений в С.
Формат цикла for:
for([<выражение1>];[<выражение2>];[<выражение3>]) <оператор>
где : <выражение1> - производит инициализацию тех переменных, которые будут непосредственно изменяться в цикле, в частности, задаётся начальное значение переменной-счётчика
<выражение2> - определяет условие выхода из цикла. При равенстве его значения цикл прерывается;
<выражение3> - это выражение задает изменение на каждом шаге переменных, проинициализированных в <выражении1>. Можно задавать также изменение других переменных, не связанных с <выражением1>.
Каждое из описанных выражений может отсутствовать. Оператор цикла for, заданный как for(;;){<тело_цикла>}, является бесконечным циклом.