ТОП 10:

Понятие алгоритма, его свойства, этапы разработки, способы представления алгоритмов.



Содержание

Содержание. 2

Требования к отчету. 3

ТЕМА 1. Алгоритмизация задач. 4

1.1. Понятие алгоритма, его свойства, этапы разработки, способы представления алгоритмов. 4

1.2. Перечень, наименование, обозначение блоков и отображаемые ими функции. 5

ТЕМА 2. Интегрированная инструментальная оболочка PascalABC. Работа с главным меню системы PascalABC.. 7

2.1. Среда программирования Pascal ABC. 7

ТЕМА 3. Общая структура программ в Pascal. 11

3.1. Основные части программы. 11

ТЕМА 4. Оператор ввода-вывода в Pascal. Описание некоторых стандартных типов данных и встроенные операции и функции, применимые к ним.. 14

4.1. Операторы ввода/вывода данных. 14

4.2. Стандартные типы данных. 15

ТЕМА 5. Программирование линейных алгоритмов. 17

5.1. Понятие линейного алгоритма. Примеры написания программ. 17

ТЕМА 6. Программирование с помощью операторов условного и безусловного перехода. 19

6.1. Условный оператор If. 19

6.2. Оператор безусловного перехода GoTo. 20

ТЕМА 7. Оператор выбора Case. 22

ТЕМА 8. Циклические программы.. 24

8.1. Оператор For 24

8.2. Оператор Repeat 25

8.3. Оператор While. 26

ТЕМА 9. Массивы.. 27

9.1. Линейные массивы. Описание типа. 27

9.2. Многомерные массивы. Двухмерные массивы – матрицы. 27

ТЕМА 10. расчет отметок проектной линии на вертикальной выпуклой или вогнутой кривой. 30

10.1. Индивидуальные задания. 30

ТЕМА 11. Процедуры и функции, определенные пользователем. Параметры процедур и функций. 32

11.1. Глобальные и локальные переменные, параметры процедур и функций. 32

11.2. Процедуры пользователя. 33

11.3. Функции пользователя. 34

ТЕМА 12. Символьные массивы. Строки. 36

12.1. Символьный тип. 36

12.2. Символьные массивы.. 36

12.3. Строки. Объявление строчных типов и переменных. 36

12.4. Определения значения строковой переменной. 37

12.5. Длина строки. Операция конкатенации. 37

12.6. Функции для работы со строками. 37

12.7. Процедуры для работы со строками. 38


Требования к отчету

Отчет по работе должен содержать:

-название, цель работы;

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

-блок-схему решения задачи;

-текст (листинг) программы;

-полученные при расчетах численные результаты;

-ответы на контрольные вопросы по указанию преподавателя.

 


ТЕМА 1. Алгоритмизация задач

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

Понятие алгоритма, его свойства, этапы разработки, способы представления алгоритмов.

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

Свойства алгоритма:

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

2. определенность алгоритма – каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвольного толкования;

3. понятность – должен включать команды, которые входят в систему команд исполнителя;

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

5. результативность (конечность) – при корректно заданных исходных данных алгоритм должен завершать работу и выдавать результат за конечное число шагов.

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

Этапы разработки и решения задач на ЭВМ:

  1. постановка задачи;
  2. моделирование;
  3. алгоритмизация задачи;
  4. программирование;
  5. ввод программы и исходных данных в ЭВМ;
  6. тестирование и отладка программы;
  7. исполнение отлаженной программы и анализ результатов.

Способы представления алгоритмов:

1. словесный;

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

3. алгоритмический язык.

Представление алгоритмов в виде структурированных блок-схем.

Основные структуры алгоритмов:

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

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

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

Размеры блоков

Размер a должен выбираться из ряда 10, 15, 20 мм. Допускается увеличивать размер a на число, кратное 5. Размер b равен 1,5a.

 


ТЕМА 2. Интегрированная инструментальная оболочка PascalABC. Работа с главным меню системы PascalABC

Цель лабораторной работы: ознакомиться с системой Pascal ABC, научиться работать с главным меню системы, изучить горячие клавиши,функциональные клавиши системы Pascal ABC.

Горячие клавиши

F2, Ctrl-S – сохранить файл.

F3, Ctrl-O – загрузить файл.

F12 – сохранить файл под новым именем.

Ctrl-Shift-S – сохранить все открытые файлы.

Ctrl-Shift-0 ... Ctrl-Shift-9 – установить закладку с номером 0...9.

Ctrl-0 ... Ctrl-9 – перейти к закладке с номером 0...9.

Ctrl-Tab, Ctrl-Shift-Tab – перейти к следующему/предыдущему окну редактора.

Ctrl-Shift-I – увеличить отступ выделенного блока.

Ctrl-Shift-U – уменьшить отступ выделенного блока.

 

Окно вывода

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

Окно вывода может быть скрыто. Клавиша F5 и кнопка показывают/скрывают окно вывода. Для скрытия окна вывода используется также клавиша Esc.

Окно вывода обязательно открывается при любом выводе в него.

Для очистки окна вывода следует нажать комбинацию клавиш Ctrl-Del или кнопку .

 

Окно ввода

Окно ввода открывается при выполнении процедур read и readln в ходе работы программы:

 

Ввод данных в окно ввода сопровождается эхо-выводом в окно вывода (рис 2). После нажатия клавиши Enter данные из окна ввода попадают в соответствующие переменные, окно ввода закрывается, и программа продолжает работать дальше.

 

Рис. 2. Окно ввода Паскаль ABC

 

Окно отладки

Окно отладки позволяет просматривать во время пошагового исполнения программы значения переменных (рис.3). По умолчанию оно располагается в правом верхнем углу окна редактора и имеет следующий вид:

Рис. 3. Окно отладки Паскаль ABC

 

Для добавления переменной или выражения в окно отладки следует нажать комбинацию клавиш Ctrl-F5 или кнопку . Можно также перетащить из редактора в окно отладки выделенное выражение или при активном окне отладки нажать клавишу Ins. Допускаются выражения, содержащие функции, в т.ч. и определенные в программе (такие функции не должны иметь побочного эффекта, т.е. не должны менять значения глобальных переменных).

Окно отладки включается/выключается нажатием комбинации клавиш Ctrl-Shift-W.

Для удаления строки из окна отладки следует выделить эту строку и нажать клавишу Del или воспользоваться командой контекстного меню окна отладки.

Для изменения строки в окне отладки следует дважды щелкнуть на ней.

Для очистки окна отладки следует нажать комбинацию клавиш Ctrl-Del или воспользоваться командой контекстного меню окна отладки.

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

 

Команды меню "Сервис"

Команды меню "Сервис" облегчают выполнение заданий из электронного задачника Programming Taskbook, а также заданий для исполнителей Робот и Чертежник.

Для просмотра заданий из задачника Programming Taskbook в демонстрационном режиме используется комбинация клавиш Shift-Ctrl-D или кнопка . Для создания шаблона программы для выполнения задания используется комбинация клавиш Shift-Ctrl-L или кнопка . Для просмотра результатов выполнения заданий используется комбинация клавиш Shift-Ctrl-R или кнопка .

Функциональные клавиши

Функциональные клавиши используются для управления средой Паскаля. Они обозначаются Fl, F2, ..., F12 и располагаются в самом верхнем ряду клавиатуры. С каждой из этих клавиш связывается некоторая команда меню. Действие почти всех функциональных клавиш можно модифицировать тремя особыми клавишами: Alt (от ALTernative дополнительный), Ctrl (ConTRoL управление) и Shift (SHIFT сдвиг). Нужно нажать на одну из них и затем, не отпуская ее, нажатьфункциональную клавишу. Например, Alt F3 означает, что вместе с клавишей Alt необходимо нажать клавишу F3, Ctrl F9 – вместе с Ctrl нажимается клавиша F9 и т.д.

F1 – обратиться за справкой к встроенной справочной службе (Help – помощь);

F2–сохранить редактируемый текст в файл;

F3 – открыть текст из файла в окно редактора;

F4 – пользуется в отладочном режиме: начать или продолжить исполнение программы и остановиться перед исполнением той ее строки, на которой стоит курсор;

F5 – отобразить/скрыть окно на вывода;

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

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

F9 – компилировать и выполнять программу;

F10 – перейти к диалоговому выбору режима работы с помощью главного меню.


Основные части программы.

Любую программу, написанную на языке Pascal, можно условно разделить на три основные части: 1 – раздел объявлений и соглашений (декларационная часть), 2 – раздел текстов процедур и функций,
3 – раздел основного блока.

РАЗДЕЛ ОБЪЯВЛЕНИЙ И СОГЛАШЕНИЙ PROGRAMЗаголовок программы; {$ ... } Глобальные директивы компилятора; USESПодключаемые библиотеки; LABELПодраздел объявления глобальных меток; CONSTПодраздел объявления глобальных констант; ТУРЕПодраздел объявления глобальных типов; VARПодраздел объявления глобальных переменных; РАЗДЕЛ ТЕКСТОВ ПРОЦЕДУР И ФУНКЦИЙ PROCEDURE (FUNCTION)Заголовок процедуры (функции); LABELПодраздел объявления локальных меток; CONSTПодраздел объявления локальных констант; TYPEПодраздел объявления локальных типов; VARПодраздел объявления локальных переменных; BEGINОсновной блок процедуры или функции; END; РАЗДЕЛ ОСНОВНОГО БЛОКА ПРОГРАММЫ BEGINОсновной блок программы; END.

Рис 3.1 Структура программ Pascal.

Раздел объявлений и соглашений

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

Заголовок

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

Примечание:

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

Глобальные директивы компилятора

В этом разделе программы компилятору можно дать указания, определяющие режимы его работы при трансляции последующей программы. Эти указания оформляются в тексте программы как комментарии, начинающиеся парой символов ({$) и заканчивающиеся символом (}). Такие указания могут содержать «заказы» на включение в текст программы фрагментов других программ (из соответствующих файлов), информацию для отладчика или сведения о необходимости использования арифметического сопроцессора.

Оператор USES

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

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

USES Crt, GraphABC, Sounds;

Примечание:

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

 

Объявления глобальных меток, констант, типов и переменных

Следом за строкой, содержащей оператор USES,идут строки объявляющие:

  • метки (LABEL)(хотя их использование противоречит Паскаль-парадигме программирования);
  • константы (CONST);
  • определенные пользователем типы данных (TYPE);
  • переменные (VAR).

 

В Pascal жесткое соблюдение именно такого порядка объявлений не требуется. В этом отношении данный диалект весьма "либерален". На практике в большинстве программ часть, заключающая в себе объявления глобальных объектов, непосредственно предшествует основному блоку программы.

В разделе описания меток LABEL содержатся перечисленные через запятую имена меток переходов. Следует помнить, что имена меток переходов не должны дублировать друг друга. Имя метки перехода может представлять собой целое число (от 0 до 9999), строку символов или символьно-цифровую конструкцию. Например:

LABEL 1, 5, 9999, h2, t32e , metka_l

В разделе CONST содержатся перечисленные через запятую константы, используемые в программе. Например:

CONST

Year=1995;

Month='№onb';

Day='Понедельник';

Раздел описания типов TYPEпозволяет программисту определить новый тип в программе. В данном разделе могут быть использованы ранее определенные в разделе CONSTконстанты.

В разделе описания глобальных переменных VARсодержится список переменных, используемых в программе, и определяется их тип.

Например:

VAR

А, В,С:INTEGER; {Переменным А, В и С присваивается тип INTEGER (целое число), }
DDT:REAL; {а переменной DDT присваивается тип REAL (вещественное число)}

 

Примечание:

Разделы LABEL, CONST, TYPEи VARмогут располагаться в произвольном месте программы.

При этом каждый из этих разделов может встречаться в программе несколько раз или вообще не встречаться в ней.

Процедуры и функции

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

Основной блок программы

Основной блок программы состоит из последовательности операторов, причем работа программы начинается именно с первого оператора основного блока программы. Тело основного блока программы ограничено операторами BEGIN и END. Обратите особое внимание на наличие точки после оператора END. Одна из наиболее характерных особенностей классической Паскаль-программы – малый размер основного блока программы, который играет роль координатора и только вызывает несколько подпрограмм (процедур и функций), выполняющих все необходимые действия.

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

Комментарии

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

§ имя файла, в котором хранится программа,

§ краткое описание назначения программы,

§ авторские права,

§ используемый язык программирования и версия компилятора,

§ версия программы и дата последнего изменения,

§ пояснение назначения переменных,

§ замечания о назначении операторов и частей программы.

 

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

Комментарии в Паскаль-программах представляют собой произвольный текст, ограниченный

скобками {...}, (*...*). Комментарии могут быть написаны после пары символов // (слеш), это комментарий до конца строки. Комментарии не воспринимаются компьютером и не обрабатываются программой.

{это – комментарий }

(* это – тоже комментарий *)

// это – тоже комментарий

 

Для обозначения имен констант, переменных, функций, процедур и модулей используются буквы и цифры, входящие в алфавит языка, и знак подчеркивания " _ ". Имена начинаются с буквы или знака подчеркивания " _ "и содержат до 63 значащих символов. Символ пробела в имени не допускается. Эти имена принято называть идентификаторами. Различие прописных и строчных букв в идентификаторах компилятором Паскаля не учитывается.

Идентификаторы отделяются друг от друга пробелами и специальными знаками.

 


ТЕМА 4. Оператор ввода-вывода в Pascal.
Описание некоторых стандартных типов данных и встроенные операции и функции, применимые к ним

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

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

Оператор присваивания: (:=). Оператор присваивания служит для присваивания значений переменным, например: x:=1; a:=5. 02; b:= 32*a+Sin(x); S:= 'Иван Иванович'.

Составной оператор: Begin <операторы> End;

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

 

Стандартные типы данных

К стандартным относятся целочисленные, действительные, логический и другие типы.

Целочисленные типы определяют константы, переменные и функции, значения которых реализуются множеством целых чисел, допустимых в данной ЭВМ.

 

Тип Диапазон значений Требуемая память
Shortint -128 .. 127 1 байт
Integer -32768 .. 32767 2 байта
Longint -2147483648.. 2147483647 4 байта
Byte 0 .. 255 1 байт
Word 0 .. 65535 2 байта

Пример описания:

VAR n1, n2: Integer ; n3, n4 : Word; n5, n5 : Byte;

 

Над целыми операндами можно выполнять следующие операции:

сложение, вычитание, умножение, деление, целочисленное деление, получение остатка от деления и др. Знаки этих операций:

 

+ – * / div mod

 

Результат данных операций над целыми операндами есть величина целого типа, кроме операции деления /. Результат деления всегда имеет вещественный тип. Результат выполнения операции целочисленного деления div целых величин есть целая часть частного. Результат выполнения операции получения остатка от деления mod – остаток от деления чисел. Например:

 

17 div 2 = 8, 3 div 5 = 0

17 mod 2 = 1, 3 mod 5 = 3 .

 

Операции сдвига влево shl и сдвига вправо shr:

I shl N; I shr N.

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

 

Операции отношения, примененные к целым операндам, дают результат логического типа TRUE или FALSE (истина или ложь).

В языке ПАСКАЛЬ имеются следующие операции отношения: равенство =, неравенство <>, больше или равно >=, меньше или равно <=, больше >, меньше < .

К аргументам целого типа применимы следующие стандартные (встроенные) функции, результат выполнения которых имеет целый тип:

 

Abs(X) – абсолютное значение, модуль Х;

Sqr(X) – Х в квадрате;

Succ(X) – следующее значение (X+1);

Pred(X) – Х–1.

 

Следующая группа стандартных функций для аргумента целого типа дает вещественный результат:

 

Sin(X), Cos(X), ArcTan(X), Ln(X), Exp(X), Sqrt(X).

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

Результат выполнения функции проверки целой величины на нечетность Odd(X) имеет значение истина, если аргумент нечетный, и значение ложь, если аргумент четный:

 

X=5 Odd(X)=TRUE ; X=4 Odd(X)=FALSE.

 

Для быстрой работы с целыми числами определены процедуры:

Inc(X) X:=X+1

Inc(X,N) X:=X+N

Dec(X) X:=X–1

Dec(X,N) X:=X–N

 

Вещественные типы определяет те данные, которые реализуются подмножеством действительных чисел, допустимых в данной ЭВМ.

 

Тип Диапазон значений Количество цифр Требуемая память (байт)
Real 2.9e-39 .. 1.7e+38 (10-39..+38)
Single 1.5e-45 .. 3.4e+38
Double 5.0e-324 .. 1.7e+308
Extended 3.4e-4932 .. 1.1e+4932
Comp -9.2e+18 .. 9.2e+18

Пример описания:

VAR n1, n2, n3, n4 : Real;

 

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

 

сложение+ , вычитание , умножение * , деление / .

 

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

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

К вещественным аргументам применимы функции, дающие вещественный результат:

 

Abs(X), Sqr(X), Sin(X), Cos(X), ArcTan(X), Ln(X),Exp(X), Sqrt(X), Frac(X), Int(X), Pi.

 

Функция Frac(X) возвращает дробную часть X, функция Int(X) – целую часть X.

Безаргументная функция Pi возвращает значение числа Пи = 3,1415926... вещественного типа.

К аргументам вещественного типа применимы также функции Trunc(X) и Round(X) дающие целый результат. Первая из них выделяет целую часть действительного аргумента путем отсечения дробной части, вторая округляет аргумент до ближайшего целого.

 

Логический тип (Boolean) определяет те данные, которые могут принимать логические значения: False (ложь) или True (истина).

 

Примеры описания:

VAR

b1, b2, b3, b4 : boolean;

 

Примеры присвоения значения:

b1 := True; b2 := False; b3 := not b1;

 

К булевским операндам применимы следующие логические операции:

not and or xor.

 

Логический тип определен таким образом, что FALSE < TRUE. Это позволяет применять к булевским операндам все операции отношения.

 

ТЕМА 5. Программирование линейных алгоритмов

 

 

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

Понятие линейного алгоритма. Примеры написания программ.

 

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

 

 

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

1. Описание переменных: a,b,c,d,sum – целое, mult – длинное целое.

2. Ввод значений переменных a и b, вычисление их суммы и присвоение полученного значения переменной sum, вывод значения sum на экран.

3. Ввод значений переменных c и d, вычисление их произведения и присвоение полученного значения переменной mult, вывод значения mult на экран.

 

 

Программа Результат на экране
var a,b,c,d,sum: integer; mult: longint; begin write('Введите значение a: '); readln(a); write('Введите значение b: '); readln(b); sum:= a+b; writeln('Сумма чисел ',a,' и ',b,' = ',sum); writeln; writeln('Введите значения c и d: '); read(c,d); mult:= c*d; writeln('Результат умножения ',c,' на ',d,' = ',mult); end.     Введите значение a: 3 Введите значение b: 5 Сумма чисел 3 и 5 = 8   Введите значения c и d: 7 9 Результат умножения 7 на 9 = 63    

 

 

Задача 5.1.2. Обменять значения двух переменных, используя третью (буферную) переменную.

Описание переменных:

x – первая переменная;

y – вторая переменная;

b – буферная переменная (для временного хранения значения переменной).

Алгоритм решения задачи:

в буферной переменной сохраняется значение первой переменной.

первой переменной присваивается значение второй.

второй переменной присваивается значение буферной переменной, это значение равно старому значению первой переменной.

 

 

Программа Результат на экране
var x, y, b: integer; begin write ('Введите первую переменную: '); readln (x); write ('Введите первую переменную: '); readln (y); writeln ('x = ', x, ', y = ', y); writeln ('Полученные значения'); b := x; x := y; y := b; writeln ('x = ', x, ', y = ', y); end.   Введите первую переменную: 12 Введите первую переменную: 56 x = 12, y = 56 Полученные значения x = 56, y = 12  

 

 


ТЕМА 6. Программирование с помощью операторов условного и безусловного перехода

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

.

Условный оператор If

Условный оператор обеспечивает выполнение или невыполнение некоторого оператора, группу операторов – в зависимости от заданных условий.

Структура условного оператора имеет следующий вид:

If <условие> then <оператор 1> else <оператор 2>;

If<условие> then <оператор>;

где If, then, else – зарезервированные слова (если, то, иначе);

<условие> – произвольное выражение логического типа. Оно может быть простым или сложным. Сложные условия образуются с помощью логических операций AND, OR, XOR, NOT. При записи условий могут использоваться все возможные операции отношения;

<оператор> – простой или составной оператор. Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой, ограниченную операторными скобками – зарезервированные слова Begin и End.

Формат:

Begin <оператор 1>; < оператор 2>; ... <оператор N> End.

 

На рис.5.1 представлены блок-схемы разветвляющегося алгоритма с использованием условного оператора If.

Рис. 5.1 Блок-схема разветвляющегося алгоритма с использованием оператора условного перехода.

 

Примеры использования оператора If.

Простое условие.

 

If x> Max then Y:= Max else Y:=x;

 

Переменная Y получит значение переменной X, если только это значение не превышает Max, в противном случае Y станет равно max.

 

If x> Max then Max:=X;

Y:=x;

 

Переменная Y всегда будет иметь значение переменной X, а в Max запоминается максимальное значение X.

 

Примечание. После оператора, стоящего перед зарезервированным словом ELSE, символ точка с запятой» (;) не ставится.

 

С использованием сложного условия:

If (n>=0) and (n<=15) then

Begin

WriteLn('значение n лежит в диапазоне 0..15')

Else

WriteLn ('значение n меньше 0 или больше 15').

 

Оператор For

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

 

Оператор For состоит из заголовка, в котором определяется порядок изменения переменной параметра цикла и тела цикла, являющегося многократно повторяющимся алгоритмом.

Общий вид оператора:

· For – <параметр цикла>: = <начальное значение> to <конечное значение> do оператор; {тело цикла}.

Этот оператор применяется, если начальное значение < конечного значения;

· For – параметр цикла:= <начальное значение> downto <конечное значение> do оператор;

применяется, если начальное значение > конечного значения.

 

Пример: найти сумму квадратов целых чисел от 8 до 12.

i sqr(i) s:=s+sqr(i); s
     
0+64=64
64+81=145
145+100=245
245+121=366
366+144=510

 

Program Prim7_1;

Var i,s: integer;

BEGIN s:=0;

for i:= 8 to 12 do

s:=s+sqr(i); // тело цикла

writeln('Сумма s= ',s);

END.

 

Работа программы. В разделе Var выделяется ячейка памяти с именем i и s для хранения величин. Поскольку в S мы должны накапливать сумму, то вначале занесем в S ноль. Затем присваивается i=8. Далее выполняется тело цикла: извлекается содержимое ячейки S (а там у нас 0) и к этому содержимому прибавляется sgr(i), т.е. i2=64. Результат присваивается ячейке S, т.е. в S теперь 64.

Проверяется, не стал ли параметр цикла больше конечного значения параметра 12. Это не произошло, поэтому переменной i присваивается следующее значение, равное 9, и вновь выполняется тело цикла, т.е. S:=64+81. Можно сказать так: S присвоить тому S, которое было раньше, + следующее i2. Так как цикл еще не закончился, то i станет равным 10, а S присвоится тому S, которое было раньше, т.е. 145, и к нему прибавится еще текущее i2, т.е. 100. Этот процесс повторяется до тех пор, пока параметр цикла не станет равным 12. Тогда в последний раз 122 прибавляется к накапливаемой сумме.

 

 

При i=13 происходит выход из цикла и переход к оператору writeln (' Сумма S=' ,S);

 

Оператор Repeat

Repeat – оператор цикла с постусловием.

Общий вид. В отличие от for, оператор repeat (а также while) применяют тогда, когда неизвестно точно, сколько раз будет выполняться тело цикла. Общий вид оператора:

 

Repeat

оператор1;

оператор2;

– – – – – – – –

until <булевское выражение>;

 

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

Явного перебора параметров в Repeat не предусмотрено, поэтому изменение параметров осуществляется в теле цикла. Здесь же необходимо позаботиться, чтобы рано или поздно булевское выражение стало истиной.

Замечания:

1. Тело оператора repeat выполняется по меньшей мере один раз. Оператор repeat еще называют циклом с постусловием.

2. Перед until ';' не ставится.

Пример: найти сумму четных чисел в интервале от 0 до 100.

Program Prim;

Var i,s:integer;

BEGIN i:=0; s:=0;

Repeat

i:=i+2; s:=s+i

until i>100;

writeln('s=',s);

END.

 

Оператор While

While – оператор цикла с предусловием.

Общий вид оператора: While <булевское выражение> do тело цикла.

 

Работа оператора. Вначале вычисляется булевское выражение, и если оно истинно, то выполняется тело цикла; если оно ложно, то происходит выход из цикла.

Тело цикла – один оператор, как правило, составной. Мы должны позаботиться о том, чтобы булевское выражение в теле цикла на каком-то этапе стало ложным, иначе цикл никогда не закончится. Цикл можно сделать умышленно бесконечным, написав: while true do оператор;

 

 

Пример: найти сумму четных чисел в интервале от 0 до 100.

Program Prim;

Var i,s:integer;

BEGIN

i:=0; s:=0;

while i<100 do

Begin i:=i+2; s:=s+i; end;

writeln('s=',s);

END.

 

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

Program Prim;

Var

i,j: integer;

BEGIN

for i:=1 to 5 do

Begin

writeln;

for j:=20 to 23 do

write('i=',i,' j=',j);

end;

END.

 

Для цикла

for i:=1 to 5 do

телом цикла является

begin for j:=20 to 23 do

write(' i= ', i, ' , j = ', j);

writeln;

end;

 

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

 


ТЕМА 9. Массивы

Цель лабораторной работы: научиться правильно описывать различные массивы в разделах описания типов и объявления переменных; уметь инициализировать массивы, заполнять и выводить на экран содержимое массива; научится решать задачи с использованием массивов.

 







Последнее изменение этой страницы: 2016-04-19; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.209.10.183 (0.073 с.)