русс | укр

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

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

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

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


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

Тема 1.2.Основные алгоритмические конструкции


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


Более подробно изучить существующие алгоритмические конструкции можно на следущем электронном ресурсе: Основы алгоритмизации [Электронный ресурс]. – Режим доступа: http://teacher.dn-ua.com/algoritm/algoritm.html – Загл. с экрана.

Линейный алгоритм –этосовокупность операций, которые выполняются последовательно одна за другой.

 

Например, составить блок-схему для решения следующей задачи:зная длины трех сторон треугольника, вычислить площадь и периметр треугольника.

Решение:

Пусть a, b, c – длины сторон треугольника. Необходимо найти S – площадь треугольника, P – периметр. Для нахождения площади можно воспользоваться формулой Герона: где r– полупериметр.

Входные данные:a, b, c.
Выходные данные:S, P.

 

начало
конец
a, b, c
P=a+b+c
r=P/2
P, S

 

Например, составить блок-схему для решения следующей задачи:найти произведение второй и третьей цифры четырехзначного числа.

Решение:

div – это целая часть от деления

mod – это остаток от деления

biсоответствующая цифра числа

Входные данные:a.
Выходные данные:P.

начало
конец
a
b1=a div 1000
b4= a mod 10
P
b2=(a div 100) mod 10
b3=(a mod 100) div 10
P=b2*b3

Ветвление– это алгоритм, который выполняет одно из действий в зависимости от значения условия. Если представить это в виде блок-схемы, то получится следующий вид:

условие
+
-
действие, которое выполняется, если условие неверно
действие, которое выполняется, если условие верно

Принято различать полное и неполное ветвление. Кроме того, условной оператор бывает с простым условием и составным; обычным и вложенным.

Вид условного оператора Блок-схема
Неполное ветвление

+



Полное ветвление

+
+
-

Со сложным условием
Сложное ветвление, выполняющее несколько действий

+
-

Вложенное ветвление

+
-

Например, составить блок-схему для решения следующей задачи:определить, принадлежит ли точка М(x,y) заданной области.

Решение: следует отметить, что указанная область является частью круга с центром в начале координат, расположенной в 4 четверти. Поэтому она будет определяться следующей системой уравнений:

Запишем данную систему условий с помощью логических операторов.

Входные данные:x, y.

Выходные данные:сообщение: «принадлежит», «не принадлежит».

начало
конец
x, y
И И  
Не принадлежит
-
+
Принадлежит

Например, составить блок-схему для решения следующей задачи:найти max среди трех чисел.

Входные данные:a, b, c.

Выходные данные: max.

 

начало
конец
a, b, c
c>max
max
max =b
max =a
a>b
+
-
-
+
max =c

Цикл – это алгоритм, подразумевающий повторение одних и тех же действий (шагов). Последовательность действий, которые повторяются в цикле, называют телом цикла. Существует несколько типов алгоритмов циклической структуры: цикл с предусловием, цикл с постусловием, которые называют условными циклическими алгоритмами. Эти циклы взаимозаменяемы и обладают некоторыми отличиями:

ü в цикле с предусловием условие проверяется до тела цикла, в цикле с постусловием - после тела цикла;

ü в цикле с постусловием тело цикла выполняется хотя бы один раз, в цикле с предусловием тело цикла может не выполниться ни разу;

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

Кроме того, существует так называемый безусловный циклический алгоритм (цикл со счетчиком), который удобно использовать, если известно, сколько раз необходимо выполнить тело цикла.

Цикл с предусловием Цикл с постусловием Цикл с счетчиком
Тело цикла
 
+
-

Тело цикла
 
+
-

Тело цикла

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

Например, составить блок-схему для решения следующей задачи:У гусей и кроликов вместе 100 лап. Составить программу, позволяющую вычислить все возможные сочетания поголовья кроликов и гусей.

 

Решение: пусть кроликов k, а гусей — g. Тогда, если гусей не было вообще, то максимальное количество кроликов 25 (100 лап делим на 4). Чтобы вычислить количество гусей, если известно количество кроликов следует из общего количества лап вычесть количество лап кроликов и поделить на 2, так как у гусей две лапы:

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

начало
конец
k, g
k от 0 до 25

Например, составить блок-схему для решения следующей задачи: составить программу, которая позволяет для числа N>0 найти количество цифр в числе.

При решении будем исходить из того, что при делении однозначного числа на 10 получается число меньше 1, при делении двухзначного числа на 100, также получается число меньше 1 и так далее. Таким образом, в цикле будем сравнивать целую часть от деления нашего числа на 10, 100, 1000, 10000 и т. д. с единицей. Если после деления будет получаться число большее единицы, то деление на еще в 10 раз больший множитель будем продолжать, иначе процесс прекратим, причем параллельно установим счетчик количества цифр k.

\

начало
конец
n
k
k=k+1
a =a*10
b>1
+
-
k=1 a=10
b= n div a
b= n div a

2. Программирование на С



<== предыдущая лекция | следующая лекция ==>
Псевдокод | Тема 2.1.Типы данных и основные операторы языка C


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


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

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

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


 


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

 
 

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

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