Блок схема вычисления площади окружности



Задача: вычислить площадь круга при заданном радиусе.

I этап – математическая постановка задачи. Формула вычисления площади круга имеет вид: , где R – радиус круга, π — константа, S – площадь круга.

II этап – определение входных и выходных данных: в нашем случае R и π – входные данные; S – выходное данное.

III этап – описание алгоритма решения задачи: рассмотрим графический способ описания алгоритма в виде схемы. На рис.1 представлены два варианта схемы алгоритма: Схемы различаются способом задания значения радиуса R: в Варианте1 значение радиуса R вычисляется, а в Варианте2 значение радиуса R вводится с клавиатуры.

Рис.1. Два варианта схем алгоритма вычисления площади круга.

IV этап– кодирование алгоритма, т.е. составление программы на выбранном языке программирования (например, языки программирования Pascal, С++ и т.д.)

V этап – ввод, отладка и тестирование программы.

VI этап – выполнение и сопровождение программы.

Замечание. I, II и III этапы не зависят от конкретной марки компьютера и конкретного языка программирования; реализация IV, V и VI этапов связана с конкретно выбранным языком и системой программирования.

Системы программирования

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

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

редактор текста — для создания и редактирования текста программы на языке высокого уровня, т.е. формирования исходного модуля (при сохранении текста программы в файле каждая система программирования по умолчанию дает свое стандартное расширение имени файла, например, системы на основе языка Pascal дают расширение .pas , системы на основе языка С++ – расширение .cpp).

компилятор — для перевода текста программы с языка высокого уровня в машинные коды, т.е. формирование объектного модуля (например, в системе TurboPascal — файл с расширением tpu;в системе на основе языка С++ — файл с расширением obj);

компоновщик — для подключение объектных кодов стандартных команд и формирования загрузочного модуля (файл с расширением .exe)

загрузчик – для выполнение загрузочного модуля программы.

Интегрированная среда разработки программ позволяет:

— создавать и редактировать исходные тексты программ;

— сохранять исходные тексты программ в файлах;

— считывать файлы с диска;

— осуществлять поиск и исправление ошибок (отладка);

— выполнять программу и просматривать результаты выполнения.

В данной работе рассмотрим реализацию IV, V, VI этапов в двух системах программирования: TurboPascal для Windows и Microsoft VISUAL C++6.0.

Часть1. Программирование в системе TurboPascal

Структура программы на языке Pascal

Программа на языке Pascal состоит из заголовка, раздела подключения модулей, раздела описаний и раздела операторов:

Program имя;

Uses ;

Begin

End.

Заголовок программы начинается с зарезервированного слова Program и содержит имя программы, которое дает сам программист.

Подключение модулейначинается с зарезервированного слова Usesи содержит список модулей (библиотек внешних процедур и функций).

Раздел описаний состоит из подразделов, в которых объявляются все встречающиеся в программе объекты: метки (Label), константы (Const), типы (Type), переменные (Var), внутренние процедуры (Procedure), внутренние функции (Function). Описания отделяются друг от друга точкой с запятой.

Раздел операторов заключается в операторные скобки Begin и End, при этом после End ставится точка. Операторы отделяются друг от друга точкой с запятой.

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

Рассмотрим два примера программ соответственно двум вариантам схем алгоритма (рис. 1).

Пример 1. Программа вычисления площади круга (схема алгоритма Варианта1)

( значение радиуса задается оператором присваивания)

Program PRIM1;

Uses WinСrt;

Const

Var

Begin

End.

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

1. Программа начинается с комментария, который заключается в фигурные скобки. Комментарии могут располагаться как вне, так и внутри программы. В комментариях разрешается указывать все символы клавиатуры.

2. После комментария идет заголовок программы, содержащий ее имя PRIM1.

3. В разделе Uses указывается подключаемый к программе модуль WinCrt, содержащий средства работы с экраном (например, очистка экрана процедурой ClrScr).

4. В разделе описаний — два подраздела:

4.1. подраздел констант (Const), где определена константа Pi;

4.2. подраздел переменных (Var), где объявляются все переменные, используемые в разделе операторов и резервируются ячейки оперативной памяти; в нашем случае это переменные действительного типа – R и S.

Читайте также:  Какие есть виды треугольников равнобедренный

5. Раздел операторов заключается в операторные скобки (BeginиEnd.) и содержит:

5.1. вызов процедуры ClrScr для очистки экрана во время выполнения программы;

5.2. два оператора присваивания:

— задание переменной R значения 1.5;

— вычисление площади круга S (операция присваивания имеет вид “:=”);

5.3.оператор вывода значения переменной S на экран: Writeln(‘S=’,S:7:3)

Пояснения к оператору вывода:

а) для оператора вывода есть два ключевых слова Write или Writeln

б) оператор Writeln(параметры) означает вывод параметров и последующий переход на новую строку (параметры записываются через запятую);

б) оператор Write(параметры) означает вывод параметров без перехода на новую строку

в) оператор Writeln без параметров означает переход на новую строку;

г) в списке параметров могут быть строки символов и имена переменных:

· для вывода строки символов используются ограничивающие апострофы, например, ‘S=’ или ‘Результаты вычислений’

· при выводе значение действительной переменной может иметь два представления:

1-е — с фиксированной точкой:в этом случае указывается имя переменной, за которой через двоеточие стоят форматы(S:7:3), где первое число(7) обозначает общее поле выводимого значения, второе число(3)– поле дробной части. Общее поле включает:

— отрицательный знак числа или пробел для положительного числа,

— количество цифр в целой части,

— количество цифр в дробной части.

Так в нашем случае вывод значения S в соответствии с форматом S:7:3 означает, что на изображение всего числа отведено 7 позиций, из них 3 позиции справа на дробную часть, 4-я позиция справа на десятичную точку, остальные — на целую часть. Результат будет иметь вид: S= 7.065

2-е – с плавающей точкой: в этом случае указывается только имя переменнойбез форматов,например, Write(‘S=’,S). Результат будет иметь вид: S= 7.0650000000Е+00

Пример 2. Программа вычисления площади круга (схема алгоритма Варианта2)

( ввод значения радиуса с клавиатуры)

Program PRIM2;

Uses WinСrt;

Const

Var

Begin

End.

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

1. Эта программа отличается от предыдущей только тем, что значение радиуса вводится с клавиатуры, а не присваивается в операторе присваивания. Операторы Write и Readln используются для организации диалога пользователя с компьютером:

— оператор Write(‘ Введите радиус ‘) выводит на экран текст: Введите радиус

— оператор Readln(R) служит для ввода с клавиатуры численного значения переменной R во время выполнения программы.

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

Источник

Задача. Вычислить площадь круга.

Дано: R, радиус круга.

Требуется: S, площадь руга.

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

Прочесть (получить) значение R. (ВВОД ДАННЫХ)

Присвоить переменной S значение выражения 3,14*R*R. (КОМАНДА ПРИСВАИВАНИЯ)

Записать (вывести) полученное значение S. (ВЫВОД РЕЗУЛЬТАТА)

Короче можно записать так:

Прочесть значение R

Записать значение S

Знак «:=» означает «присвоить». Запись А:=А+2 в программировании она означает команду присваивания. Сначала исполнитель вычисляет значение выражения, стоящего в правой части, а затем полученное значение присваивает переменной, стоящей в левой части. Например, после выполнения команд х:=3; х:=х*5 переменная х примет значение 15.

Графическая форма представления основана на замене типичных алгоритмических команд определенными геометрическими фигурами.

Разветвляющиеся алгоритмы. Команда ветвления.

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

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

Читайте также:  Какая кроватка для новорожденных лучше овальная или прямоугольная

Задача: вычислить y=|x|.

Дано: х – значение аргумента.

Требуется: у – значение функции. Связь: y =

Словесное представление:

Прочесть значение x.

Записать значение у

Упражнение.Какое значение примет Z в результате выполнения алгоритма

ЕСЛИ X>Y, ТО Z:=X*X+Y

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

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

Здесь Q — проверяемое условие; P1, P2, …, Pn — действия, которые должны быть выполнены в случае истинности условия Q (положительная ветвь ветвления); T1, T2, …, Tm — действия, выполняемые, если условие Q ложно (отрицательная ветвь ветвления).

При словесном представлении алгоритма полная условная конструкция реализуется командой ветвления вида:

Циклические алгоритмы. Команда повторения

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

Однако «неоднократно» не значит «до бесконечности». Организация циклов, никогда не приводящая к остановке в выполнении алгоритма (так называемое «зацикливание»), является нарушением требования его результативности — получения результата за конечное число шагов.

Рассмотрим графическое представление циклического блока алгоритма. В него входят в качестве базовых следующие структуры: логический элемент с проверкой условия Р и блок S, называемый телом цикла. Здесь тело цикла S расположено после проверки условия Р (цикл с предусловием), поэтому может случиться, что при определенных условиях блок S не выполнится ни разу. Такой вариант организации цикла, управляемый предусловием, называется цикл-пока. При словесном представлении алгоритма команда, организующая повторение в цикле-пока имеет вид:

Пока Р повторять

S

Конец цикла

Таким образом, если Р не выполняется, то предусмотрен выход из цикла на команду, записанную после строки «Конец цикла». Здесь условие Р — это условие на продолжение цикла.

Возможен другой случай, когда тело цикла S выполняется по крайней мере один раз и будет повторяться до тех пор, пока не выполнится условие Р. Такая организация цикла, когда тело цикла, расположено перед проверкой условия Р, носит название цикла с постусловием или цикла-до. Истинность условия Р в этом случае — причина окончания цикла. Команда, организующая цикл-до, приведена ниже:

Повторять

S

Пока не Р

Конец цикла

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

Для примера напишем блок-схему алгоритма вычисления суммы всех натуральных чисел от 1 до введенного пользователем N. Надо отметить, что можно было бы обойтись линейным алгоритмом, используя формулу суммы n членов арифметической прогрессии. Однако нам интересно именно на этом простом примере проиллюстрировать работу циклического алгоритма.

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

Шаг
S:=0; Усовершенствуем, программу, введя новую переменную i, которая пробегала бы все числа от 1 до 100. S:=0; S:=0; i:=0;
S:=S+1; i:=1; S:=S+i; i:=i+1; S:=S+i;
S:=S+2; i:=2; S:=S+i; i:=i+1; S:=S+i;
S:=S+3; i:=3; S:=S+i; i:=i+1; S:=S+i;
S:=S+100; i:=100; S:=S+i; i:=i+1; S:=S+i;

Итак, тело нашего цикла:

Найдем условие продолжения цикла. Так как перед входом в цикл значение переменной i равно 0. Поставим условие продолжения , , =. Любой порядковый тип является упорядоченным, но не наоборот. Так вещественные типы и тип string упорядоченные, но не порядковые.

Читайте также:  Если cos 0 то треугольник прямоугольный

Целые типы

В языке Турбо Паскаль определено 5 целых типов:

Shortint (-128 . 127, 1 байт),

Integer (-32767 . 32768, 2 байта),

Longint (-2147483648 . 2147483647, 4 байта),

Byte (0 . 255, 1 байт),

Word (0 . 65535, 2 байта).

Для целых чисел определены такие операции. Унарные: +,-. Бинарные: сложение, вычитание, умножение, получение частного (div) и остатка (mod) при целочисленном делении и некоторые другие. Также с целыми числами можно производить операции, результаты которых не целые числа. Это обычное деление и операции отношения. Кроме того, имеется большое количество встроенных функций для работы с целыми числами: abs, sqr, sqrt, sin, cos, exp, ln и др.

Вещественные типы

В Турбо Паскале имеется 5 вещественных типов.

Real (занимает 6 байт, диапазон от 2.9E-39 до 1.7E+38 по модулю, точность 11-12 значащих цифр)

Single(занимает 4 байта, диапазон от 1.5E-45 до 3.4E+38 по модулю, точность 7-8 значащих цифр)

Double(занимает 8 байт, диапазон от 5.0Е-324 до 1.7Е+308по модулю,точность 15-16 значащих цифр)

Extended (занимает 10 байт, диапазон от 3.4E-4932 до 1.1E+4932 по модулю, точность19-20 значащих цифр).

Comp(занимает 8 байт, диапазон от -9.2E-18 до 9.2E+18, хранятся точно, поскольку это целые числа)

Вещественные типы являются упорядоченными, но не порядковыми. Операции над вещественными числами: сложение ,вычитание, умножение, деление и операции отношения. Кроме того, имеется большое количество встроенных функций для работы с числами: abs, sqr, sqrt, sin, cos и т.п.

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

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

ПРИМЕР: тип Single — хранится 7-8 знаков после десятичной точки, тип Double — 15-16, тип Extended — 19-20.

program sravnenie;

var x : single; y : double; z : extended;

Begin

writeln(‘z=’,z);

end.

Эта программа выдаст в результате число z=9.93410748106882E-0009. Обычно принято считать, что a=b, если выполняется условие abs(a-b) 5)

3. Заданное натуральное число N является двузначным и кратно K.

(N >= 10) And (N C) And (A + C > B) And (B + C > A) And

((A = B) Or (B = C) Or (A = C))

(A + B > C) And (A + C > B) And (B + C > A) And

9. Прямоугольник с измерениями A, B подобен прямоугольнику с соответствующими измерениями C, D.

Abs(A / C — B / D) 0)

11. Дано натуральное число N — некоторый год. Этот год является високосным.

(N Mod 4 = 0) And (N Mod 100 <> 0) Or (N Mod 400 = 0)

(N Mod 4 = 0) And Not((N Mod 100 = 0) Xor (N Mod 400 = 0))

Переменные логического типа Boolean занимают в памяти один байт и могут принимать одно из двух значений False — ложное или True — истинное. Этот тип является порядковым (Ord(False) = 0, Ord(True) = 1) и, следовательно, упорядоченным. Результат любых операций сравнения имеет логический тип и может быть присвоен логической переменной. Для операндов типа boolean определены следующие логические операции: NOT — отрицание (превращает false в true, а true в false), AND — логическое умножение «и», OR – логическое сложение «или», XOR — исключающее или (true если операнды разные). Принцип действия этих операций можно проиллюстрировать такими схемами:

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

Символьный тип Char также называют литерным. Он позволяет работать с символами, которые записываются двумя способами: в одинарных кавычках или по их коду, например ‘a’, ‘B’, ‘*’ или, что то же самое, #97, #130, #42. В отличие от текста программы на паскале, символы, соответствующие строчным и заглавным буквам различаются. Множество значений типа Char представляет собой полный набор ASCII — символов (американская стандартная кодировка). В компьютере хранятся шестнадцатеричные коды символов (1 байт), которые и используются в операциях отношения (сравнения). Функция Ord выдает код соответствующего символа, который может быть от 0 до 255. Обратной функцией, которая по коду выдает соответствующий символ, является функция Chr.

Дата добавления: 2015-12-08 ; просмотров: 2353 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

Источник

Поделиться с друзьями
Объясняем