- •Лабораторная работа № 1
- •Далее создадим файл:
- •Задания1
- •Лабораторная работа № 2
- •Консольный ввод-вывод
- •Чтение и запись символов
- •Чтение и запись строк
- •Форматированный консольный ввод-вывод
- •Форматированный вывод
- •Форматированный ввод
- •7. Варианты задания
- •Лабораторная работа № 3
- •5.2 Оператор if
- •Лабораторная работа № 4
- •Содержание отчета
- •Постановка задачи.
- •Общие сведения
- •Лабораторная работа № 5
- •Оператор for
- •Вариации цикла for
- •Бесконечный цикл
- •Циклы for без тела
- •Задание 2. Циклический вычислительный процесс конечные суммы и произведения
- •Лабораторная работа № 6
- •Оператор цикла while
- •Оператор do … while
- •Оператор break
- •Оператор continue
- •Лабораторная работа № 7
- •5.1 Одномерный массив
- •Создание указателя на массив
- •5.3 Индексация с помощью указателей
- •Сортировка
- •Методические указания.
- •Лабораторная работа № 8
- •Двухмерные массивы
- •Лабораторная работа № 9
- •Лабораторная работа № 11
- •Задача 2. Параметры функции
- •Лабораторная работа № 12
- •Варианты заданий
- •Лабораторная работа № 13
- •Некоторые операции над матрицами
- •Методические указания
- •Варианты заданий
- •Лабораторная работа № 14
- •Решение уравнения методом деления отрезка пополам (бисекций)
- •Методические указания
- •Лабораторная работа № 15
- •Вычисление определенного интеграла
- •6.2.1 Метод средних прямоугольников
- •6.2.1 Метод трапеций
- •Методические указания
- •Варианты заданий
- •Лабораторная работа № 10
- •Структуры (struct)
- •Лабораторная работа № 16
- •Директива #include
- •7. Методические указания
- •8. Варианты заданий.
- •Лабораторная работа № 17
- •Указатель на файл
- •Открытие файла
- •Перенаправление потока
- •Чтение из потока и запись в поток
- •Закрытие потока
- •Использование функций feof() и ferror()
- •Варианты заданий
- •Лабораторная работа № 18
- •Функции обработки символов
- •Функции обработки строк
- •Варианты заданий
- •Лабораторная работа № 19
- •Структуры
- •6.1.1 Доступ к элементам структуры
- •6.1.2 Присваивание структур
- •Массивы структур
- •Передача структур в функции
- •Передача членов структур в функции
- •Передача всей структуры в функцию
- •Указатели на структуры
- •Объявление указателя на структуру
- •Использование указателей на структуру
- •Массивы и структуры в структурах
- •Функции fread () и fwrite ()
- •Варианты заданий
- •Лабораторная работа № 20
- •Например, формула
- •Задание на программирование
Оператор do … while
В противоположность циклам for и while, сначала проверяющим условие, цикл do…while проверяет условие в конце. То есть, цикл do…while всегда выполняется, по крайней мере один раз. Стандартный вид цикла do…while следующий:
do {
последовательность операторов;
} while (условие);
Хотя в фигурных скобках нет необходимости при наличии одного оператора, они обычно используются для улучшения читабельности и устранения недоразумений по поводу цикла while.
Данный цикл do…while осуществляет чтение чисел с клавиатуры, пока одно из них станет меньше либо равно 100:
do {
scanf(“%d”, &num);
} while (num > 100);
Возможно, наиболее типичным использованием цикла do…while является процедура выбора пунктов меню. Когда набран корректный ответ, она возвращает значение функции. Неправильный ответ приводит к повторному вводу. Следующий пример являет собой программу проверки орфографии:
void menu(void)
{
char ch;
printf(“1. Проверка орфографии\n”);
printf(“2. Корректировка ошибок орфографии\n”);
printf(“3. Вывод ошибок орфографии на экран\n”);
printf(“ Сделайте ваш выбор: “);
do {
ch = getche(); /* чтение клавиатуры */
switch (ch) {
case ‘1’ :
check_spelling();
break;
case ‘2’ :
correct_errors();
break;
case ‘3’ :
display_errors();
break;
}
} while (ch!=’1’ && ch!=’2’ && ch=’3’);
}
В случае функции меню необходимо выполнить ее, по крайней мере, один раз. После отображения опций программа зацикливается до тех пор, пока не будет осуществлен корректный выбор.
Оператор break
Оператор break имеет два назначения. Первое – это окончание работы оператора switch. Второе – это принудительное окончание цикла, минуя стандартную проверку условия. Данное значение здесь и рассматривается.
Когда оператор break встречается в теле цикла, цикл немедленно заканчивается и выполнение программы переходит на строку, следующую за циклом. Например:
#include <stdio.h>
main(void)
{
int t;
for (t=0; t<100; t++) {
printf(“%d “, t);
if (t = = 10) break;
}
}
Данная программа выводит числа от 0 до 10 включительно и заканчивает работу, поскольку break вызывает немедленный выход из цикла, минуя условие t < 100.
Оператор break вызывает выход из самого внутреннего цикла. Например:
for (t=0; t<100; ++t) {
count = 1;
for( ; ; ) {
printf(“%d “, count);
count ++;
if (count = = 10) break;
}
}
выводит числа от 1 до 10 включительно 100 раз. Каждый раз, когда встречается break, контроль передается внешнему циклу for.
Оператор continue
Работа оператора continue чем-то похожа на работу оператора break. Но вместо форсированного окончания continue переходит с следующей итерации цикла, пропуская оставшийся код цикла. Например, следующая процедура выводит только положительные числа:
do {
scanf(“%d”, &x);
if (x<0) continue;
printf(“%d “, x);
} while (x != 100);
В циклах while и do…while оператор continue вызывает переход к проверке условия и затем продолжает работу цикла. В случае for выполняется часть увеличения, затем проверяется условие и, наконец, выполняется само тело цикла. Предыдущий пример может быть изменен для вывода только 100 чисел следующим образом:
for (t=0; t<100; ++t) {
scanf(“%d”, &x);
if (x<0) continue;
printf(“%d “, x);
}
Варианты задания
Вводить последовательность чисел до тех пор, пока их сумма не достигнет М(М вводится и больше 0).Ввести, какое количество чисел составили искомую сумму (саму сумму тоже).
Вводить последовательность до тех пор, пока не встретятся 3 подряд идущих положительных числа. Тогда прервать ввод и сообщить, сколько во введенной последовательности было:
а) всего чисел,
б) положительных чисел,
в) отрицательных чисел.
Вычислить приближенное значение бесконечной суммы с точностью до =0,0001.
Вычислить приближенное значение бесконечной суммы с точностью до =0,05.
Вычислить приближенное значение бесконечной суммы с точностью до =0,00005.
Вычислить приближенное значение бесконечной суммы с точностью до =0,0001.
Вычислить приближенное значение бесконечной суммы с точностью до =0,001.
Вычислить приближенное значение бесконечной суммы с точностью до =0,005.
Вычислить приближенное значение бесконечной суммы с точностью до =0,0005.
Вычислить приближенное значение бесконечной суммы с точностью до =0,01.
Вычислить приближенное значение бесконечной суммы с точностью до =0,05.