Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ





Скачать 382.32 Kb.
НазваниеМурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ
страница3/4
Дата публикации27.09.2014
Размер382.32 Kb.
ТипЛабораторная работа
100-bal.ru > Право > Лабораторная работа
1   2   3   4

Выполнение лабораторной работы
1. Составьте алгоритм решаемой задачи.

  1. Напишите программу на С++ в соответствии с алгоритмом.

  2. Распечатайте листинг программы.

  3. Распечатайте результаты работы программы.

  4. Подготовьте отчет по лабораторной работе.


Контрольные вопросы
1. Что собой представляет среда программирования С++.

  1. Какую структуру имеет программный код.

  2. Алгоритмы с линейной структурой.

  3. Типы переменных и особенности их использования.

  4. Построение операторов ввода.

  5. Построение операторов вывода.

  6. Принцип записи директивы присваивания.

  7. Что такое собой представляет условный оператор.

  8. По какому принципу строится условное выражение.

  9. Как осуществляется запись оператора выбора.



Лабораторная работа №2
Изучение операторов цикла
Цель работы


  1. Изучение оператора цикла for.

  2. Изучение оператора цикла while.

  3. Изучение оператора цикла do – while.

  4. Изучение правил использования операторов break и continue.

ОБЩИЕ СВЕДЕНИЯ
Циклы используют в случае, если некоторые действия надо выполнить многократно, каждый раз с новыми данными. Операторы тела цикла определяют эти действия. Количество их повторений определяется в зависимости от типа оператора заголовка цикла. Начало выполнения цикла может производиться только через операторы заголовка цикла. Завершение цикла любого типа может быть:

- в соответствии с условиями, определенными заголовком цикла;

- по оператору goto - перехода на оператор вне тела цикла;

- по оператору break - выхода за цикл;

- по оператору return - выхода из функции.

В языке Си++ есть операторы цикла for, while и do-while. Если количество повторений заранее известно, то целесообразно использовать оператор for, а если количество повторений определяется условиями, то операторы while или do-while. В языке Си++ допускаются вложенные циклы (циклы в цикле) любого типа.
FOR – оператор цикла с параметром

Оператор for - это оператор цикла с параметром (с шагом) и с предусловием, так как анализ конца цикла производится до начала выполнения тела цикла. Оператор for - наиболее общая и гибкая форма цикла в языке Си++. Он используется, если заранее известно начальное значение параметра или параметров цикла, условие его завершения и коррекция - выражение (выражения) для изменения параметра (параметров) цикла.

Форма оператора цикла for

for ( сп. 1 ; сп. 2 ; сп. 3 ) - заголовок цикла;

S ; - тело цикла,

где сп. 1 - список операторов, инициирующих начальные значения; выполняется 1 раз, до начала выполнения тела цикла; как правило, используется для установки начальных значении параметров цикла;

сп. 2 — список операторов и выражений для проверки конца цикла; конец цикла обычно определяется на основе анализа значения параметра цикла; выполняется перед каждым выполнением тела цикла; если значение последнего выражения сп.2 истинно (!= 0), тело цикла выполняется, а если ложно (= 0) - завершается;

сп. 3 — список операторов и(или) выражений для корректировки параметров цикла; выполняется, после каждого выполнения тела цикла;

S - простой или составной оператор тела цикла; составной - для выполнения более одного оператора тела цикла.

Все три списка в заголовке цикла необязательны.

Основные правила выполнения цикла for:

1) выполняется сп. 1 один раз, до начала выполнения тела цикла;

2) выполняются операторы и выражения сп. 2;

производится анализ полученного значения последнего выражения сп. 2:

а) если оно истинно (= 0), то тело цикла выполняется;

б) если оно ложно (= 0), то выполнение цикла завершается; если оно ложно до первого выполнения тела цикла, то тело цикла не выполняется ни разу;

3) после выполнения тела цикла выполняются операторы и выражения сп. 3 и осуществляется переход к п. 2 данного перечня правил;

4) появление в любом месте тела цикла оператора continue дает переход к выполнению сп. 3, т. е. к п. 3 данных правил;

5) появление в любом месте тела цикла оператора break вызывает переход к оператору, следующему после оператора цикла;

после выхода из цикла по оператору break или goto параметр цикла сохраняет значение, при котором произошло завершение выполнения цикла;

6) после нормального завершения цикла (не по goto за цикл) значение параметра цикла равно значению, которое привело к завершению выполнения цикла. Например, если пределы изменения значений параметра цикла определены в виде

for ( i = 1; i 5; i++ ),

то для значений i от 1 до 4 выполняются операторы тела цикла, а при значении i = 5 выполнение цикла завершается;

7) если нет сп. 1 и(или) сп. 2, то их ; должны остаться в операторе заголовка цикла; например,

for ( ; ; ) for ( i = 1; ; i++ )

- это бесконечные циклы, из которых надо выйти другими способами, например, оператором, break, return или goto на метку вне цикла.

Пример оператора заголовка цикла:

for ( i = 0; i < 20; 1++ )

где i - параметр заголовка цикла, изменяется от 0 до 19 с шагом 1; в соответствии с этим заголовком тело цикла выполнится 20 раз, если выполнение цикла не будет завершено другим способом.

С помощью сокращенной формы оператора for можно реализовать в программе временную задержку процесса выполнения программы. Например, для ограничения времени ожидания ответа пользователя.

Пример цикла с пустым оператором S:

for (n = 1; n = 10000; n++);

Этот цикл считает значения n от 1 до 10000, ничего больше не делая.

Символ ; после заголовка цикла - это пустой оператор.

Любой список заголовка цикла может содержать операцию ‘запятая’, т. е. несколько операторов и выражений, разделенных запятыми, которые выполняются слева направо. Таким образом, оператор цикла for может иметь как бы несколько параметров цикла, изменяющихся синхронно (одновременно). Чаще всего списки сп. 1 и сп. 3 - операторы присваивания или обращения к функциям, а сп. 2 содержит выражение отношения или логическое выражение. Если нет сп. 1 и сп. 3, то параметр цикла как бы не рассматривается. Если нет сп. 2 (от него остается только ;), то считается, что условие проверки конца цикла истинно, при этом цикл не может быть завершен по условию конца цикла в заголовке цикла (бесконечный цикл), а может быть завершен только по оператору goto (переход на оператор вне тела цикла), с помощью операторов break или return.

Например, определить сумму четных чисел от 1000000 до 0.

Переменная i - параметр цикла. После каждого выполнения тела цикла ее значение изменяется на шаг параметра цикла, равный -2. По завершении выполнения цикла значение параметра цикла i = 0.

Текст цикла

for ( s = 0.0, i = 1000000; i> = 2; i -= 2 ) s += i;

Пример. Дано n. Определить и вывести значения х = 2 - степени двойки от i = 1 до n(n > 1) по 5 значений в строке.

#include . //- подключение библиотек

#include

void main()

{ int i, n; long x;

- clrscrf); - очистить экран

printf(“Введите число - максимальную степень двойки\n”);

scanf (%d, &n);

printf (“\n n = %d\n”, n); //- ввод и вывод n

for ( x = i = 1; i <= n; i++ )

{ x = 2; printf ( “ %51d” , x); //- определение и вывод х

if ( i % 5 == 0 )

printf (“\n”); } // - переход на следующую строку

printf (“n\Для завершения программы нажмите любую клавишу\n”)

getch(); //- нажать любую клавишу

}

В приведенных выше примерах оператор for языка Си++ аналогичен подобным операторам других языков. Но, кроме того, for языка Си++ имеет ряд других возможностей. Вот некоторые из них.

1) Для изменения значения параметра цикла (шага) можно использовать любые значения и операции; примеры заголовков цикла, где коррекция параметра цикла производится по формуле:

for ( п = 1000; п > 0; п— ) // n = n - 1

for ( n = 1000; п > 0; п -= 13 ) // n = n - 13

for ( х = 0; х <= 200; х += 1.5 ) // х = х + 1.5

for ( х = 1000; х > 0; х -= 3.7 ) // х = х - 3.7

for ( х = 1; х <= 2000; х* = 1.2 ) // х = х * 1.2

2) Можно использовать и изменять значения параметра цикла, являющиеся символами; например,

for ( с = 'а'; с = 'z'; с++ ) putch (с) ;

При выполнении этого цикла будут выведены все буквы латинского алфавита от а до z, для представления которых используется отрезок натурального ряда чисел.

3) В сп. 1 можно использовать оператор-запятую, т. е. несколько операторов присваивания, разделенных запятыми.

Например, вычислить сумму значений i для i = 1 -;- 100.

for { s = 0.0, i = 1; i< = 100; i++ ) s += i ;

В примере устанавливаются начальные значения переменных s и i; параметром цикла является i.

4) В качестве сп. 3 также можно использовать один или несколько операторов и выражений для изменения переменных и(или) параметров цикла. Например

for ( х = 1; у <= уmах; у = 5 * х + 10, х++ )(...)

В заголовке цикла примера устанавливается начальное значение х, а на конец цикла проверяется значение у, а не х; в сп. 3 изменяются значения и у и х;

5) Параметры, входящие в сп. 2 и сп. 3, можно изменять при выполнении операторов тела цикла. Например,

for ( n = 1; < 100; n += dn ) - заголовок цикла.

После нескольких итераций можно с помощью if внутри тела цикла проанализировать необходимость изменения и изменить значение dn.

Например, оператором if ( а > b && n > 10 ) dn = dn * 2;

Так, в случае необходимости можно изменить значения переменных cп.2

(значения, по которым производится анализ конца цикла) в теле цикла

for ( а = 2, п = 3; а <= b; ,) ( ... а = а * n; b = 3 * а;...}

В примере n остается равным 3, а значения а и b изменяются в теле цикла и анализируются для определения конца цикла.

6) Сп. 1 необязательно должен инициировать параметр цикла. Там может стоять, например, оператор вывода, который выполняется 1 раз, до начала выполнения тела цикла.

Пример программы, использующей в качестве сп. 1 оператор вывода. Из программы на экран выводится предложение “Угадайте число” до начала выполнения тела цикла, и программа переходит в режим ожидания ввода числа с клавиатуры. После ввода числа оно проверяется на совпадение с заданным выражением сп. 2 заголовка цикла for. Процесс повторяется до тех пор, пока не будет введено заданное значение = 6). После этого выведется второе сообщение “Это то, что надо”

#include

#include

void main()

{ int n = 0; clrscr(); //- очистить экран

for ( printf (“\n Угадайте число\n”); n != 6; )

scanf (%d, &n ); //- очередной ввод числа

printf ( “ %d - Это то, что надо!\n”, n )

; printf (\nДля завершения программы нажмите любую клавишу\n”);

getch(); \\ - нажать любую клавишу

}

7) С помощью оператора continue можно пропустить выполнение одного и более операторов тела цикла и перейти к выполнению сп. 3. Например,

for ( i = 1; i < n; i++ )

{ if (a[i] == 0) continue; b = b a[i]; ... }

8) С помощью оператора break можно закончить выполнение цикла и перейти к выполнению оператора, следующего после оператора цикла.

9) Гибкость использования цикла for увеличивает операция ‘запятая’. Она позволяет включать в его заголовок несколько инициализирующих или корректирующих выражений. Именно в операторах заголовка цикла for операция ‘запятая’ используется особенно часто. Однако включение в заголовок цикла for посторонних вычислений считается плохим стилем; лучше заголовок цикла for использовать только для операций по управлению циклом. Пример заголовка цикла, с помощью которого синхронно изменяются два разных параметра цикла, i и х

for (i = 1, х = xn; i <= 20; i++, x += dx) ( ... )

В этом операторе заголовка цикла for синхронно изменяются значения i и х. Значение i определяет условие конца цикла.

10) Операцию ‘запятая’ можно использовать в операторе тела цикла.

Например,

for (i = 1; i <= 5; i++ )

j = i, a += i, printf(“ j= %d a = %f\n”, j, a );

11) В операторах заголовка цикла можно использовать параметр перечисляемого типа.

В примере приведена программа для вывода двоичного представления целых чисел. В программе используются операторы for и операции сдвига.

Переменные программы :

- i - номер анализируемого разряда числа k;

- j - значение i-разряда числа, равное 1;

- k - десятичное число для вывода его в двоичном представлении.

В программе значение j изменяется от 214 до 2. После каждого выполнения тела цикла значение j уменьшается вдвое с помощью операции сдвига числа вправо на 1 разряд. Анализ значения j-го разряда числа k производится с помощью выражения k & j. Результатом поразрядного побитового логического умножения k на j могут быть только значения:

- j - если i-разряд числа k равен 1 или

- 0 - если i-разряд числа k равен 0.

Анализ результата позволяет вывести значение i-разряда двоичного представления числа k:

- 1 - если результат k & j истинно, т. е. i-й разряд числа k равен 1 и

- 0 - если результат k & j ложно, т. е. i-й разряд числа k равен 0.

#include // - подключение библиотек linclude stdio.h

FILE *f; // - для файла результатов

void main()

{ int i, j, k;

f = fopen(“16.rez”, “w”); // - для вывода в файл

f = fopen (“con”, “w”); // - для вывода на экран

clrscr(); // - очистить экран

fprintf(f, “ Работа со сдвигами\n”);

fprintf (f, “ Двоичное представление целых чисел:\n”);

for (k = 1; k <= 10; k++) // - перебор значений k

{ j = 16384; // j = 214

fprintf (f, “k = %2i =” , k );

'for (i = 15; i >= 1; i—) // - перебор номеров разрядов k

{ if (k & j) // - анализ i-разряда числа k

fprintf (f, “1”); // - обнаружена 1

else fprintf(f, “0”); // - обнаружен О

j = j » 1; //- сдвиг j на 1 разряд вправо

} // - конец блока оператора for i

fprintf(f, “\n”); // - переход на следующую строку

} // - конец блока оператора for k

printf (“\nДля завершения программы нажмите любую клавишу\n”);

getch(); // - нажать любую клавишу

}

Результаты выполнения программы Работа со сдвигами

Двоичное представление целых чисел

k = 1 = 000000000000001

k = 2 = 000000000000010

k = 3 = 000000000000011

k = 4 = 000000000000100

k = 5 = 000000000000101

k = 6 = 000000000000110

k = 7 = 000000000000111

k =. 8 = 000000000001000

k = 9 = 000000000001001

k = 10 = 000000000001010
1   2   3   4

Похожие:

Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ icon«Разработка алгоритмов и программирование на языке Pascal»
Лабораторный практикум содержит методические указания к выполнению лабораторных работ по алгоритмизации и программированию на языке...
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconКонспект урока на тему
Развивать навыки программирования на алгоритмическом языке высокого уровня на примере языка Паскаль
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconКонспект урока по русскому языку
Развивать навыки программирования на алгоритмическом языке высокого уровня на примере языка Паскаль
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconУрок речеведения в 6 классе №144-145 «Соединение в тексте разных типов речи»
Развивать навыки программирования на алгоритмическом языке высокого уровня на примере языка Паскаль
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconИспользование электронных образовательных ресурсов в процессе обучения...
Развивать навыки программирования на алгоритмическом языке высокого уровня на примере языка Паскаль
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconПрограмма по формированию навыков безопасного поведения на дорогах...
Н 73 Физика. Пособие к выполнению лабораторных работ м-3, м-4, м-10. Часть 13. М.: Мгту га, 2005. 28 с
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconСборник методических указаний для студентов по выполнению лабораторных работ дисциплина «химия»
Методические указания для выполнения лабораторных работ являются частью основной профессиональной образовательной программы Государственного...
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconКонспект урока по информатике Тема урока: «Язык програмирования Паскаль....
Развивать навыки программирования на алгоритмическом языке высокого уровня на примере языка Паскаль
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconВетвление на языке Паскаль
Вести понятие условного оператора на языке программирования Паскаль, обучить приемам построения простых вычислительных алгоритмов...
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconУчебно-методическое пособие к выполнению выпускных квалификационных работ
Смирнова И. В., Кашенцева Н. П. Финансы и кредит: Учебно-методическое пособие к выполнению выпускных квалификационных работ. 2-е...
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconПрактикум по физической химии на видео. Выполнение лабораторных работ...
На её фоне текст: «Пособие разработано в рамках реализации Программы развития ниу-нгу». Затем название работы
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconМетодические указания к выполнению лабораторных работ Ставрополь
Учебное пособие предназначено для студентов высших учебных заведений, оно может быть использовано также преподавателями вузов, учителями...
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconРабочая программа по дисциплине с 3 «Технологии и методы программирования»
Цель преподавания дисциплины: Целью изучения дисциплины «Технологии и методы программирования» является изучение современных технологий...
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconМетодические указания по выполнению лабораторных работ
Федеральное государственное образовательное учреждение высшего профессионального образования
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconМетодическое пособие по выполнению курсовой работы по курсу «К омпьютерная графика»
Методические указания предназначены для обучающихся по специальности 031601 «Реклама» факультета специального профессионального образования....
Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ iconТезисы доклада Черчаго А. Я., Ярошевский А. Н., Кравченко А. Б. Финаев В. И. 1 «скэнар-терапия»
Календарный план отражает содержание лекций, лабораторных работ и индивидуальных работ. В соответствии с умк осуществляется подготовка...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск