Учебная работа. Реферат: Построение блок схем алгоритмов. Алгоритмические языки высокого уровня
float dx=0.25,y,x;
for (x=2.0;x<=5.0 +0.5*dx;x+=dx)
{
if (x<=3.5)
y=cos(x)*cos(x);
else
y=sin(x)*log(x);
cout<<«Y= «<<y<<endl;
} }
Program lab_2; Uses Crt; Const
dx=0.25; Var
x,y:real; Begin
clrscr;
x:=2.0;
while x<5.0+dx/2 do
begin
if x<=3.5 then
begin
y:=sqr(cos(x));
end
else y:=sin(x)*ln(x);
writeln(y:3:5);
x:=x+dx;
end;
readln; End.
unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject); private
{ Private declarations } public
{ Public declarations } end; Const
dx=0.25;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button2Click(Sender: TObject); begin
Close(); end;
procedure TForm1.Button1Click(Sender: TObject); var
Code:integer;
x,y:real;
s:string[11]; begin
x:=2.0;
while (x<5.0+0.5*dx) do
begin
if x<=3.5 then y:=sqr(cos(x))
else y:=sin(x)*ln(x);
x:=x+dx;
Str(y:2:7,s);
Listbox1.Items.Add(s);
end; end;
procedure TForm1.Button3Click(Sender: TObject); begin
Listbox1.Items.Clear; end;
end.
35
Содержание Реферат 5 Введение 6 Построение блок – схем алгоритмов 8 Алгоритмические языки высочайшего уровня 12 Программирование в среде Borland Pascal 15 Базы зрительного программирование в среде Delphi 17 Объектно – направленное программирование и С++ 18 приложение 1 20 Приложение 2 23 Перечень применяемой литературы 35
Реферат
Реальный курсовой проект по дисциплине «Базы программирования и алгоритмические языки» состоит из 2-ух частей:
Объяснительной записки,
графической части.
Объяснительная записка содержит в себе последующие элементы:
Титульный лист и задание на курсовой проект,
«Содержание»,
«Реферат»,
«Введение»,
«Основную часть»,
«Заключение».
В данном курсовом проекте были решены три задачки. методы задач представлены в блок-схемах, которые дают общий подход к решению намеченных целей. задачки реализованы на 3-х разных языках программирования. Блок-схемы алгоритмов, листинги программ и результаты их работы приведены в приложениях.
Графическая часть курсового проекта состоит из 2-ух листов формата А1. 1-ый лист включает в себя блок–схемы 3-х задач, 2-ой – листинги программ, реализующие эти методы на рассматриваемых языках программирования.
Введение
метод – это конкретная конечная последовательность буквально определенных шагов либо действий которые обеспечивают решение задачки при наличии начальных данных за конечный просвет времени. Это процедура поиска решения задачки, совершенно точно представляющая как и в которой последовательности делать деяния. Хоть какой метод подразумевает исполнителя. При решении задач при помощи компа, исполнителем является комп.
Алгоритмические языки – это основное направление в современной разработке компьютерных программ.
Алгоритмические языки основываются на разработке метода.
Современные языки в собственном развитии алгоритмизации перебегают на последующий уровень, а конкретно объектно-ориентированное программирование.
Объектно-ориентированная парадигма дает новейший подход к разработке программного обеспечения, созданного для решения задач разных классов. Базовая теория объектно-ориентированной парадигмы состоит в передачи сообщений объектам.
Существует 5 компонент объектно-ориентированной парадигмы: объект, сообщение, класс, наследование и способ.
В данном курсовом проекте рассмотрены последующие алгоритмические языки:
Borland Pascal,
C++,
Borland Delphi.
Все эти языки, на современном шаге, являются также языками объектно-ориентированными.
Основная цель работы – освоитьна практикеэтапыразработки ПАСКАЛЬ-программ, С++-программ и Delphi–программ для решения вычислительныхзадачи на ЭВМ .
В данном курсовом проекте нужно было решить последующие задачки:
Даны X и E. Вычислить
…
Вычисления окончить, когда модуль крайнего просуммированного члена ряда станет меньше Е.
Вычислить таблицу значений функции при изменении аргумента в данном интервале с равномерным шагом:
x>3,5
x≤3,5
x[2;5]
∆x=0,25
Задана матрица G(A,B). Отыскать в ней количество L1 отрицательных и количество L2 положительных частей. Если L1>L2, то отыскать сумму отрицательных частей. В неприятном случае отыскать сумму положительных частей.
Построения блок–схем алгоритмов программ.
метод – это конкретная конечная последовательность буквально определенных шагов либо действий которые обеспечивают решение задачки при наличии начальных данных за конечный просвет времени.
Главные характеристики метода:
Массовость – метод должен быть применим для целого класса однотипных задач –
;
Конечность – метод должен состоять из конечного числа шагов, любой из которых производится за конечный просвет времени.
Результативность – по окончании работы метода должен быть получен некий итог.
Однозначность – применение метода к одним и этим же начальным данным постоянно обязано давать один и этот же итог.
Корректность – при применении метода к правильным начальным данным либо допустимым начальным данным обязано приводить к получению нужных результатов. подтверждение корректности метода – один из более тяжелых шагов его сотворения. Более всераспространенная процедура корректности метода – это обоснование правомерности и проверка корректности выполнения всякого из шагов на наборе тестов, подобранных так, чтоб охватить все допустимые входные данные и все допустимые выходные данные.
Эффективность – метод должен обеспечивать решение задачки за малый просвет времени с минимальными затратами памяти. Для оценки алгоритмов существует много критериев. Почаще всего оценка метода состоит в оценке временных издержек на решение задачки в зависимости от «размера» начальных данных. Употребляется также термин, временная способность и «трудозатратность метода». Практически эта оценка сводится к оценке количества главных операций, выполняемых методами, так как любая определенная операция производится за конечное заблаговременно известное время.
Метод решения задачки выходит наиболее действенным, если использовать способ пошаговой разработки, сущность которого состоит в том, что метод разрабатывается «сверху вниз». Сначала определяется общий подход к решению задачки, потом выделяются отдельные самостоятельные части, которые делают какую-то конечную обработку данных. Любая из выделенных частей в свою очередь может разбиваться на отдельные части. Таковой подход дозволяет разбить метод на части (модули), любая из которых решает самостоятельную подзадачу. Любой из модулей реализуется в виде отдельной функцию либо функции. Тогда решение задачки состоит из поочередного вызова процедур. программка, реализующая таковой метод, именуется структурированной программкой.
Построенные блок-схемы алгоритмов заданий приведены в приложении.
Описание задания № 1.
В задании требуется организовать исходную проверку Е опосля ввода. Организовать проверку на окончание выполнения программки по условию, если модуль крайнего просуммированного члена ряда станет меньше Е.
Если условие не производится организовать цикл, вычисления еще одного члена ряда и общей суммы ряда до выполнения условия.
Описание блок–схемы метода для задания № 1.
Блок схема начинается с блока №1 <Начало>.
Последующий блок№2 – это инициализация данных для работы программки по дефлоту. Переменная n – номер члена ряда: изначальное
Блок <Ввода> №3 значений Е, Х.
Блок №4: инициализация вспомогательной переменной Z значением Z=X+1.
Блок №5 <Ветвления> инспектирует
Блок <ветвления> №6 инспектирует инициализация переменной R значением Х). По другому – к блоку №7 (вывод суммы Z=1).
Блок №10 (модификация) – проверка условия |R|>E. Если условие производится, то осуществляется переход к блоку №11 (инициализация переменных Z, n, R). По другому осуществляется переход к блоку №12 (вывод результата Z).
Блок №13 – конец программки.
Описание задания № 2.
В задании требуется организовать цикл вычисления Y в данном интервале X при равномерном изменении его на данный шаг ∆x. Произвести проверку X для вычисления по выражению в данном спектре значений переменной X, что и реализовано при помощи блок схемы метода.
Описание блок-схемы метода задания № 2.
Блок-схема начинается с блока №1 <Начало>.
Блок №2 присвоение исходных значений переменным, применяемых в задании;
Блок №3 (модификация) – организация цикла с исходным и конечным значениями Х=2, Х=5 соответственно. Если условие производится, то осуществляется переход к блоку №4. По другому – к блоку №9 (конец программки).
Блок №4<ветвления> — начало проверки вхождения переменной X в данные интервалы, проверят X≤3,5. Если да – в блок № 6 (инициализация переменной Y значением cos2x), если нет — переход к блоку № 5 (инициализация переменной Y значением sin x*Ln x). Осуществляется переход к блоку №7.
Блок №7 – вывод значения Y.
Блок №8 – добавляет шаг к X :Х=Х+. Осуществляется переход к блоку №3, где определяется, лежит ли X в данном спектре либо нет. Если да, то повторить вычисления с блока №4. Если X вышел за данный интервал, окончить вычисления (переход к блоку №9).
Описание задания № 3.
В задании требуется организовать массив G(A,B) для данных и организовать обработку его частей согласно заданию. В итоге таковой обработки нужно вывести на экран сумму положительных либо отрицательных частей зависимо от введённых частей массива.
Описание блок-схемы метода задания № 3.
Блок-схема начинается с блока №1 <Начало>.
Блок №2: инициализация нулевыми значениями переменных L1 и L2, количество положительных и отрицательных частей соответственно и SUM1, SUM2 – сумма положительных и отрицательных частей, соответственно.
Блок №3: Ввод переменных А и В, определяющих размерность массива G(A,B).
Блок №4(модификация): осуществляется проверка условия 1<i<A. Если условие производится, то осуществляется переход к блоку №5. По другому – переход к блоку №7.
Блок №5(модификация): осуществляется проверка условия 1<j<В. Если условие производится, то осуществляется переход к блоку №6, где происходит ввод элемента G[i , j]. По другому – то осуществляется переход к блоку №4 с увеличенным значением переменной – счётчика кол-ва строк на единицу.
Блок №7(модификация): осуществляется проверка условия 1<i<A. Если условие производится, то осуществляется переход к блоку №8. По другому – переход к блоку №15(конец программки).
Блок №8(модификация): осуществляется проверка условия 1<j<В. Если условие производится, то осуществляется переход к блоку №9.
Блок №9: проверяется выполнение условия положительности элемента G[i , j]. Если условие производится, то осуществляется переход к блоку №11. По другому – переход к блоку №10.
Блок №10: повышение значения переменной L2 на единицу; добавление к переменной SUM2 значения элемента G[i , j]. Переход к блоку №12.
Блок №11: повышение значения переменной L1 на единицу; добавление к переменной SUM1 значения элемента G[i , j]. Переход к блоку №12.
Блок №12: сопоставление значений переменных L1 и L2. Если L1 > L2, то осуществляется переход к блоку №14. По другому осуществляется переход к блоку №13.
Блок №13: осуществляется вывод значения переменной SUM1. Переход к блоку №15.
Блок №14: осуществляется вывод значения переменной SUM2. Переход к блоку №15.
Алгоритмические языки высочайшего уровня.
программка – это набор машинных установок, которые следует выполнить компу для реализации того либо другого метода. Другими словами, программка – это форма представления метода для выполнения его машинкой. «Грамматические» правила языка программирования формулируются максимально верно и не допускают свободного расположения отдельных частей команды и символов препинания (по другому программка – посредник «не усвоит» наши указания). Любая команда имеет строго определенный синтаксис (правила записи). Команды на языке программирования нередко именуют операторами либо инструкциями. Последовательность таковых установок, реализуют тот либо другой метод, именуют программкой на начальном языке либо просто начальным текстом (листингом программки).
Есть два типа программ – посредников, работающих с начальными текстами:
программка – компилятор (от слова compile – составлять, собирать) переводит начальный текст в машинный код и записывает его на диск в форме исполняемого (загрузочного) файла. Опосля этого программка производится не зависимо от начального текста. Ранее программки–компиляторы назывались просто и буквально трансляторами (переводчиками).
программка – интерпретатор постоянно работает вместе с начальным текстом. Она разбирает каждую аннотацию начального текста (интерпретирует ее) и немедля исполняет (т.е. файл на машинного кода не создается). программка в режиме интерпретации работает еще медлительнее, чем таковая же программка в машинном коде. Это соединено с тем, что каждую аннотацию приходится разбирать во время выполнения (а не заблаговременно, как при компиляции). Почти все аннотации в программке производятся неоднократно, – и при любом выполнении интерпретируются поновой. Потому, везде, где может быть стремятся поменять режим интерпретации режимом компиляции.
Для рассматриваемых нами языков высочайшего уровня, ведущими фирмами, были написаны программки трансляторы, которые работают по компилирующему принципу. Для наиболее глубочайшего осознания базисных конструкций языков, коротко разглядим облегченную модель компилятора, показанную на рис. 1.
Рис. 1. Облегченная модель компилятора.
ЛЕКСИЧЕСКИЙ анализатор.
Начальная программка на языке высочайшего уровня (ЯВУ), представляет собой цепочку знаков, образуемую поочередным сцеплением всех строк программки. Посреди допустимых для языка знаков постоянно выделяют несколько, так именуемых,символов-разделителей, благодаря которым предложения начальной программки разбиваются на отдельные слова. Такие слова в теории компиляции именуютсялексемами. к примеру, предложение (оператор)
for i:=1 to n do Writeln(i) ;
будет разбито на лексемы
for, i, :=, 1, to, n, do, Writeln, (, i, ), ;.
тут в качестве разделителя употребляется знак «пробел». Но можно увидеть, что меж некими лексемами пробел не стоит. Это соединено с тем, что эти лексемы сами являются разделителями и потому для отделения их от остальных лексем особые символы-разделители употреблять не непременно, хотя и допустимо. к примеру, то же самое предложение без конфигурации смысла можно было бы записать так
fox i := 1 to n do Writeln ( i ) ;
СИНТАКСИЧЕСКИЙ анализатор.
Синтаксический анализатор на базе синтаксических правил грамматики языка инспектирует правильность записи предложений программы и переводит последовательность лексем в последовательность внутренних кодов компилятора. Эта последовательность уже отражает порядок действий, которые должен выполнить комп, но еще не является окончательным машинным кодом. В теории компиляции создано несколько разновидностей внутренних кодов компилятора (триады, тетрады, ПОЛИЗ, деревья, атрибутированные деревья, р-код), но их рассмотрение выходит за рамки облегченной модели.
генератор КОДА.
Генератор кода производит перевод внутреннего кода компилятора в окончательный машинный код компа.
ТАБЛИЦЫ.
В процессе работы все рассмотренные выше блоки компилятора обращаются к общему наборутаблиц, куда помещается как неизменная для трансляции всех программ информация (к примеру, таблица зарезервированных слов), так и информация, персональная для каждой прогр (к примеру, таблицы идентификаторов, литералов и др.).
Языки высочайшего уровня.
язык высочайшего уровня состоит из алфавита и главных слова, правил написания идентификаторов, также индивидуальности построения программ.
Алфавит языка.
Рассматриваемые нами языки программирования, имеют схожий алфавит — набор знаков, разрешенных к использованию и воспринимаемых компилятором. В алфавит языка входят:
Латинские строчные и строчные буковкы:
A,B,…,Z и a,b,…,z
Числа от 0 до 9.
знак подчеркивания «_» (код ASCII номер 95).
Из этих знаков (и лишь из их!) конструируются идентификаторы — имена типов, переменных, констант, процедур, функций и модулей, также меток переходов. имя может состоять из хоть какого числа вышеперечисленных знаков, но обязано начинаться с буковкы, либо знака «_» к примеру:
IX Char Var My_Int_Var C_Dd16_32m int _L
Строчные и строчные буковкы не различаются на языках Pascal и Delphi: идентификаторы FILENAME и filename — это одно и тоже. Но на языке С, С++ строчные и строчные буковкы различаются, потому приведенные идентификаторы – это два разных идентификатора. Длина имен формально не ограничена, но различаются в их – «только» 1-ые 32–63 знака (другие игнорируются [зависит от установок в компиляторе]).
знак «пробел» (код 32). Пробел является разделителем в языках. Если меж 2-мя знаками имени либо главного слова стоит пробел, то две буковкы будут считаться принадлежащими различным именам (словам). Пробелы отделяют главные слова от имен. Количество пробелов не является означающим. Там, где можно поставить один пробел, можно поставить их сколько угодно. к примеру, выражения
С=2+2; и С = 2 + 2 ; С:=2+2; С := 2+2;
для компиляторов эквивалентны.
Знаки с кодами ASCII от 0 до 31 (управляющие коды). Они могут участвовать в написании значений символьных и строчных констант. Некие из их (7,10,13,8,26) имеют особый смысл при проведении ряда операций с ними. Знаки, замыкающие строчку (коды 13 и 10), и знак табуляции (код 9) также могут быть разделителями:
С:=2+2;
эквивалентно построению
С := 2
+
2;
Особые знаки, участвующие в построении конструкций языка:
+-*/=<>[ ] .,():;-@ { } $ # ‘
Составные знаки, воспринимаемые как один знак:
<= >= := (* *) (. .) .. && != <>
Разделители (пробелы) меж элементами составных символов недопустимы.
Любой из языков программирования имеет огромное количество зарезервированных (либо главных) слов. Эти слова не могут быть применены в качестве имен (идентификаторов) в программке. Попытка нарушить этот запрет вызовет ошибку при обработке программки компилятором языка.
Программирование в среде компиляции Borland Pascal (BP).
Перейдем к рассмотрению программирования в среде Borland Pascal.
Написанная по правилам эталона языка программка будет иметь в собственном полном варианте структуру, показанную на рис. 2.
Регистр написания заголовков блоков непринципиален. Заглавие программки в Borland Pascal имеет чисто декоративное предназначение, как комментарий. Неотклонимая для почти всех остальных версий Паскаля конструкция
PROGRAM имя ( input, output, … )
тут не является нужной.
PROGRAM имя_программы;
USES
Перечень применяемых библиотек (модулей);
LABEL
Перечень меток в главном блоке программки;
CONST
Определение констант программ;
TYPE
Описание типов;
ОПРЕДЕЛЕНИЕ ПРОЦЕДУР (может быть заглавия);
BEGIN
тела процедур;
END;
ОПРЕДЕЛЕНИЕ ФУНКЦИЙ (может быть заглавия);
BEGIN
тела функций;
END;
BEGIN
Главный блок программки;
END.
Рис. 2.
Группа целых типов.
В Borland Pascal включены 5 типов для описания переменных и констант, представляющих целые числа. Их свойства приведены в таблице 1.
Таблица № 1.
Заглавие типа
Идентификатор
Спектр представления чисел
Размер памяти
Куцее целое со знаком
Shortint
-128..127
1 б
Целое со знаком
Integer
-32768..32767
2 б
Длинноватое целое со знаком
Longint
-2147483648.. 2147483647
4 б
Куцее целое без знака
Byte
0..255
1б
Целое без знака
Word
0..65535
2 б
Группа вещественных типов.
В группу вещественных типов входят 5 типов, показанных в таблице 2.
Таблица №2.
Заглавие типа Иденти-фикатор Спектр представления чисел
Значащие числа
мантиссы
Размер памяти
Вещественное одинарной точности
Single
от 1.5* 10–45
до 3.4* 1038
7..8
4 б
Вещественное
Real
от 2.9* 10–39
до 1.7* 1038
11..12
6 байтов
Вещественное двойной точности
Double
от 5.0* 10–324
до 1.7* 10308
15..16
8 байтов
Вещественное завышенной точности
Extended
от 3.4*10–4932
до 1.1*104932
19..20
10 байтов
Целое в формате вещественного
Comp
от – 263 + 1
до 263 – 1 либо примерно от -9.2* 1018
до 9.2* 1018
19..20
8 байтов
Функция function Factor_n (n:longint):longint; получает длинноватое целое и возвращает длинноватое целое в точку вызова.
В функции употребляется оператор цикла со счетчиком (с параметром) for. Оператор цикла со счетчиком, в Паскале, подступает для программирования лишь таковых повторяющихся фрагментов, в каких до выполнения цикла известны изначальное и конечное значения счетчика повторения цикла.
При вычислении факториала как раз и известны изначальное и конечное
В функции также употребляются две локальные переменные Il счетчик цикла, Rez итог вычисления факториала в цикле, это применяется поэтому что имя функции выступающее тут переменной не может в теле функции появляться в правой части присвоения.
Функция function Pow (R:Real;N:integer):Real; Получает вещественное число возведения в степень R, степень возведения N целое число, и возвращает вещественное число Real.
Потому что в Borland Pascal нет функции–оператора возведения в степень больше 2х то используя эту функцию можно получить вещественное число в степени большей 2-ух без утраты знака.
Для вычисления степени употребляется выражение для проверки знака употребляется условный оператор if .
ОСНОВЫ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ
Программирование в Delphi строится на тесноватом содействии 2-ух действий: процесса конструирования зрительного проявления программки (т. е. ее Windows-окна) и процесса написания кода, придающего элементам этого окна и программке в целом нужную функциональность. Для написания кода употребляется окно кода, для конструирования программки — другие окна Delphi, и до этого всего — окно формы.
Меж содержимым окон формы и кода существует неразрывная ;вязь, которая строго отслеживается Delphi. Это значит, что размещение на форме компонента приводит к автоматическому изменению кода программки и напротив — удаление тех либо других автоматом вставленных фрагментов кода может привести к удалению соответственных компонент. Помня о этом, программеры сначала конструируют форму, размещая на ней очередной компонент, а уже лишь опосля этого перебегают, если это нужно, к писанию фрагмента кода, обеспечивающего требуемое человек делает кaкую-либо рaботу. Объектно-ориентировaнное прогрaммировaние — результaт естественной эволюции наиболее рaнних методологий прогрaммировaния: оно наиболее структурировaно и наиболее модульное и aбстрaктное,
чем трaдиционное прогрaммировaние.
объект — это абстрактная суть, наделенная чертами объектов окружающего нас настоящего мира. Создание объектов и манипулирование ими — это совсем не преимущество языка C++, а быстрее итог методологии программирования, воплощающей в кодовых системах описания объектов и операции над ними. Любой объект программки, как и хоть какой настоящий объект, различается своими атрибутами и соответствующим поведением.
Объектно-ориентированное программирование (ООП) — это методика, которая концентрирует основное внимание программера на связях меж объектами, а не на деталях их реализации.
Три главных характеристики хaрaктеризуют язык объектно-ориентированного прогрaммировaния:
Инкапсуляция
Инкапсуляция есть объединение в едином объекте данных и кодов, оперирующих с этими данными. В терминологии ООП данные именуются членами данных (data members) объекта, а коды — объектными способами либо функциями-членами (methods, member functions).
Инкапсуляция дозволяет в наибольшей степени изолировать объект от наружного окружения. Она значительно увеличивает надежность разрабатываемых программ, т.к. локализованные в объекте функции обмениваются с программкой сравнимо маленькими размерами данных, при этом количество и тип этих данных обычно кропотливо контролируются. В итоге подмена либо модификация функций и данных, инкапсулированных в объект, обычно, не тянет за собой плохо прослеживаемых последствий для программки в целом (в целях увеличения защищенности программ в ООП практически не употребляются глобальные переменные).
Остальным важным следствием инкапсуляции является легкость обмена объектами, переноса их из одной программки в другую.
Наследование
Одной из самых замечательных особенностей жив природы является ее способность порождать потомство, владеющее чертами, схожими с чертами предшествующего поколения. Взятая у природы мысль наследования решает делему модификации поведения объектов и присваивает ООП исключительную силу и упругость. Наследование дозволяет, фактически без ограничений, поочередно строить и расширять классы, сделанные вами либо кем-то еще. Начиная с самых обычных классов, можно создавать производные классы по растущей трудности, которые не только лишь легки в отладке, да и ординарны по внутренней структуре.
Последовательное проведение в жизнь принципа наследования, в особенности при разработке больших программных проектов, отлично согласуется с техникой нисходящего структурного программирования (от общего к личному), и почти во всем провоцирует таковой подход. При всем этом сложность кода программки в целом значительно сокращается. Производный класс (потомок) наследует все характеристики, способы и действия собственного базисного класса (родителя) и всех его предшественников в иерархии классов.
При наследовании базисный класс зарастает новенькими атрибутами и операциями. В производном классе обычно объявляются новейшие члены данных, характеристики и способы. При работе с объектами программер обычно подбирает более пригодный класс для решения определенной задачки и делает 1-го либо нескольких потомков от него, которые получают способность созодать не только лишь то, что заложено в родителе. Дружеские функции разрешают производному классу получить доступ ко всем членам данных наружных классов.
Полиморфизм
Это придaвaние действию 1-го имени, которое вместе употребляется объектами всей иерархии, при этом любой объект иерархии реализует это действие своим своим, пригодным для него, образом.
Языковые расширения Turbo Pascal 5.5 дают Для вас возможность стопроцентно употреблять все массивные средства объектно-ориентированного прогрaммировaния: завышенная структурированность, завышенная модульность и aбстрaкция, a также возможность неоднократного использования, интегрированные прямо в язык прогрaммировaния. Все эти характеристики делают программку наиболее структурированной, просто поддерживаемой и просто расширяемой.
Новизна ООР зaключaется в том, что оно время от времени зaстaвляет Вас откинуть знакомые привычки и стaндaртные методы мышления, которые в течение почти всех лет использовались в классическом прогрaммировaнии. Если Вы можете это сделaть, ООР стaнет для Вaс обычной, незaмысловaтой методологией прогрaммировaния, превосходящей трaдиционную методологию прогрaммировaния, и неподменной для решения почти всех зaдaч по созданию программного обеспечения.
приложение №1
Блок-схемы алгоритмов
Задание №1
Задание №2
Задание№3
приложение №2
Листинги программ и итог работы
Задание №1 Turbo C++ IDE
#include<iostream.h>
#include<math.h>
#include<conio.h>
void main()
{
int n=1;
double e,x,r,z;
clrscr();
cout<<«Input X:t»;
cin>>x;
cout<<«Input E:t»;
cin>>e;
z=1+x;
if (1>e)
{
if (fabs(x)>e)
{
r=x;
while (fabs(r)>e)
{
z+=r; n++; r*=x/n;
}
cout<<«Z= tt»<<z<<endl;
}
else
cout<<«Z=tt1″<<endl;
}
else
cout<<«nОшибка ввода: E>1″<<endl;
}
Задание №1 Turbo Pascal
Program lab_1;
Uses Crt;
Var
n:integer;
e,x,r,z:real;
Begin
clrscr;
n:=1;
Write(‘Input E:’);Readln(e);
Write(‘Input X:’);Readln(x);
z:=1.0+x;
if 1.0>e then
begin
if абс(x)>e then
begin
r:=x;
while абс(r)>e do
begin
z:=z+r;
n:=n+1;
r:=r*(x/n);
end;
writeln(‘Summa=’,z:3:5);
end
else writeln(‘Z=1’);
end
else writeln(‘Ошибка ввода: E>1 !’);
readln;
End.
Задание №1 Borland Delphi 5
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
e,x,r,z:real;
n:integer;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
Code:integer;
s: string[11];
begin
n:=1;
val(Edit1.Text,e,Code);
val(Edit2.Text,x,Code);
z:=1+x;
if 1>e then
begin
if Абс(x)>e then
begin
r:=x;
while Абс(r)>e do
begin
z:=z+r; n:=n+1; r:=r*(x/n);
end;
Str(z:2:7,s);Edit3.Text:=s;
end
else Edit3.Text:=’Z=1′;
end
else Edit3.Text:=’Warning! E>1′;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close();
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Edit1.Text:=»;
Edit2.Text:=»;
Edit3.Text:=»;
end;
end.
Задание №2 Turbo C++ IDE
#include<iostream.h>
#include<math.h>
void main()
{
float dx=0.25,y,x;
for (x=2.0;x<=5.0 +0.5*dx;x+=dx)
{
if (x<=3.5)
y=cos(x)*cos(x);
else
y=sin(x)*log(x);
cout<<«Y= «<<y<<endl;
}
}
Задание №2 Turbo Pascal
Program lab_2;
Uses Crt;
Const
dx=0.25;
Var
x,y:real;
Begin
clrscr;
x:=2.0;
while x<5.0+dx/2 do
begin
if x<=3.5 then
begin
y:=sqr(cos(x));
end
else y:=sin(x)*ln(x);
writeln(y:3:5);
x:=x+dx;
end;
readln;
End.
Задание №2 Borland Delphi 5
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Const
dx=0.25;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button2Click(Sender: TObject);
begin
Close();
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Code:integer;
x,y:real;
s:string[11];
begin
x:=2.0;
while (x<5.0+0.5*dx) do
begin
if x<=3.5 then y:=sqr(cos(x))
else y:=sin(x)*ln(x);
x:=x+dx;
Str(y:2:7,s);
Listbox1.Items.Add(s);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Listbox1.Items.Clear;
end;
end.
Задание №3 Turbo C++ IDE
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
int main()
{
int l1=0,l2=0,i,j,a,b;
float G[10][10],sum1=0,sum2=0;
clrscr();
cout<<«Input A and B: «;
cin>>a;
cin>>b;
for (i=1;i<=a;i++)
for (j=1;j<=b;j++)
{
cout<<«G[«<<i<<