Реферат по предмету "Программирование и компьютеры"


Построение блок схем алгоритмов. Алгоритмические языки высокого уровня

Содержание
Введение Построение блок – схем алгоритмов
Алгоритмические языки высокого уровня 1. Программирование в среде Borland Pascal 2. Основы визуального программирование в среде Delphi 3. Объектно – ориентированное программирование и С++ Приложение 1 Приложение 2 Список используемой литературы Введение Алгоритм – это однозначная конечная последовательность точно определенных шагов или действий которые обеспечивают решение задачи при наличии исходных данных за конечный промежуток времени. Это процедура поиска решения задачи, однозначно представляющая как и в какой последовательности выполнять действия. Любой алгоритм предполагает исполнителя. При решении задач с помощью компьютера, исполнителем является компьютер. Алгоритмические языки – это основное направление в современной разработке компьютерных программ. Алгоритмические языки основываются на разработке алгоритма. Современные языки в своем развитии алгоритмизации переходят на следующий уровень, а именно объектно-ориентированное программирование. Объектно-ориентированная парадигма предлагает новый подход к разработке программного обеспечения, предназначенного для решения задач различных классов. Фундаментальная концепция объектно-ориентированной парадигмы состоит в передачи сообщений объектам. Существует пять компонентов объектно-ориентированной парадигмы: объект, сообщение, класс, наследование и метод. В данном курсовом проекте рассмотрены следующие алгоритмические языки: þ Borland Pascal, þ C++, þ Borland Delphi. Все эти языки, на современном этапе, являются также языками объектно-ориентированными. Основная цель работы – освоитьна практикеэтапыразработки ПАСКАЛЬ-программ, С++-программ и Delphi–программ для решения вычислительныхзадачи на ЭВМ. В данном курсовом проекте необходимо было решить следующие задачи: 1. Даны X и E. Вычислить значение функции . Вычисления закончить, когда модуль последнего просуммированного члена ряда станет меньше Е. 2. Вычислить таблицу значений функции при изменении аргумента в заданном интервале с равномерным шагом: x>3,5 x≤3,5 xg[2;5] ∆x=0,25 3. Задана матрица G(A,B). Найти в ней количество L1 отрицательных и количество L2 положительных элементов. Если L1>L2, то найти сумму отрицательных элементов. В противном случае найти сумму положительных элементов.
Построения блок–схем алгоритмов программ. Алгоритм – это однозначная конечная последовательность точно определенных шагов или действий которые обеспечивают решение задачи при наличии исходных данных за конечный промежуток времени. Основные свойства алгоритма: 1. Массовость – алгоритм должен быть применим для целого класса однотипных задач – ; 2. Конечность – алгоритм должен состоять из конечного числа шагов, каждый из которых выполняется за конечный промежуток времени. 3. Результативность – по окончании работы алгоритма должен быть получен некоторый результат. 4. Однозначность – применение алгоритма к одним и тем же исходным данным всегда должно давать один и тот же результат. 5. Правильность – при применении алгоритма к правильным исходным данным или допустимым исходным данным должно приводить к получению необходимых результатов. Доказательство правильности алгоритма – один из наиболее трудных этапов его создания. Наиболее распространенная процедура правильности алгоритма – это обоснование правомерности и проверка правильности выполнения каждого из шагов на наборе тестов, подобранных так, чтобы охватить все допустимые входные данные и все допустимые выходные данные. 6. Эффективность – алгоритм должен обеспечивать решение задачи за минимальный промежуток времени с минимальными затратами памяти. Для оценки алгоритмов существует много критериев. Чаще всего оценка алгоритма состоит в оценке временных затрат на решение задачи в зависимости от «размера» исходных данных. Используется также термин, временная способность и «трудоемкость алгоритма». Фактически эта оценка сводится к оценке количества основных операций, выполняемых алгоритмами, поскольку каждая конкретная операция выполняется за конечное заранее известное время. Алгоритм решения задачи получается более эффективным, если ис­пользовать метод пошаговой разработки, суть которого заключается в том, что алгоритм разрабатывается «сверху вниз». Вначале определяется общий подход к решению задачи, затем выделяются отдельные самостоя­тельные части, которые выполняют какую-то конечную обработку данных. Каждая из выделенных частей в свою очередь может разбиваться на от­дельные части. Такой подход позволяет разбить алгоритм на части (моду­ли), каждая из которых решает самостоятельную подзадачу. Каждый из модулей реализуется в виде отдельной процедуру или функции. Тогда ре­шение задачи состоит из последовательного вызова процедур. Программа, реализующая такой алгоритм, называется структурированной программой. Построенные блок-схемы алгоритмов заданий приведены в приложении. Описание задания № 1. В задании требуется организовать начальную проверку Е после ввода. Организовать проверку на окончание выполнения программы по условию, если модуль последнего просуммированного члена ряда станет меньше Е. Если условие не выполняется организовать цикл, вычисления очередного члена ряда и общей суммы ряда до выполнения условия. Описание блок–схемы алгоритма для задания № 1. Блок схема начинается с блока №1 . 1. Следующий блок№2 – это инициализация данных для работы программы по умолчанию. Переменная n – номер члена ряда: начальное значение =1. 2. Блок №3 значений Е, Х. 3. Блок №4: инициализация вспомогательной переменной Z значением Z=X+1. 4. Блок №5 проверяет значение переменной Е на корректность согласно условию Е5. Блок №6 проверяет значение модуля второго члена ряда Х на условие |Х|> E. Если условие выполняется, то осуществляется переход к блоку №8 (инициализация переменной R значением Х). Иначе – к блоку №7 (вывод суммы Z=1).
6. Блок №10 (модификация) – проверка условия |R|>E. Если условие выполняется, то осуществляется переход к блоку №11 (инициализация переменных Z, n, R). Иначе осуществляется переход к блоку №12 (вывод результата Z). 7. Блок №13 – конец программы. Описание задания № 2.
В задании требуется организовать цикл вычисления Y в заданном интервале X при равномерном изменении его на заданный шаг ∆x. Произвести проверку X для вычисления по выражению в заданном диапазоне значений переменной X, что и реализовано с помощью блок схемы алгоритма. Описание блок-схемы алгоритма задания № 2. Блок-схема начинается с блока №1 . 1. Блок №2 присвоение начальных значений переменным, используемых в задании; 2. Блок №3 (модификация) – организация цикла с начальным и конечным значениями Х=2, Х=5 соответственно. Если условие выполняется, то осуществляется переход к блоку №4. Иначе – к блоку №9 (конец программы). 3. Блок №4 - начало проверки вхождения переменной X в заданные интервалы, проверят X≤3,5. Если да – в блок № 6 (инициализация переменной Y значением cos2x), если нет - переход к блоку № 5 (инициализация переменной Y значением sin x*Ln x). Осуществляется переход к блоку №7. 4. Блок №7 – вывод значения Y. 5. Блок №8 – добавляет шаг к X :Х=Х+. Осуществляется переход к блоку №3, где определяется, лежит ли X в заданном диапазоне или нет. Если да, то повторить вычисления с блока №4. Если X вышел за заданный интервал, закончить вычисления (переход к блоку №9). Описание задания № 3. В задании требуется организовать массив G(A,B) для данных и организовать обработку его элементов согласно заданию. В результате такой обработки необходимо вывести на экран сумму положительных или отрицательных элементов в зависимости от введённых элементов массива. Описание блок-схемы алгоритма задания № 3. Блок-схема начинается с блока №1 . 1. Блок №2: инициализация нулевыми значениями переменных L1 и L2, количество положительных и отрицательных элементов соответственно и SUM1, SUM2 – сумма положительных и отрицательных элементов, соответственно. 2. Блок №3: Ввод переменных А и В, определяющих размерность массива G(A,B). 3. Блок №4(модификация): осуществляется проверка условия 14. Блок №5(модификация): осуществляется проверка условия 15. Блок №7(модификация): осуществляется проверка условия 16. Блок №8(модификация): осуществляется проверка условия 17. Блок №9: проверяется выполнение условия положительности элемента G[i , j]. Если условие выполняется, то осуществляется переход к блоку №11. Иначе – переход к блоку №10. 8. Блок №10: увеличение значения переменной L2 на единицу; добавление к переменной SUM2 значения элемента G[i , j]. Переход к блоку №12. 9. Блок №11: увеличение значения переменной L1 на единицу; добавление к переменной SUM1 значения элемента G[i , j]. Переход к блоку №12. 10. Блок №12: сравнение значений переменных L1 и L2. Если L1 > L2, то осуществляется переход к блоку №14. Иначе осуществляется переход к блоку №13. 11. Блок №13: осуществляется вывод значения переменной SUM1. Переход к блоку №15. 12. Блок №14: осуществляется вывод значения переменной SUM2. Переход к блоку №15. Алгоритмические языки высокого уровня. Программа – это набор машинных команд, которые следует выполнить компьютеру для реализации того или иного алгоритма. Иными словами, программа – это форма представления алгоритма для исполнения его машиной. «Грамматические» правила языка программирования формулируются предельно четко и не допускают вольного расположения отдельных элементов команды и знаков препинания (иначе программа – посредник «не поймет» наши указания). Каждая команда имеет строго определенный синтаксис (правила записи). Команды на языке программирования часто называют операторами или инструкциями. Последовательность таких команд, реализуют тот или иной алгоритм, называют программой на исходном языке или просто исходным текстом (листингом программы). Существуют два типа программ – посредников, работающих с исходными текстами: a) Программа – компилятор (от слова compile – составлять, собирать) переводит исходный текст в машинный код и записывает его на диск в форме исполняемого (загрузочного) файла. После этого программа выполняется не зависимо от исходного текста. Раньше программы–компиляторы назывались просто и точно трансляторами (переводчиками). b) Программа – интерпретатор всегда работает совместно с исходным текстом. Она разбирает каждую инструкцию исходного текста (интерпретирует ее) и немедленно исполняет (т.е. файл на машинного кода не создается). Программа в режиме интерпретации работает гораздо медленнее, чем такая же программа в машинном коде. Это связано с тем, что каждую инструкцию приходится разбирать во время выполнения (а не заранее, как при компиляции). Многие инструкции в программе выполняются многократно, – и при каждом выполнении интерпретируются заново. Поэтому, всюду, где возможно стремятся заменить режим интерпретации режимом компиляции. Для рассматриваемых нами языков высокого уровня, ведущими фирмами, были написаны программы трансляторы, которые работают по компилирующему принципу. Для более глубокого понимания базовых конструкций языков, кратко рассмотрим упрощенную модель компилятора, показанную на рис. 1. Рис. 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 ) ; 2. СИНТАКСИЧЕСКИЙ АНАЛИЗАТОР. Синтаксический анализатор на основе синтаксических правил грамматики языка проверяет корректность записи предложений програм­мы и переводит последовательность лексем в последовательность внут­ренних кодов компилятора. Эта последовательность уже отражает порядок действий, которые должен выполнить компьютер, но еще не является окончательным машинным кодом. В теории компиляции разработано не­сколько разновидностей внутренних кодов компилятора (триады, тетра­ды, ПОЛИЗ, деревья, атрибутированные деревья, р-код), однако их рас­смотрение выходит за рамки упрощенной модели.
3. ГЕНЕРАТОР КОДА. Генератор кода осуществляет перевод внутреннего кода компиля­тора в окончательный машинный код компьютера. 4. ТАБЛИЦЫ. В процессе работы все рассмотренные выше блоки компилятора обращаются к общему набору таблиц, куда помещается как постоянная для трансляции всех программ информация (например, таблица зарезер­вированных слов), так и информация, индивидуальная для каждой про­граммы (например, таблицы идентификаторов, литералов и др.). Языки высокого уровня. Язык высокого уровня состоит из алфавита и ключевых слова, правил написания идентификаторов, а также особенности построе­ния программ. Алфавит языка. Рассматриваемые нами языки программирования, имеют сходный алфавит — набор символов, разрешенных к использова­нию и воспринимаемых компилятором. В алфавит языка входят: 1. Латинские строчные и прописные буквы: A,B,…,Z и a,b,…,z 2. Цифры от 0 до 9. 3. Символ подчеркивания «_» (код ASCII номер 95). Из этих символов (и только из них!) конструируются идентифика­торы — имена типов, переменных, констант, процедур, функций и модулей, а также меток переходов. Имя может состоять из любого числа перечисленных выше символов, но должно начинаться с буквы, или символа «_» например: IX Char Var My_Int_Var C_Dd16_32m int _L 4. Прописные и строчные буквы не различаются на языках Pascal и Delphi: идентифи­каторы FILENAME и filename — это одно и тоже. Но на языке С, С++ прописные и строчные буквы различаются, поэтому приведенные идентификаторы – это два различных идентификатора. Длина имен формально не ограничена, но различаются в них – «лишь» первые 32–63 символа (остальные игнорируются [зависит от установок в компиляторе]). 5. Символ «пробел» (код 32). Пробел является разделителем в языках. Если между двумя буквами имени или ключевого слова стоит пробел, то две буквы будут считаться принад­лежащими разным именам (словам). Пробелы отделяют ключевые слова от имен. Количество пробелов не является значащим. Там, где можно поставить один пробел, можно поставить их сколько угодно. Например, выражения С=2+2; и С = 2 + 2 ; С:=2+2; С := 2+2; для компиляторов эквивалентны. 6. Символы с кодами ASCII от 0 до 31 (управляющие коды). Они могут участвовать в написании значений символьных и строчных констант. Некоторые из них (7,10,13,8,26) имеют специальный смысл при проведении ряда операций с ними. Символы, замыкающие строку (коды 13 и 10), и символ табуляции (код 9) также могут быть разделителя­ми: С:=2+2; эквивалентно построению С := 2 + 2; 7. Специальные символы, участвующие в построении кон­струкций языка: +-*/=[ ] .,():;-@ { } $ # ' 8. Составные символы, воспринимаемые как один символ: = := (* *) (. .) && != \\ Разделители (пробелы) между элементами составных сим­волов недопустимы. Каждый из языков программирования имеет большое количество зарезервированных (или ключевых) слов. Эти слова не могут быть использованы в качестве имен (идентификаторов) в программе. Попытка нарушить этот запрет вызовет ошибку при обработке программы компилятором языка. Программирование в среде компиляции 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 включены пять типов для описания переменных и констант, представляющих целые числа. Их характеристики приведены в таблице 1. Таблица № 1. Название типа Идентифика­тор Диапазон представления чисел Размер памяти Короткое целое со знаком Shortint -128 127 1 байт Целое со знаком Integer -32768 32767 2 байта Длинное целое со знаком Longint -2147483648 2147483647 4 байта Короткое целое без знака Byte 0 255 1байт Целое без знака Word 0 65535 2 байта Группа вещественных типов. В группу вещественных типов входят пять типов, показанных в таблице 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х то используя эту функцию можно получить вещественное число в степени большей двух без потери знака. Для вычисления степени используется выражение для проверки знака используется условный оператор if . ОСНОВЫ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ Программирование в Delphi строится на тесном взаимодействии двух процессов: процесса конструирования визуального проявления программы (т. е. ее Windows-окна) и процесса написания кода, придающего элементам этого окна и программе в целом необходимую функциональность. Для написания кода используется окно кода, для конструирования программы - остальные окна Delphi, и прежде всего - окно формы. Между содержимым окон формы и кода существует неразрывная ;вязь, которая строго отслеживается Delphi. Это означает, что размещение на форме компонента приводит к автоматическому изменению кода программы и наоборот - удаление тех или иных автоматически вставленных фрагментов кода может привести к удалению соответствующих компонентов. Помня об этом, программисты вначале конструируют форму, размещая на ней очередной компонент, а уже только после этого переходят, если это необходимо, к писанию фрагмента кода, обеспечивающего требуемое поведение компонента в работающей программе. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ И C++ Объектно-ориентировaнное прогрaммировaние (сокрaщенно ООР) является методом прогрaмировaния, имитирующим то, кaк человек выполняет к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). Инкапсуляция позволяет в максимальной степени изолировать объект от внешнего окружения. Она существенно повышает надежность разрабатываемых программ, т.к. локализованные в объекте функции обмениваются с программой сравнительно небольшими объемами данных, причем количество и тип этих данных обычно тщательно контролируются. В результате замена или модификация функций и данных, инкапсулированных в объект, как правило, не влечет за собой плохо прослеживаемых последствий для программы в целом (в целях повышения защищенности программ в ООП почти не используются глобальные переменные). Другим немаловажным следствием инкапсуляции является легкость обмена объектами, переноса их из одной программы в другую. Наследование Одной из самых восхитительных особенностей живой природы является ее способность порождать потомство, обладающее характеристиками, сходными с характеристиками предыдущего поколения. Заимствованная у природы идея наследования решает проблему модификации поведения объектов и придает ООП исключительную силу и гибкость. Наследование позволяет, практически без ограничений, последовательно строить и расширять классы, созданные вами или кем-то еще. Начиная с самых простых классов, можно создавать производные классы по возрастающей сложности, которые не только легки в отладке, но и просты по внутренней структуре. Последовательное проведение в жизнь принципа наследования, особенно при разработке крупных программных проектов, хорошо согласуется с техникой нисходящего структурного программирования (от общего к частному), и во многом стимулирует такой подход. При этом сложность кода программы в целом существенно сокращается. Производный класс (потомок) наследует все свойства, методы и события своего базового класса (родителя) и всех его предшественников в иерархии классов. При наследовании базовый класс обрастает новыми атрибутами и операциями. В производном классе обычно объявляются новые члены данных, свойства и методы. При работе с объектами программист обычно подбирает наиболее подходящий класс для решения конкретной задачи и создает одного или нескольких потомков от него, которые приобретают способность делать не только то, что заложено в родителе. Дружественные функции позволяют производному классу получить доступ ко всем членам данных внешних классов. ПолиморфизмЭто придaвaние действию одного имени, которое совместно используется объектами всей иерархии, причем каждый объект иерархии реализует это действие своим собственным, подходящим для него, образом.Языковые расширения 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 #include #include void main() { int n=1; double e,x,r,z; clrscr(); cout cin>>x; cout 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 } else cout } else cout1"} Задание №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 abs(x)>e then begin r:=x; while abs(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 Abs(x)>e then begin r:=x; while Abs(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 #include void main() { float dx=0.25,y,x; for (x=2.0;x { if (x y=cos(x)*cos(x); else y=sin(x)*log(x); cout } } Задание №2 Turbo Pascal Program lab_2; Uses Crt; Const dx=0.25; Var x,y:real; Begin clrscr; x:=2.0; while x begin if x 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 begin if 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 #include #include int main() {
int l1=0,l2=0,i,j,a,b; float G[10][10],sum1=0,sum2=0; clrscr(); cout cin>>a; cin>>b; for (i=1;i for (j=1;j { cout cin>>G[i][j]; } for (i=1;i for (j=1;j { if (G[i][j]>=0.0) { l1+=1;sum1+=G[i][j]; } else { l2+=1;sum2+=G[i][j]; } } if (l1>l2) cout if (l1 if (l1==l2) cout getch(); return 0; } Задание №3 Turbo Pascal Program lab_3; Uses Crt; Var g:array[1 100,1 100] of real; l1,l2,i,j,a,b:integer; sum1,sum2:real; Begin clrscr; l1:=0;l2:=0;sum1:=0;sum2:=0; write('Input a: '); readln(a); write('Input b: '); readln(b); for i:=1 to a do begin for j:=1 to b do begin write('Input G[',i,',',j,']:');readln(g[i,j]); end; writeln; end; for i:=1 to a do begin for j:=1 to b do begin if g[i,j]>=0.0 then begin l1:=l1+1;sum1:=sum1+g[i,j]; end else begin l2:=l2+1;sum2:=sum2+g[i,j]; end; end; end; if l1>l2 then write('Z+ =',sum1:3:5); if l1 if l1=l2 then write('l1=l2'); readln; End. Задание №3 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; Button3: TButton; Button4: TButton; ListBox1: TListBox; Button5: TButton; procedure FormCreate(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button5Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; i,j,m,n:integer; g:array[1 100,1 100] of real; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin i:=1; j:=1; {FormCreate} m:=1; n:=0; end; procedure TForm1.Button3Click(Sender: TObject); begin i:=i+1; j:=1; {NEXT} m:=m+1; n:=0; Listbox1.Items.Add(''); end; procedure TForm1.Button2Click(Sender: TObject); begin Listbox1.Items.Add(Edit1.Text); g[i,j]:=StrToFloat(Edit1.Text); j:=j+1; n:=n+1; {ADD} Edit1.Text:=''; end; procedure TForm1.Button4Click(Sender: TObject); var l1,l2:integer; sum1,sum2:real; s:string; begin l1:=0;l2:=0;sum1:=0.0;sum2:=0.0; for i:=1 to m do {CALC} for j:=1 to n do begin if g[i,j]>=0.0 then begin sum1:=sum1+g[i,j]; l1:=l1+1; end; if g[i,j] begin sum2:=sum2+g[i,j]; l2:=l2+1; end; end; if l1>l2 then begin str(sum1:3:5,s); Edit2.Text:=s; end; if l1 begin str(sum2:3:5,s); Edit2.Text:=s; end; if l1=l2 then Edit2.Text:=' "+" = "-" '; end; procedure TForm1.Button1Click(Sender: TObject); begin Close(); end; procedure TForm1.Button5Click(Sender: TObject); var sum1,sum2:real; begin Edit1.Text:=''; Edit2.Text:=''; {CLEAR} Listbox1.Clear; sum1:=0.0; sum2:=0.0; i:=1;j:=1;m:=1;n:=0; end; end. Список используемой литературы: 1 Джесс Либерти. Освой самостоятельно С++ за 21 день. М, Вильямс, 2001 2 Конспект лекций по курсам «Системное программирование», «Алгоритмические языки». 3 Г.С. Прокудин, Л.М. Оленина. Компьютерная техника и программирование. Часть 2. Алгоритмизация и программирование. Издательство Украинско-финского института менеджмента и бизнеса. Киев, 1998, 56. 4 В.И. Пономарёва. Практикум по программированию в среде Turbo Pascal. Симферополь, Таврида, 1998, 256. 5 Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++. Харьков, Фолио, 2002, 500.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

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

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.