русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Программа


Дата добавления: 2013-12-23; просмотров: 646; Нарушение авторских прав


I++;

S += i;

I++;

S+=i;

Return 0;

I++;

S+=i;

Int main()

КОНЕЦ;

НАЧАЛО

I = 1;

S = 0;

S = 1 + 2 + 3 + … + 98 + 99 + 100

Оператор;

Оператор;

Оператор;

While (условие)

Оператор;

While (условие)

Цепочка;

ПОКА (условие) ВЫПОЛНЯТЬ

Циклы с предусловием

Goto label;

I--;

I=0;

label: i++; //эти три оператора образуют бесконечный цикл

Как правило, появление в программе бесконечных циклов вызвано логическими ошибками, допущенными программистом при разработке алгоритма и кодировании (написании операторов программы) с использованием оператора безусловного перехода goto. Поэтому в современных алгоритмических языках этот оператор практически не используется, а заменяется циклами. Бесконечные циклы не выявляются транслятором при синтаксическом контроле и проявляются только после запуска программы на выполнение следующим образом:

1. длительное время (десятки секунд) программа не выводит на устройство вывода никакой информации – программа зависает,

2. на устройство вывода постоянно выводится одна и та же информация.

Таким образом, бесконечные циклы – это логические ошибки программиста. С ними сталкивается любой программист, и поэтому необходимо овладеть методами их поиска.

Как правило, некоторую цепочку операторов необходимо повторять не бесконечно, а до тех пор, пока выполняется некоторое условие:



Такой цикл называется циклом с предусловием (циклом ПОКА) и изображается следующей схемой:

 

 

Условие – это логическое выражение, зависящее от переменных, входящих в цепочку. Цикл повторяется до тех пор, пока условие истинно. Значит, данное условие является условиемпродолжения цикла. Выполнение цикла заканчивается, если операторы цепочки изменяют значения переменных, входящих в условие, и оно становится ложным.

Цикл не выполняется ни разу, если условие было ложным с самого начала.

Цикл ПОКА превращается в бесконечный, если условие подобрано так, что оно всегда истинно.

В Си цикл с предусловием реализуется оператором цикла while:

или

{

. . . .

}

Операторы, находящиеся между фигурными скобками, называются телом цикла.

Внимание!Условие всегда заключается в скобки и после него точка с запятой не ставится!

Если поставить точку с запятой после условия, то этот цикл, как правило, превращается в бесконечный, потому что в этом случае условие изменяться не будет.

Фигурные скобки используются в том случае, если после условия должна следовать цепочка операторов.

Действия оператора while:

1. проверяется выполнение условия,

2. если оно истинно, то выполняется оператор (цепочка), стоящий после него,

3. после его выполнения снова проверяется условие, и если оно снова истинно, то цикл повторяется,

4. если условие становится ложным, то цикл заканчивает работу.

Примеры:

1. вычислить сумму ста первых натуральных чисел:

Пусть s – искомая сумма,

i – очередное число (изменяется от 1 до 100).

Тогда алгоритм решения задачи можно описать следующим образом:

a. обнуляем сумму s = 0,

b. берем первое число: i = 1,

c. добавляем в сумму это число: s = s + i,

d. увеличиваем очередное число на единицу: i = i+ 1,

e. если оно не больше 100, то снова добавляем его в сумму и повторяем цикл.

Представим этот алгоритм так:

ПОКА (i ≤ 100)

s = s + i;

i = i + 1;

Программа:


#include <stdio.h>

#include <conio.h>

#include <math.h>

{

int i=1, s=0;

while (i<=100)

{

}



printf(“/ns=%d i=%d”,s, i);

}

Результат решения задачи:

s=5050 i=101

Таким образом, выходим из этого цикла со значением i не 100, а 101.

Вместо цепочки:

можно использовать один оператор:

s+=i++;

Этот цикл можно превратить в бесконечный, если после условия поставить точку с запятой:
int i=1, s = 0;

while (i<=100);

{

}

printf(“/ns=%d i=%d”,s, i);

Значение переменной i в этом случае меняться не будет – она останется равной единице.

2. вычислить сумму s всех цифр заданного натурального числа n

Пусть s – искомая сумма,

i – очередная цифра числа.

Тогда алгоритм решения задачи можно описать следующим образом:

1. обнуляем сумму s=0,

2. берем последнюю цифру числа, для чего определяем остаток от деления исходного числа на 10: i = n % 10,

3. добавляем в сумму найденную цифру: s = s + i,

4. уменьшаем число в 10 раз: n = n / 10,

5. повторяем цикл до тех пор, пока n > 0 – это и будет условием продолжения цикла.

#include <stdio.h>

#include <conio.h>

#include <math.h>



<== предыдущая лекция | следующая лекция ==>
 | Циклы с постусловием


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.