- •Методические указания
- •«Алгоритмизация и программирование»
- •Часть 1. Понятие алгоритма и принципы алгоритмизации
- •1 Основные принципы разработки алгоритмов и программ
- •Лабораторная работа 1
- •3 Циклический вычислительный процесс
- •Задания для самостоятельной работы
- •Лабораторная работа 2 селективная обработка массивов
- •Общие сведения
- •1 Селективная (выборочная) обработка информации
- •2 Нахождение экстремального значения
- •3 Формирование одномерного рабочего массива
- •3.7 Сортировка элементов массива
- •Задания для самостоятельной работы
- •Лабораторная работа 3 вложенные циклы. Обработка двумерных массивов
- •Общие указания
- •1 Вложенные циклы
- •3.9 Обработка заданной строки (столбца) матрицы
- •3.10 Обработка заданной диагонали матрицы
- •3.11 Селективная обработка строки (столбца) матрицы, удовлетворяющей заданному условию
- •Часть 2. Составление и отладка программы. Вычисление и обработка результатов
- •Ход работы
- •Вопросы для контроля и самостоятельной работы
- •Лабораторная работа 5
- •Символы типа
- •Задание к лабораторной работе
- •Лабораторная работа №6 Разветвляющийся вычислительный процесс с различными логическими условиями: оператор if... Else, условная операция (?:).
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа 7 Программирование разветвляющегося циклического вычислительного процесса.
- •Теоретические сведения
- •Алгоритм работы оператора цикла for ():
- •Задание к лабораторной работе
- •Лабораторная работа №8
- •Ход работы
- •Задание к лабораторной работе
- •Операции с, их приоритеты и использование. Преобразование типов (4 часа)
- •Приоритет операций и порядок выполнения (ассоциативность)
- •(Новый_тип) операнд
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №10 Массивы. Селективная обработка массивов
- •Теоретические сведения
- •Требования к содержанию отчёта приведены в лабораторной работе №1
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №11
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №12 Сортировка одномерных массивов
- •Многомерные массивы. (2часа)
- •Теоретические сведения
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Изучение графических средств с
- •Графические функции
- •Графические примитивы
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
Контрольные вопросы для подготовки и самостоятельной работы
Какой тип должно иметь выражение в операторах if и switch?
Можно ли использовать оператор goto для передачи управления на else, метку case…; default:?
С помощью каких операторов можно досрочно завершить выполнение операторов if…else, switch?
Можно ли использовать в качестве выражения в операторе switch указатель?
Можно ли использовать в качестве константного выражения в операторе switch константу?
Обязательно ли использовать оператор break в операторе switch? Каково его действие? Что происходит при отсутствии break?
Какому из вложенных операторов if относится else при наличии и отсутствии операторных скобок и .
Какие типы операндов допустимы в условной операции (? :)?
Объясните работу операторов в приведенных примерах.
Как объявить и использовать метки в программе?
Лабораторная работа 7 Программирование разветвляющегося циклического вычислительного процесса.
Цель работы: Изучить написание программ на языке С, используя итерационные (циклические) методы, освоить основные операторы, поддерживающие работу с циклами (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(;;){<тело_цикла>}, является бесконечным циклом.