- •Глава 2 36
- •1 Задание 1 62
- •Лабораторная работа №1
- •Краткие теоретические сведения
- •1.1Создание консольного приложения
- •1.2Отладка программы
- •1.2.1Установка точек останова (Add breakpoint)
- •2.2Идентификаторы
- •2.3Ключевые слова
- •2.4Знаки операций
- •2.5Константы
- •2.6Комментарии
- •2.7.1Понятие типа данных
- •2.7.2Основные типы данных
- •2.7.3Целый тип (int).
- •2.7.4Символьный тип (char).
- •2.7.5Логический тип (bool).
- •2.7.6Вещественный тип (float, double и long double).
- •2.8Переменные
- •2.9Функции и объекты ввода/вывода
- •2.9.1Основные функции ввода/вывода в стиле с:
- •2.10Операции
- •2.10.2Операция определения размера sizeof
- •2.10.4Деление (/) и остаток от деления (%).
- •2.10.8Логические операции (&& и ||).
- •2.10.10 Условная операция (?:).
- •2.11Выражения
- •2.11.1Преобразование типов в выражении.
- •Задание к лабораторной работе №1
- •Контрольные вопросы к лабораторной работе №1
- •1.1Оператор «выражение»
- •1.2Операторы ветвления
- •1.2.1Условный оператор if... Else
- •1.2.2Об условиях в операторе if
- •1.2.3Оператор выбора switch
- •1.3Операторы передачи управления
- •1.3.1Оператор goto
- •1.3.2Оператор break
- •2 Тестирование программ
- •Домашнее Задание
- •Задание к лабораторной работе №2
- •1Задание 1
- •2Задание 2
- •Содержание отчета
- •2Операторы цикла
- •2.1Цикл с предусловием (while)
- •2.2Цикл с постусловием (do … while)
- •2.3Цикл с параметром for
- •3Дополнительные операторы передачи управления
- •3.1Оператор break
- •3.2Оператор continue
- •4Вложенные циклы
- •Домашнее Задание
- •Задание к лабораторной работе №3
- •1Задание 1
- •2Задание 2
- •Содержание отчета
- •Контрольные вопросы к лабораторной работе №3
- •4Программа пузырьковой сортировки
- •Домашнее Задание
- •Задание к лабораторной работе №4
- •Содержание отчета
- •Контрольные вопросы к лабораторной работе №4
- •0 Строка
- •1 Строка
- •5 Строка
- •2Ввод и вывод многомерных массивов
- •Домашнее Задание
- •Задание к лабораторной работе №5
- •4Ссылки
- •5Динамическое распределение памяти
- •5.1Использование стандартных функций malloc и free
- •5.2Использование операторов new и delete
- •Домашнее Задание
- •Задание к лабораторной работе № 6
- •Содержание отчета
- •Контрольные вопросы к лабораторной работе №6
- •Лабораторная работа №7 отладка программы краткие теоретические сведения
- •6Отладочные пункты меню
- •7Элементы отладки
- •7.1Контрольные точки
- •7.1.1Контрольные точки в исходном коде
- •7.1.2Адресные контрольные точки
- •7.1.3Контрольные точки данных
- •7.2Команда Run to Cursor
- •7.3Команда Pause
- •8Наблюдение за переменными
- •8.1Быстрый просмотр данных
- •9Инспектор отладки
- •9.1Инспекция локальных переменных
- •10Другие инструменты отладки
- •10.1Диалог Evaluate/Modify
- •10.2Окно cpu
- •10.3Стек вызовов
- •10.4Команда Go to Address
- •10.5Команда Program Reset
- •Задание на лабораторную работу №7
- •Контрольные вопросы к лабораторной работе №7
- •Приложение I
- •Приложение II Блоки схем алгоритмов согласно гост 19.002 – 80 и 19.003 – 80
- •Приложение III Оформление алгоритма программы в виде блок-схемы
- •Приложение IV Базовая программа для выполнения лабораторных работ
- •Приложение V
- •Приложение VI
- •Список используемых источников
2Задание 2
Задание 2.1
Дано натуральное число N. Вычислить
Задание 2.2
Дано натуральное число N. Вычислить
Задание 2.3
Дано натуральное число N. Вычислить
Задание 2.4
Даны натуральные числа N, M. Вычислить
Задание 2.5
Дано натуральное число N>2. Вычислить
Задание 2.6
Дано натуральное число N. Вычислить
Задание 2.7
Дано натуральное число N. Вычислить
Задание 2.8
Дано натуральное число N и вещественное f. Вычислить
Задание 2.9
Дано натуральное число N. Вычислить
Задание 2.10
Дано натуральное число N. Вычислить
Задание 2.11
Дано натуральное число N. Вычислить
Задание 2.12
Дано натуральное число N. Вычислить
Задание 2.13
Дано натуральное число N. Вычислить
Задание 2.14
Дано натуральное число N. Вычислить
Задание 2.15
Дано натуральное число N. Вычислить
Содержание отчета
Отчет выполняется по выбору преподавателя либо в редакторе Word, либо в черновом варианте в лекционной тетради. Отчет должен содержать:
Листинг программ на языке Си, решающих задачи в соответствии с вариантом (номером компьютера) задания;
Блок-схему алгоритма программ (см. примеры и Приложение II и III);
Пояснения по методу решения задач и выбору исходных данных для тестирования;
Результаты тестирования программ.
При оформлении отчета следует пользоваться копированием листинга и результата тестирования в Word. Последний копируется с помощью комбинации клавиш ALT Prt Sc при условии активности консольного окна, что означает копирование графики окна в буфер обмена Windows. Затем окно вставляется в документ Word как любой другой объект.
Контрольные вопросы к лабораторной работе №3
Изобразите в черновике блок-схему цикла с постусловием, с предусловием, с параметром.
Может ли условие операторов цикла быть арифметическим выражением, например, x*x+1 ?
Можно ли переменную цикла с параметром изменять внутри тела цикла?
Как действуют операторы continue и break в теле цикла ?
Что такое вложенный цикл ? Изобразите блок-схему вложенного цикла.
ЛАБОРАТОРНАЯ РАБОТА №4
одномерные массивы
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
3Одномерные массивы
В программах средней и высокой сложности используется, как правило, большое количество переменных. Присвоение имени каждой из них – процесс трудоемкий. Поэтому были предложены массивы – последовательности однотипных величин. Каждый элемент массива есть переменная заданного типа. Тип присваивается при описании массива и делается это тем же способом, что и описание простых переменных. Отличие состоит в указании количества элементов массива в конце описания в квадратных скобках. Например:
float A[10]; //описание массива из 10 вещественных переменных
Обращение к конкретному элементу массива осуществляется через его номер. При этом следует запомнить, что элементы массивов нумеруются с нуля, поэтому последний элемент имеет номер на 1 меньший общего количества элементов в массиве:
A[0], A[1], A[2], …, A[9].
В программе это выглядит, например, так:
x = A[2]; //x присвоено значение 3-го по счету элемента массива A
Важно отметить, что при обращении к элементам массива автоматический контроль выхода индекса за границу массива не производится, что может привести к ошибкам.
Как и переменные, элементы массива могут быть инициализированы. Инициализирующие значения для массивов записываются в фигурных скобках. Значения элементам присваиваются по порядку. Если элементов в массиве больше, чем инициализаторов, элементы, для которых значения не указаны, обнуляются:
int b[5] = {3, 2, 1}; // b[0]=3, b[l]=2, b[2]=l, b[3]=0, b[4]=0
int a[5] = {0}; //обнуление всего массива
Размерность массива вместе с типом его элементов определяет объем памяти, необходимый для размещения массива, которое выполняется на этапе компиляции, поэтому размерность может быть задана только целой положительной константой или константным выражением. Размерность массивов предпочтительнее задавать с помощью именованных констант, как это сделано в примере ниже, поскольку при таком подходе для ее изменения достаточно скорректировать значение константы всего лишь в одном месте программы. Если при описании массива не указана размерность, должен присутствовать инициализатор, в этом случае компилятор выделит память по количеству инициализирующих значений:
float a [10]; //размерность задана целой положительной константой
const int n = 10; // размерность задана с помощью именованной
int marks[n]; // константы
int b[] = {3, 2, 1}; // размерность массива равна трем
При обработке массивов удобно использовать операторы цикла. В следующем примере подсчитывается сумма элементов массива:
const int n = 10;
int i, sum;
int marks[n] = {3, 4, 5, 4, 4};
for (i = 0, sum = 0; i<n; i++)
sum += marks[i];
cout << RUS("Сумма элементов: ") << sum;
Аналогично выполняется ввод и вывод элементов массива, например, с помощью объектов cin и cout:
const int N=5;
int i,massiv[N]; //описание массива
cout<<RUS("Введите 5 целых чисел\n");
for(i=0;i<N;i++) cin>>massiv[i]; //ввод массива
for(i=0;i<N;i++) //вывод массива
cout<<"\n massiv["<<i<<"] = "<<massiv[i]; //вывод массива