![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Разработка программ с циклическими вычислительными процессамиСодержание книги
Поиск на нашем сайте
(2 часа) Цель работы: Изучить написание программ на языке С, используя итерационные (циклические) методы, освоить основные операторы, поддерживающие работу с циклами (for, while, do... while ). Научиться писать программы, используя данные операторы. Теоретические сведения Каждый оператор С заканчивается оператором (;), который является пустым оператором. Циклы или итерационные процедуры позволяют выполнять отдельные операторы или блоки операторов (составные операторы {…}). Число повторов определяется выражением в скобках, значение которого сравнивается с Æ (Æ- прекращение цикла). Циклы бывают с проверкой значения выражения перед началом выполнения тела цикла (с предусловием), по окончанию выполнения тела (с постусловием) или внутри тела цикла. В С определено три вида операторов цикла: оператор цикла с предусловием - while, оператор цикла с постусловием do...while и оператор цикла for. Рассмотрим эти операторы детально: Цикл while имеет следующий формат: while (<выражение>) <оператор> Условие выполнения итерации в цикле while предварительно проверяется и в случае истинности выражения (не равно Æ) выполняются те операторы, которые описаны в теле цикла. В противном случае цикл заканчивается, и программа продолжает свое выполнение с того места, где закончилось тело цикла. Если тело цикла содержит несколько операторов, оно ограничивается операторными скобками: "{" и "}" и являетсясоставным оператором. Прервать выполнение цикла можно, используя операторы break, goto, return. Ниже продемонстрировано два примера работы с циклом while в виде фрагментов программ. Первый пример демонстрирует применение операторов while и break, перекрывающего цикл. Второй пример показывает использование цикла while для проверки ответа, который вводится с клавиатуры.
Оператор цикла do while() является циклом с постусловием. В этом случае тело цикла всегда выполнится хотя бы один раз.
Формат оператора цикла следующий: do <оператор> while(<выражение>); Телом цикла может являться один или несколько операторов (составной оператор). Ниже приведены аналогичные примеры реализации цикла с постусловием.
Оператор цикла for является наиболее удобным и мощным средством организации циклических вычислений в С. Формат цикла for: for([<выражение1>];[<выражение2>];[<выражение3>]) <оператор> где:< выражение1> - производит инициализацию тех переменных, которые будут непосредственно изменяться в цикле, в частности, задаётся начальное значение переменной-счётчика <выражение2> -определяет условие выхода из цикла. При равенстве его значения Æ цикл прерывается; <выражение3> - это выражение задает изменение на каждом шаге переменных, проинициализированных в <выражении1 >. Можно задавать также изменение других переменных, не связанных с <выражением1>. Каждое из описанных выражений может отсутствовать. Оператор цикла for, заданный как for(;;){<тело_цикла>}, является бесконечным циклом. Алгоритм работы оператора цикла for (): 1 Вычисляется первое выражение (если оно присутствует). 2 Вычисляется второе выражение (если оно присутствует), проверяется условие окончания цикла :(<выражение 2>= =Æ “ Ложно ”) т.е. Если оно не равно Æ (“Истинно”) – происходит переход к пункту 3, иначе выход из цикла. 3 Исполняется тело цикла. 4 Вычисляется третье выражение, если оно присутствует. 5 Переход к пункту 2. Появление в любом месте тела цикла оператора continue - приводит к прекращению выполнения операторов в теле цикла 4 немедленному переходу к шагу 2. Выход из циклавозможен аналогично while с помощью операторов break, goto, return. Пример 1 (вариант 1) (вариант 2)
Для демонстрации гибкости оператора for перепишем пример в следующем виде (вариант 3): for(int i=100;i>=0; printf("\n%d",i), i - =2);
Пример
/* ЗАНЯТИЕ N 4 Разработал........... Cтрока символов записывается в обратном порядке с применением различных операторов организации циклов */ #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <math.h> # define N 23 main() {int t,b; char string[]="\"Инициализация строки\""; char m; clrscr(); // Цикл for -с предусловием printf("Вывод исходной строки\n"); for (t=0;t<N;t++) printf("%c ",string[t]); for (t=0,b=N-2;t<(N-1)/2;t++,b--) {m=string[t]; string[t]=string[b]; string[b]=m; } printf("\nВывод строки в обратном порядке\n"); for (t=0;t<N;t++) printf("%c ",string[t]); printf("\nВвод новой строки -y, нет-n:\t"); m=getche(); if(m!='n') new_str: scanf("%s",string); else printf("\n"); // Цикл while -с предусловием t=0; while(string[t]!='\0') {printf("%c",string[t]); t++; } printf("\nКоличество символов =%2d\n",t); // Цикл d0...while -с постусловием printf("Вывод строки в обратном порядке\n"); b=t-1;t=0; do {m=string[t]; string[t]=string[b]; string[b]=m; t++;b--; }while(t<b); printf("%s ",string); printf("\nВвод новой строки -y, нет-n:\t"); m=getche(); if(m=='y') goto new_str; //new_str -метка else getch(); } /* Вывод исходной строки " И н и ц и а л и з а ц и я с т р о к и " Вывод строки в обратном порядке " и к о р т с я и ц а з и л а и ц и н И " Ввод новой строки -y, нет-n: n "икортс яицазилаицинИ" Количество символов =22 Вывод строки в обратном порядке "Инициализация строки" Ввод новой строки -y, нет-n: y qwert12345 Количество символов =10 Вывод строки в обратном порядке 54331trewq Ввод новой строки -y, нет-n: n */
Ход работы
1 По индивидуальному заданию преподавателя составить программу с различными вариантами применения операторов цикла: while, do… while, for. Предусмотреть дополнительные возможности выхода из циклов (операторы break, goto). 2 Набрать программу на компьютере, выявить и устранить ошибки. 3 Ознакомиться с работой операторов цикла в языке С. 4 Получить результаты работы программы. 5 Оформить отчет и сделать выводы о проделанной работе, изучив контрольные вопросы по теме. Требования к содержанию отчёта приведены в лабораторной работе №1.
Индивидуальное задание к лабораторной работе №4 Найти сумму ряда y = Варианты заданий приведены в таблице 4.1. Таблица 4.1 - индивидуальное задание
Контрольные вопросы для подготовки и самостоятельной работы 1 С помощью каких операторов можно досрочно завершать выполнение операторов цикла? 2 Какие выражения можно использовать в операторе цикла? 3 Как интерпретируются значения <выражений> операторов цикла? Какого типа могут быть эти <выражения>? 4 Можно ли записать следующие операторы: for (;;); while (Æ); do while(i--); for (; i && j; i++, j- -); for (int i, k;; i+=2) j++; k-=5;?: Объясните, почему можно или нельзя? 5 Объясните результат работы приведенных операторов. 6 В чём разница в работе операторов с предусловием и с постусловием? 7 Каково назначение выражений в операторе for? 8 Зачем используются составные операторы (операторные скобки)? 9 С помощью какого оператора можно прекратить выполнение текущей итерации в цикле? 10 Назовите порядок вычисления и интерпретации выражений в операторе for. 11 Объясните работу операторов в примерах. Лабораторная работа №5 Разветвляющийся вычислительный процесс с различными логическими условиями: оператор if... else, условная операция (?:), оператор switch, оператор break, оператор goto (2 часа) Цель работы: Изучить реализацию в языке ветвящихся вычислительных процессов. Научиться писать программы, используя операторы: ветвления if...else, переключения switch в паре с оператором break, оператор перехода goto, тернарную условную операцию (?:). Теоретические сведения Разветвляющийся вычислительный процесс применяется в тех случаях, когда необходимо произвести выбор одного из вариантов дальнейших действий или вычислений в зависимости от текущих значений переменных и логических условий. Например, произвести вычисление по одной или по другой формуле. Оператор if…else (если…иначе) Формат оператора if…else приведен ниже: if(<выражение>) <оператор 1> [else <оператор2>] Действия оператора зависят от значения выражения. Реализация различных возможностей выполняется следующими способами. Если <выражение> в скобках не равно Æ(“Истинно”), то будет выполнятся <оператор1>. В противном случае, если указанное <выражение> равно Æ (“Ложно”), то будет выполняться <оператор2> в блоке else, если он присутствует. В теле оператора if может находиться один или более операторов. Если должны выполняться два или более операторов, их необходимо заключить в операторные скобки: "{" и " }". <Выражение > представляет собой запись логического условия или условий. Например: 1) if(i<=j)...; 2) if(size= =a)...; 3) if(t>10 && v<3)..; 4) if(a){…}else{…}; 5) if(!a){…}else{…}.
В первом случае < выражение> истинно, если значение переменной i будет меньше или равно значению переменной j; во втором случае условие будет истинно, если значения переменных size и a будут равны; в третьем выражении истина будет соблюдаться, когда переменная t будет больше десяти “И” (&&) переменная v будет меньше трех. В четвертом случае первый блок будет выполняться при а не равном Æ, в противном случае выполняется блок после else. В пятом выполняются действия, обратные, указанные в четвертом варианте. Вместо переменных можно использовать выражения, которые будут непосредственно вычисляться, например: if ((i+2)/3 < 4*j)...выделение. Основные операции, которые ставятся между сравниваемыми величинами, следующие:
Основные логические операции, которые ставятся между сравниваемыми выражениями (если их два как в примере 3 или более), следующие: ! - операция "НЕ". Пример: if (!(num % 2))... // истина -если num нечетно. && - операция " И ". Пример 3 (см. выше). || - операция " ИЛИ ".Пример: if (i+n*2<l || i%2=0)... Детально логические операции будут рассмотрены в следующей лабораторной работе. Ниже приведен фрагмент программы, который выполняет следующие действия: запрашивает на ввод три числа и выдает в результате сравнения наименьшее из них. Оператор if…else допускает возможность вложенности при ветвлении, что обеспечивает гибкость реализации логики и компактность записи операторов. Пример ... printf ("Ввести три числа через пробел: "); scanf(" %d%d%d ", &a, &b, &c); if (a<=b && a<=c) printf (" \ n Наименьшее: %d", a); else if (b<=a && b<=c) printf (" \ n Наименьшее: %d", b); else printf (" \ n Наименьшее: %d", c); ...
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-26; просмотров: 394; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.100.233 (0.013 с.) |