Линейная структура построения программы это

Programm.ws — это сайт, на котором вы можете почитать литературу по языкам программирования , а так-же посмотреть примеры работающих программ на С++, ассемблере, паскале и много другого..

Программирование — в обычном понимании, это процесс создания компьютерных программ.
В узком смысле (так называемое кодирование) под программированием понимается написание инструкций — программ — на конкретном языке программирования (часто по уже имеющемуся алгоритму — плану, методу решения поставленной задачи). Соответственно, люди, которые этим занимаются, называются программистами (на профессиональном жаргоне — кодерами), а те, кто разрабатывает алгоритмы — алгоритмистами, специалистами предметной области, математиками.
В более широком смысле под программированием понимают весь спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программ — программного обеспечения ЭВМ. Более точен современный термин — «программная инженерия» (также иначе «инженерия ПО»). Сюда входят анализ и постановка задачи, проектирование программы, построение алгоритмов, разработка структур данных, написание текстов программ, отладка и тестирование программы (испытания программы), документирование, настройка (конфигурирование), доработка и сопровождение.

Линейные программы | Информатика Паскаль #8 | Инфоурок

С++ для начинающих

Глава 1. Задачи

Программы с линейной структурой

Приступая к решению задач этого раздела, следует вспомнить, что:

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

51. Написать программу вычисления площади параллелограмма. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление площади прямоугольника
Введите исходные данные:
Длина (см) -> 9
Ширина (см) -> 7.5
Площадь параллелограмма: 67.50 кв.см.

52. Написать программу вычисления объема параллелепипеда. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление объема параллелепипеда.
Введите исходные данные:
Длина (см) -> 9
Ширина (см) -> 7.5
Высота (см) -> 5
Объем: 337.50 куб.см.

53. Написать программу вычисления площади поверхности параллелепипеда. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление площади поверхности параллелепипеда.
Введите исходные данные:
Длина (см) -> 9
Ширина (см) -> 7.5
Высота (см) -> 5
Площадь поверхности: 90.00 кв.см.

54. Написать программу вычисления объема куба. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

35 Линейная организационная структура

Вычисление объема куба.
Введите длину ребра (см) и нажмите клавишу
-> 9.5
Объем куба: 857.38 куб.см.

55. Написать программу вычисления объема цилиндра. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление объема цилиндра.
Введите исходные данные:
радиус основания (см) -> 5
высота цилиндра (см) -> 10
Объем цилиндра 1570.80 см. куб.
Для завершения нажмите

56. Написать программу вычисления стоимости покупки, состоящей из нескольких тетрадей и карандашей. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление стоимости покупки.
Введите исходные данные:
Цена тетради (руб.) -> 2.75
Количество тетрадей -> 5
Цена карандаша (руб.) -> 0.85
Количество карандашей -> 2
Стоимость покупки: 15.45 руб.

57. Написать программу вычисления стоимости покупки, состоящей из нескольких тетрадей и такого же количества обложек к ним. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление стоимости покупки.
Введите исходные данные:
Цена тетради (руб.) -> 2.75
Цена обложки (руб.) -> 0.5
Количество комплектов (шт.) -> 7
Стоимость покупки: 22.75 руб.

58. Написать программу вычисления стоимости некоторого количества (по весу) яблок. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление стоимости покупки.
Введите исходные данные:
Цена одного килограмма яблок (руб.) -> 8.5
Вес яблок (кг) -> 2.3
Стоимость покупки: 19.55 руб.

59. Написать программу вычисления площади треугольника, если известна длина основания и высоты. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление площади треугольника.
Введите исходные данные:
Основание (см) -> 8.5
Высота (см) -> 10
Площадь треугольника 42.50 кв.см.

60. Написать программу вычисления площади треугольника, если известны длины двух его сторон и величина угла между этими сторонами. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление площади треугольника.
Введите (через пробел) длины двух сторон (см) треугольника -> 25 17
Введите величину угла между сторонами треугольника -> 30
Площадь треугольника: 106.25 кв.см.

61. Написать программу вычисления сопротивления электрической цепи, состоящей из двух параллельно соединенных сопротивлений. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление сопротивления электрической цепи.
при параллельном соединении элементов.
Введите исходные данные:
Величина первого сопротивления (Ом) -> 15
Величина второго сопротивления (Ом)-> 20

Сопротивление цепи: 8.57 Ом

62. Написать программу вычисления сопротивления электрической цепи, состоящей из двух последовательно соединенных сопротивлений. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление сопротивления электрической цепи.
Введите исходные данные:
Величина первого сопротивления (Ом) -> 15
Величина второго сопротивления (Ом)-> 27.3
Сопротивление цепи (последовательное соединение): 42.30 См

63. Написать программу вычисления силы тока в электрической цепи. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление силы тока в электрической цепи.
Введите исходные данные:
Напряжение (вольт) -> 36
Сопротивление (Ом) -> 1500
Сила тока: 0.024 Ампер.

64. Написать программу вычисления расстояния между населенными пунктами, изображенными на карте. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление расстояния между населенными пунктами.
Введите исходные данные:
Масштаб карты (количество километров в одном сантиметре) -> 120
Расстояние между точками, изображающими населенные пункты (см) -> 3.5
Расстояние между населенными пунктами 420 км.

65. Написать программу вычисления стоимости поездки на автомобиле на дачу (туда и обратно). Исходными данными являются: расстояние до дачи (км); количество бензина, которое потребляет автомобиль на 100 км пробега; цена одного литра бензина. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление стоимости поездки на дачу и обратно.
Расстояние до дачи (км) ->67
Расход бензина (литров на 100 км пробега) ->8.5
Цена литра бензина (руб.) ->6.5
Поездка на дачу и обратно обойдется в 74.04 руб.

66. Написать программу, вычисляющую скорость, с которой бегун пробежал дистанцию. Рекомендуемый вид экрана во время выполнения программы приведен ниже. Данные, введенные пользователем, выделены полужирным шрифтом.

Вычисление скорости бега.
Введите длину дистанции (метров) -> 1000
Введите время (минут.секунд)-> 3.25
Дистанция: 1000
Время: 3 мин 25 сек = 205 сек
Вы бежали со скоростью 17.56 км/час

Читайте также:
Как узнать в какой программе открыта папка

Для завершения работы нажмите

67. Написать программу вычисления объема цилиндра. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление объема цилиндра.
Введите исходные данные:
Радиус основания (см) -> 5.5
Высота цилиндра (см) -> 7
Объем цилиндра 665.23 см.куб.

68. Написать программу вычисления площади поверхности цилиндра. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление площади поверхности цилиндра.
Введите исходные данные:
Радиус основания (см) -> 5.5
Высота цилиндра (см) -> 7
Площадь поверхности цилиндра: 431.97 кв.см.

69. Написать программу вычисления объема параллелепипеда. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление объема параллелепипеда.
Введите в одной строке длину, ширину и высоту параллелепипеда (в сантиметрах).
Числа разделяйте пробелами.
После ввода последнего числа нажмите . -> 7.5 2.5 3
Объем параллелепипеда 56.25 см.куб.

70. Написать программу пересчета расстояния из верст в километры (1 верста — это 1066,8 м). Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).
Пересчет расстояния из верст в километры. Введите расстояние в верстах -> 100 100 верст — это 106.68 км
71. Написать программу пересчета веса из фунтов в килофаммы (1 фунт — это 405,9 фамма). Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Пересчет веса из фунтов в килограммы.
Введите вес в фунтах -> 5
5 фунтов — это 2.05 кг

72. Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время хранения (дней) за даются во время работы программы. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление дохода по вкладу.
Введите исходные данные:
Величина вклада (руб.) -> 2500
Срок вклада (дней) -> 30
Процентная ставка (годовых) -> 20
Доход: 41.10 руб.

Сумма по окончании срока вклада: 2541.10 руб.

73. Написать программу пересчета величины временного интервала, заданного в минутах, в величину, выраженную в часах и минутах. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Введите временной интервал (в минутах) -> 150
150 минут — это 2 ч. 30 мин.

74. Написать программу, которая преобразует введенное с клавиатуры дробное число в денежный формат. Например, число 12.5 должно быть преобразовано к виду 12 руб. 50 коп.

Преобразование числа в денежный формат. Введите дробное число -> 23.6
23.6 руб. — это 23 руб. 60 коп.

75. Написать программу пересчета веса из фунтов в килограммы (1 фунт — 405,9 грамма). Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Пересчет веса из фунтов в килограммы. Введите вес в фунтах и нажмите . -> 3.5 3.5 фунт(а/ов) — это 1 кг 420 гр.

76. Напишите программу, которая вычисляет площадь треугольника, если известны координаты его углов. Ниже приведен рекомендуемый вид экрана во время выполнения про граммы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление площади треугольника.
Введите координаты углов (числа разделяйте пробелом):
xl,yl -> -2 5 х2,у2 -> 1 7 хЗ,уЗ -> 5 -3
Площадь треугольника: 23.56 кв.см.

Источник: programm.ws

02. Линейный алгоритм

Любой алгоритм можно составить из нескольких базовых структур. Простейшей из них является линейная (следование).

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

Пример программы линейной структуры

Программа на языке Pascal

var a, b, c: integer;

2. Объявление переменных

3. Начало блока операторов

4. Ввод исходных данных

5. Вычисление по формуле

6. Вывод результата

7. Конец блока операторов

Чтобы составить программу линейной структуры.

    1. Определить, что является исходными данными, какие будут у них типы. Выбрать имена переменных.
    2. Определить, что является искомыми результатами, какие будут у них типы. Выбрать имена переменных.
    3. Определить, какие формулы связывают исходные данные с результатами.
    4. Если нужны промежуточные данные, определить их типы и выбрать имена вспомогательных переменных.
    5. Описать все используемые переменные.
    6. Записать алгоритм, который должен включать:
      1. ввод всех исходных данных;
      2. вычисления;
      3. вывод результатов.

      Ввод и вывод данных

      Для ввода данных в языке Pascal используются процедуры

      read(переменные); например, read(a, b, c);

      readln(переменные); например, readln(a, b, c);

      Для вывода данных в языке Pascal используются процедуры

      write(выражения); например, write(‘a =’, a, ‘b + c =’, b + c);

      writeln(выражения); например, writeln(‘a =’, a, ‘b + c =’, b + c);

      Процедуры readln и writeln отличаются от read и write тем, что после ввода/вывода производят перевод строки.

      Математические операции и функции

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

      Источник: sites.google.com

      1.2. Программы линейной структуры. Операторы разветвления. Операторы цикла

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

      По сути дела, эта операция означает, что в ячейку памяти, отведенную компьютером под некоторую переменную, нужно поместить константу. На реальном компьютере эта константа может быть введена самыми разными способами, например, введена с клавиатуры, получена из заранее подготовленного файла или от внешнего устройства, подключенного к компьютеру; Операция присваивания используется для задания значения некоторой переменной, обычно она имеет вид перемен- ная=значение или переменная:=значение , знак = или := читается в этом случае как «присвоить». При присваивании сначала берется (или вычисляется) значение справа от знака «присвоить», затем это значение записывается в переменную. В большинстве языков программирования существуют схожие требования к именам ( идентификаторам ) переменных и других объектов данных, используемых программистом: имена могут включать латинские буквы, цифры и знак подчеркивания (в конкретном языке программирования возможны и другие символы, разрешенные в идентификаторах, опустим их для простоты); идентификатор состоит из одного слова; если требуется пробел в имени, он заменяется на подчеркивание: так, My_1

      будет правильным именем объекта, а My 1 — нет; имя всегда начинается с буквы, например, возможен объект с именем A1 , но не 1A ; прописные и строчные буквы в именах могут как различаться, так и не различаться в конкретном языке; имена не могут совпадать с зарезервированными в языке служебными словами, обозначающими встроенные в этот язык операции над данными. Кроме того, обычно переменные должны иметь определенный тип данных , назначенный программистом.

      Подробнее о типах данных говорится в п. 1.8. Справа от знака «присвоить» может находиться не только переменная или константа, но и арифметическое выражение (формула). Арифметические выражения строятся из операндов , которыми могут быть константы, переменные и стандартные функции . В выражение также могут входить арифметические операции и круглые скобки.

      В большинстве языков определено 6 арифметических операций, перечислим их в соответствии с приоритетом , т. е., старшинством (табл. 2). Операции с одинаковым приоритетом равноправны между собой и выполняются слева направо, как и в математике.

      Читайте также:
      Как запустить в пайтоне программу
      Таблица 2. Арифметические операции
      Приоритет Обозначение Описание операции
      операции
      1 * Умножение
      / Деление
      div Деление 2 целых значений с
      отбрасыванием остатка
      mod Взятие остатка от деления 2
      целых значений
      2 + Сложение
      Вычитание

      Операции div и mod определены только для целочисленных операндов. Приведем пример их использования:

      y:=2012; c:=y div 100; n:=y mod 100; Здесь переменная c получит значение 20, а n — значение 12. Стандартные функции включены в любой развитый язык программирования и служат для выполнения элементарных математических расчетов, часто требуемых при написании программ.

      Наборы этих функций различны в разных языках, но все функции оформляются одинаково: после имени функции следует ее аргумент, заключенный в круглые скобки. Если аргументов несколько, они разделяются запятыми, например sin(x) означает вычисление синуса от значения переменной x , выполняемое стандартной функцией, а запись z:=max(x,y) может означать вызов стандартной функции определения максимального из двух значений. Результатом вызова функции будет то, что значение z будет установлено в большее из значений x и y . При необходимости изменить обычное старшинство операций в записи выражения используются дополнительные круглые скобки . Например, правильная запись выражения y a 2 b вы- глядит как y:=(a+b)/2 . Запись y:=a+b/2 неверна, т. к. это означает a b 2 . Разумеется, все скобки в выражении должны быть парными и располагаться справа от знака присваивания. Кроме того, в записи арифметических выражений нельзя пропускать знак умножения * , как часто делается в математике: выражение 4ac записывается как 4*a*c . Нельзя писать sin*x или sin x , после имени функции может следовать только ее аргумент в круглых скобках. Третьей типовой конструкцией линейного алгоритма является операция вывода , позволяющая отобразить на экране (а также вывести на бумагу, записать во внешний файл и т.д.) значения переменных которые являются выходными данными алгоритма и которые к этому моменту сохранены в соответствующих ячейках памяти операторами присваивания.

      На рис. 1 приведен пример блок-схемы алгоритма вычисления площади прямоугольника s по известным длинам сторон a, b. Исходные данные: a- длина прямоугольника, b- ширина прямоугольника. Выходные данные : s – площадь. Начало Ввод a,b Вычисление s=a*b Вывод площади s Конец Рис. 1. Блок – схема линейного алгоритма Запись структуры алгоритма на псевдокоде выглядит следующим образом: 1. начало 2. ввод a,b 3. вычисление s=a*b 4. вывод s 5. конец Разветвляющийся алгоритм позволяет организовать в программе проверку условий и реализуется по одному из нескольких направлений вычисления ( ветвей алгоритма ). Выбор одной из ветвей зависит от истинности или ложности некоторого усло- вия ( логического выражения ), включенного в состав условного оператора . Программа должна учитывать все возможные ветви

      вычислений. При запуске программы, в зависимости от данных, выполняется только одна из возможных ветвей. Неполный ( короткий ) условный оператор если–то , на блок- схеме изображается следующим образом (рис. 2): Условие Оператор1 Рис. 2. Блок-схема короткого условного оператора Если условие истинно (выполняется), то выполняется и оператор1 , иначе оператор1 игнорируется.

      В качестве этого оператора может быть указано любое разрешённое в алгоритмическом языке действие. Полный условный оператор если–то–иначе на блок-схеме изображается следующим образом (рис. 3): Н Условие

      Оператор 2 Оператор 1

      Рис. 3. Блок-схема полного условного оператора

      Если условие истинно, то выполняется оператор1 , иначе выполняется оператор2 . Всегда выполняется только один из двух операторов. Более сложную конструкцию представляет собой составной условный оператор. Он применяется, когда есть более двух вариантов расчета.

      Общий вид составного оператора может включать произвольное число условий и ветвей расчета: если условие1 то оператор1 иначе если условие2 то оператор2 . иначе если условиеN то операторN иначе оператор0; При использовании оператора последовательно проверяются условия 1, 2, . N, если какое-то из них выполняется, то выполняется соответствующий оператор с номером 1, 2, . N и затем управление передается на оператор, следующий за условным. Если все условия ложны, выполняется оператор0 (если он задан).

      Число ветвей N не ограничено, ветви иначе оператор0; может и не быть. Существенно то, что если выполняется более одного условия из N , обработано все равно будет только первое истинное условие.

      Для случаев, когда требуется выбор одного значения из конечного набора вариантов, составной условный оператор удобнее заменять оператором выбора ( переключателем ). В большинстве языков он обозначается ключевым словом case или switch и выполняется так же, как составной условный оператор. В качестве примера приведем блок-схему алгоритма, позволяющего вывести большее из двух заданных значений a,b (рис. 4). Исходные данные: a- первое число, b- второе число. Выходные данные : вывод наибольшего числа.

      Начало Ввод a,b a>b

      Вывод b Вывод a

      Конец Рис. 4. Алгоритм с полным условным оператором Запись условного алгоритма на псевдокоде имеет следующий вид: 1. начало 2. ввод значений a и b 3. если а>b то вывод a, 4. иначе вывод b 5. конец Задачу можно было решить и с использованием неполного условного оператора если–то. Такое решение изображено на рис. 5 Запись алгоритма с рис.

      5 на псевдокоде выглядит следующим образом: 1. начало 2. ввод двух значений a и b 3. если а>b то вывод a 4. если b>=a то вывод b 5. конец
      Начало Ввод a,b a>b Вывод a b>=a Вывод b Конец

      Рис. 5. Блок-схема с неполными условными операторами Когда после ключевых слов то или иначе вновь используются условные операторы, они называются вложенными . Число вложений может быть произвольно, при этом действует правило: ветвь иначе всегда относится к ближайшему сверху оператору если , для которого ветвь иначе еще не указана. Часто вложением условных операторов можно заменить использование составного. В качестве примера рассмотрим алгоритм для определения номера координатной четверти p , в которой находится точка с координатами (x,y) . Для простоты примем, что точка не ле-

      жит на осях координат. Без использования вложений основная часть алгоритма в записи на псевдокоде может иметь следую- щий вид: если (x>0) и (y>0) то p:=1 иначе если (x<0) и (y>0) то p:=2 иначе если (x<0) и (y<0) то p:=3 иначе p:=4; Операция «и» ( and ) в этом примере, требует одновременного выполнения двух условий, подробнее эта и другие логические операции рассмотрены в п. 1.8.

      Использование такого количества условий представляется явно избыточным. Перепишем программу, используя тот факт, что каждое из условий x>0 , x0 то если y>0 то p:=1 иначе p:=4; иначе если y>0 то p:=2 иначе p:=3; В первом фрагменте программе проверяется от двух до шести условий, во втором — всегда только два условия. Здесь использование вложений дало существенный выигрыш в производительности.

      В большинстве языков программирования ключевое слово «если» записывается как if , «то» – then , «иначе» – else . Циклический алгоритм (или циклический вычислительный процесс ) характеризуется повторением одних и тех же вычислений над некоторым набором данных. Числом повторений цикла управляет специальная переменная, называемая его счетчиком или управляющей переменной цикла. На счетчик накладывается условие, определяющее, до каких пор следует выполнять цикл. Повторяемый блок вычислений называют телом цикла. В теле цикла должно быть обеспечено изменение значения счетчика, чтобы он мог завершиться. Однократное выполнение тела цикла называют его шагом .

      Таким образом, для программирования цикла достаточно определить условие, управляющее числом его повторений и описать операторы, образующие тело цикла. С этой точки зрения, теоретически возможны всего два вида циклов — проверка условия либо предшествует выполнению тела цикла, либо происходит после него. Изобразим эти циклы в виде блок-схем (рис. 6).

      Читайте также:
      Установить программу муниципальных услуг

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

      Естественно, предполагается, что в теле цикла было обеспечено некоторое изменение входящих в условие переменных — в противном случае произойдет зацикливание и программа «зависнет». Цикл с предусловием можно описать следующим псевдоко- дом: нц пока условие тело цикла (операторы) кц В большинстве языков программирования цикл с предусловием записывается с помощью ключевых слов while … do ., часто его называют просто «цикл while». Для цикла с постусловием сначала выполняется тело цикла, затем управление передается на проверку условия. В зависимости от истинности или ложности условия, тело цикла выполняется повторно или же происходит переход к оператору, следующему за телом цикла. Все, сказанное о возможном зацикливании для цикла с предусловием, справедливо и для цикла с постусловием. Цикл с постусловием описывается таким псевдокодом: нц тело цикла (операторы) пока условие кц

      Рис. 6. Блок-схемы циклов с предусловием и постусловием Исходя из приведенных блок-схем, очевидно основное различие двух циклов: цикл с постусловием гарантированно выполняется хотя бы раз , а цикл с предусловием может не выполняться ни разу, если условие сразу же окажется ложным.

      В то же время, оба рассмотренных вида циклов сходны тем, что число их повторений не задано в явном виде (хотя обычно может быть вычислено). Цикл с постусловием записывается с помощью ключевых слов do … while (Си-подобные языки) или repeat … until (паскалеподобные). Рассмотрим пример алгоритма с циклом, имеющим наперед неизвестное количество проходов. Для этого решим следующую задачу: указать наименьшее количество членов ряда натуральных чисел 1, 2, 3, . сумма которых больше заданного значения К. Блок-схема алгоритма решения этой задачи приведена на рис. 7. Задача может быть решена как с помощью цикла с предусловием, так и с помощью цикла с постусловием. В первом случае псевдокод имеет следующий вид: 1. начало 2. ввод K 3. s:=0, i:=1 21

      4. нц пока s
      В реальных задачах циклы с предусловием и постусловием также обычно взаимозаменяемы, хотя замена не всегда делается так же элементарно, как в приведённом примере. Как в учебных, так и в реальных задачах циклы чаще всего обрабатывают не отдельные переменные, а массивы . Массивы нужны для хранения в памяти компьютера большого числа однотипных данных. В основе массивов лежит понятие индекса . Допустим, нам известна температура в каждый из дней октября:

      День месяца 1234567 8 9 10 11121314 29 30 31
      Температура, С 57982031112 3 0 -2 -4 0 1 2

      Тогда температура — это последовательность чисел из нижней строки таблицы, а день месяца – это порядковый номер элемента в этой последовательности или индекс. По таблице можно определить, что температура в первый день месяца была 5 градусов, во второй – 7, в десятый – 3, а в двадцать девятый — 0. Если обозначить последовательность температур за весь месяц, например, буквой t, тогда можно обозначить через t(l) температуру первого дня месяца, t(2) — второго, . t(31) — последнего. Теперь каждый из этих элементов последовательности обладает именем и значением, т. е. является переменной с индексом . Таким образом, под массивом можно понимать набор однотипных данных , объединенных одним именем и отличающих- ся индексами . В нашем примере имя массива t, а индекс может принимать любые целочисленные значения от 1 до 31. Обращение к элементу массива производится по имени массива и индексу, например, t(7) или t[7], при этом каждый элемент массива имеет свое значение. Если индекс массива имеет переменное значение i, то обращение к элементу массива можно осуществить как t(i). Этот пример является определением одномерного массива , фактически, являющегося некоторым списком , а если данные можно представить в виде двумерной таблицы , то и массив

      можно определить как двумерный. Пример двумерного массива показан на рис. 8. Элемент такого массива характеризуется двумя индексами : первый показывает строку, в которой расположена ячейка, второй – ее столбец. Например, запись d[2,5]=43 означает, что в ячейку, размещенную на пересечении 2-й строки и 5-го столбца двумерного массива d, нужно записать константу 43. Рис. 8. Двумерный массив Аналогично устроена структура трехмерных массивов и массивов большей размерности . Массивы могут быть различных типов: числовые, строковые и т. д. Как правило, перед использованием массив нужно описать с помощью специального оператора, чтобы компьютер мог выделить под него оперативную память. Теперь приведем пример алгоритма, содержащего цикл с наперед известным количеством шагов (повторений). Алгоритм решает задачу накопления суммы положительных элементов одномерного массива Z длины N ( под длиной одномерного массива понимается количество его элементов). Блок-схема алгоритма показана на рис. 9. Приведем также решение на псевдокоде: 1. начало 2. ввод массива Z из N элементов 3. s=0, i=1 4. нц пока i<=N 5. если Z[i]>0 то s=s+Z[i] 6. i=i+1 7. кц 8. вывод s 9. конец

      Рис. 9. Блок-схема цикла с заранее известным числом шагов Заметим, что на практике для ввода массива Z из N элементов обычно требуется организовывать дополнительный цикл в программе. Как правило, ввод, вывод и обработка одномерных массивов осуществляются поэлементно с помощью рассмот- ренного далее цикла с параметром . В случаях, когда объем последовательно обрабатываемых данных известен заранее (а значит, известно и требуемое число шагов цикла), а управляющая переменная меняется с шагом, равным единице, применяется такая форма цикла с предусловием, как цикл с параметром (распространены также названия 25

      цикл со счетчиком , цикл «для» , обычно записывается ключевым словом for ). В циклах с параметром число повторений полностью зависит от правила изменения управляющей переменной, которое задается с помощью начального и конечного значений параметра и, возможно, шага его изменения (в некоторых языках цикл реализован с произвольным шагом, не обязательно равным 1). Приведем пример.

      Пусть i – параметр цикла, изменяющийся от 1 до 10 включительно с шагом изменения, равным 1. На каждом шаге цикла печатается слово «Привет». Такой цикл может быть изображен следующей блок-схемой (рис. 10): i=1,10,1 Вывод слова «Привет» Рис. 10.

      Цикл с параметром Алгоритм на псевдокоде: 1. начало 2. нц для i=1, 10, 1 3. вывод слова «Привет» 4. кц (Конец цикла) 5. конец В ряде языков программирования, например, в С++, цикл for является, фактически, другой формой записи цикла while . Нередко при алгоритмическом решении задачи возникает необходимость создания цикла, содержащего в своем теле другой цикл. Такие циклы называются вложенными или кратными . Порядок вложенности циклов, когда в теле внутреннего цикла содержатся другие циклы, может быть достаточно большим. Этот порядок определяется методом, с помощью которого достигается решение поставленной задачи. Так, при обработке двумерных массивов, как правило, требуется двойной цикл, чтобы последовательно перебрать строки и столбцы матрицы. При

      Источник: studfile.net

      Рейтинг
      ( Пока оценок нет )
      Загрузка ...
      EFT-Soft.ru