- •Лабораторная работа № 1 Изучение среды разработки программ
- •Основные теоретические сведения
- •Изучение интерфейса среды программирования
- •Изучение состава и порядка создания проекта
- •3. Отладка и исполнение программы
- •Программа работы
- •Лабораторная работа № 2 Исследование базовых типов данных языка Си
- •Конспект лекций
- •Методические рекомендации
- •Задание на исследование
- •Лабораторная работа № 3 Исследование операций языка Си
- •Изучить материал настоящего руководства.
- •Конспект лекций.
- •Методические рекомендации
- •Задание на исследование
- •Лабораторная работа № 4 Применение управляющих инструкций языка для организации ветвлений в программе
- •Изучить материал настоящего руководства.
- •Конспект лекций
- •Основные теоретические сведения
- •Программа работы
- •Применение оператора выбора
- •Применение меток и оператора безусловного перехода
- •Применение оператора множественного выбора
- •Задание для самостоятельной работы
- •Лабораторная работа № 5 Исследование циклов
- •Конспект лекций.
- •Методические рекомендации
- •Задание на исследование
- •Варианты заданий
- •Лабораторная работа № 6 Применение массивов и указателей для решения прикладных задач
- •Изучить материал настоящего руководства.
- •Конспект лекций
- •Основные теоретические сведения
- •Программа работы
- •Использование числовых массивов
- •Лабораторная работа № 7 Исследование массивов и указателей
- •Конспект лекций
- •Методические рекомендации
- •Задание на исследование
- •Лабораторная работа № 8 Применение функций работы со строками для решения прикладных задач
- •Изучить материал настоящего руководства.
- •Конспект лекций
- •Основные теоретические сведения
- •Программа работы
- •Изучение способов формирования строк в языке Си
- •Применение функций работы со строками для обработки символьных массивов
- •Лабораторная работа № 9 Использование функций для решения прикладных задач
- •Изучить материал настоящего руководства.
- •Конспект лекций
- •Void print(char); // прототип функции
- •Программа работы
- •Изучение порядка объявления и описания функций
- •Изучение порядка вызова функций
- •Конспект лекций
- •Методические рекомендации
- •Задание на исследование
- •Практическое занятие № 6 Использование функций для работы с массивами
- •Изучить материал настоящего руководства.
- •Конспект лекций
- •Основные теоретические сведения
- •Программа работы
- •Практическое занятие № 7 Программирование рекурсивных алгоритмов
- •Изучить материал настоящего руководства.
- •Конспект лекций.
- •Основные теоретические сведения
- •Рекурсивные определения и алгоритмы
- •Программирование рекурсий
- •Программа работы
- •Практическое занятие № 8 Применение производных типов данных для решения прикладных задач
- •Изучить материал настоящего руководства.
- •Конспект лекций
- •Основные теоретические сведения
- •Изучение порядка объявления и инициализации производных типов данных
- •Программирование с использованием производных типов данных
- •Использование функций для работы с производными типами данных
- •Программа работы
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Лабораторная работа № 5 Исследование методов доступа к файлам данных
- •Конспект лекций
- •Методические рекомендации
- •1. Подход с использованием возможностей языка Си
- •Ifstream идентификатор_потока(имя_файла,ключи_потока);
- •Задание на исследование
- •1. Работа с неструктурированными данными
- •2. Работа со структурированными данными
- •Лабораторная работа № 6 Исследование связанных списков данных
- •Конспект лекций
- •Методические рекомендации
- •Исследование формирования элементов связанного списка
- •Int age; // возраст
- •2. Исследование операций с элементами связанных списков
- •If(!start) // если список пуст
- •Void Del(List *cur) // cur - указатель удаляемый элемент
- •If(!p) // дошли до конца не найдя предшествующего
- •Задание на исследование
- •Литература
Задание на исследование
Исследование арифметических операций
для заданных исходных данных исследовать влияние типа данных на конечный результат для всех арифметических операций.
Пример:
typedef signed short int INT;
int main(int argc, char* argv[])
{
INT a=12678, b=-19003, c;
float x=a,y=b,z;
char d=156,e=68,f;
cout<<"\n------------------\nInteger: a="<<a<<", b="<<b;
cout<<”\nSize of UINT is: “<<sizeof(a);
c=a+b; cout<<"\n+: "<<c;
c=a-b; cout<<"\n-: "<<c;
c=a*b; cout<<"\n*: "<<c;
c=a/b; cout<<"\n/: "<<c;
c=a%b; cout<<"\n%: "<<c;
c=-a; cout<<"\n-: "<<c;
c=!a; cout<<"\n!: "<<c;
c=~a; cout<<"\n~: "<<c;
cout<<"\n------------------\nFloating: x="<<x<<", y="<<y;
. . .
cout<<"\n------------------\nCharacter: d="<<d<<", e="<<e;
. . .
return 0;
}
по результатам исследований сделать выводы.
Исследование поразрядных операций
для заданных исходных данных исследовать взаимосвязь между поразрядными операциями сдвига влево на j-разрядов, вправо на k-разрядов и арифметическими операциями умножения и деления исходного числа на число 2N, N=j для операции умножения, N=k для операции деления.
Например:
typedef signed short int INT;
int main(int argc, char* argv[])
{
INT d=156,e,j=2,k=3;
cout<<”\nd=”<<d<<”, j=”<<j<<”;
e=d<<j;
cout<<"\n”<<d<<”<<”<<j<<”="<<e;
cout<<”\nd=”<<d<<”, k=”<<k;
e=d>>k;
cout<<"\n”<<d<<”>>”<<k<<”="<<e;
. . .
return 0;
}
для заданных исходных данных сравнить результаты битовых операций, полученные в программе с результатами, полученными вручную.
Например:
typedef signed short int INT;
int main(int argc, char* argv[])
{
INT d=156,e=67,f;
cout<<”\nd=”<<d<<”, e=”<<e;
f=d&e;
cout<<"\n&: ”<<f;
. . .
return 0;
}
по результатам исследований сделать выводы.