ОГЛАВЛЕНИЕ Введение 1. Анализ существующих методов решения задачи 2. Детальное описание используемых методов 3. Описание программы 3.1 Постановка задачи 3.2 Интерфейс пользователя 3.3 Детальное описание основной функции 3.4 Детальное описание функции ChartoInt 3.5 Детальное описание функции Scobka 3.6 Детальное описание функции Sumin 3.7 Общая структура программного средства 4. Блок схема программы 4.1 Основная блок схема 4.2 Блок схема функции ChartoInt 4.3 Блок схема функции Sumin 4.4 Блок схема функции Scobka 5. Заключение 6. Программная поддержка 7. Список литературы 8. Приложение 1 9. Приложение 2 Введение Язык "C" является универсальным языком программирования. Язык "C" - это язык относительно "низкого уровня". Это означает, что "C" имеет дело с объектами того же вида, что и большинство ЭВМ, а именно, с символами, числами и адресами. Они могут объединяться и пересылаться посредством обычных арифметических и логических операций, осуществляемых реальными ЭВМ. В языке "C" отсутствуют операции, имеющие дело непосредственно с составными объектами, такими как строки символов, множества, списки или с массивами, рассматриваемыми как целое. Язык не предоставляет никаких других возможностей распределения памяти, кроме статического определения и механизма стеков, обеспечиваемого локальными переменных функций; здесь нет ни "куч"(heap), ни "сборки мусора". Наконец, сам по себе "C" не обеспечивает никаких возможностей ввода-вывода: здесь нет операторов read или write и никаких встроенных методов доступа к файлам. Все эти механизмы высокого уровня должны обеспечиваться явно вызываемыми функциями. Аналогично, язык "C" предлагает только простые, последовательные конструкции потоков управления: проверки, циклы, группирование и подпрограммы, но не мультипрограммирование, параллельные операции, синхронизацию или сопрограммы. Язык "C" не является языком со строгими типами в смысле паскаля. Наконец, язык "C", подобно любому другому языку, имеет свои недостатки. Некоторые операции имеют неудачное старшинство; некоторые разделы синтаксиса могли бы быть лучше; существует несколько версий языка, отличающихся небольшими деталями. Тем не менее, язык "C" зарекомендовал себя как исключительно эффективный и выразительный язык для широкого разнообразия применений программирования. [1] Одной из главных причин, лежащих в основе появления языков программирования "высокого уровня", явились вычислительные задачи, требующие больших объёмов рутинных вычислений. Поэтому к языкам программирования предъявлялись требования максимального приближения формы записи вычислений к естественному языку математики. В этой связи одной из первых областей системного программирования сформировалось исследование способов трансляции выражений. Наибольшее распространение получил метод трансляции с помощью обратной пользовательской записи. [4] Методы решения задачи использования обратной пользовательской записи детально рассмотрены в данной курсовой работе. 1. Анализ существующих методов решения задачи Существует множество решений данной задачи. На данный момент нам известно 3 метода решения задачи. 1 – с использованием стека, 2 - это, так называемое двойное использование стека, 3 - метод использование массивов. Для сравнения приведу один из примеров использования стека для решения данной задачи:
Очевидно, что одним из недостатков данного метода является сложность использования методов, которые без преувеличения можно назвать устаревшими. Так как сегодня стек используется при помощи классов. Рассмотрим пример использования стека при помощи классов: class Stek { int something; public: Stek(); // конструктор ~Stek(); // деструктор void pop (int); // поместить int push(void); // вытащить void print(); // распечатать } Использование стека эффективно вследствии того, что в ассемблере не эффективно использовались массивы и имеются регистры стека: ss – сегментный регистр стека, sp / esp – регистр указателя стека, bd / ebd – регистр указателя базы кадра стека, Следовательно, реализация массивов через стек была очень эффективна. Теперь же эта проблема не критична для разработки программ, так как производительность ЭВМ велика. В С++ "свободно" используются массивы. В языках "среднего" и "высокого" уровня использование стека не принесёт значимого ускорения, а даже может замедлить выполнение программы. Вследствии того, что поддежка реализация стека на аппаратном уровне в языке Си ++ отсутствует, команды pop и push реализуются через функции или классы(см. пример использования стека при помощи классов).[6] К тому же использование массивов более удобно, чем использования стека, а так же легко переносимо на другие языки программирования и довольно просто для понимания.
2. Детальное описание используемых методов Рассмотрим детальное описание используемых методов на примере задачи реализации калькулятора при помощи метода обратной пользовательской записи. В программе вводится строка символов Пример: (1+1)/2+12/(8/2)= Программе необходимо оценить состав строки. Это реализуется через различные циклы, которые определяют, является ли i-символ цифрой или знаком, затем скомпоновывают цифры в числа и конечным результатом этих действий, являются 2 массива. Пример: Далее программа должна распознать все выражения в скобках и преобразовать их в числовое значение. Пример: …+(1+2/2)/… -…+2/… Для решения данной задачи, необходимо использовать сдвиги (детально описано в разделе 3.5) Когда же все скобки будут преобразованы в числовые значения, программа начинает преобразовывать все выражения "*" - умножение, затем "/" - деление, затем "+" - сложение и, наконец "-" – вычитание в числовые значения. Пример: И в конце программа выдаёт ответ. Детально работа функций описана в следующем разделе.
Курсовые работы по информатикеОГЛАВЛЕНИЕ Введение 1. Анализ существующих методов решения задачи 2. Детальное описание используемых методов 3. Описание программы 3.1 Постановка
Оценок: 353 (Средняя 5 из 5)
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.