Технология решения задачи на компьютере



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

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

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

Спецификациями называют полное н точное описание функций (действий) и ограничений разрабатываемого программного продукта.

Этан постановки задачи заканчивается разработкой технического задания с принятием основных проектных решений.

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

- какими должны быть входные данные;

- какие данные являются корректными и какие ошибочными;

- Каким должен быть интерфейс (средства общения с пользователем);

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

- какими должны быть выходные данные;

какая документация по программе должна быть подготовлена

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

Проектирование общей структуры программы. Задача разбивается на отдельные фрагменты, выбирается вид интерфейса с пользователем.

Интерфейс – это средство общения или взаимодействие с объектом.

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

Запись алгоритма на языке программирования (кодирование). Этот этап включает в себя выбор языка программирования; уточнение способов организации данных; запись алгоритма на выбранном языке. Программа позволяет реализовать алгоритм на компьютере.

Отладка и тестирование программы (поиск и исключение синтаксических и семантических ошибок) – это сложный и трудоёмкий процесс. Отладка заключается в выявлении, локализации и устранения ошибок в алгоритме и реализующей его программе. Синтаксические ошибки в программе выявляются при её компиляции. Семантические (смысловые) могут быть выявлены при отладке и тестировании и зачастую требуют переделки программы. Проверка работоспособности программы осуществляется с помощью тестирования, которое заключается в проверке правильности работы программы при различных исходных данных. Набор тестов является полным, если он позволяет проверить все ветки алгоритма, и включает “тепличные” и “экстремальные” тесты.

Оформление документации на программный продукт и сопровождение программы.

Язык программирования СИ

Основу языка положил язык Combined Programming Language (CPL) — язык программирования. Это совместная разработка Кембриджского и Лондонского университетов. Сейчас этот язык не используется из-за его сложности.  Его наследником стал язык BCPL(Basic Combined Programming Language) — язык программирования, разработанный Мартином Ричардсом в 1966 году в Кембриджском университете. Изначально он предназначался для написания компиляторов для других языков.

Язык Си был разработан для операционной системы Unix и реализован в этой системе Деннисом Ритчи в 1972 году. Язык Си входит в десятку наиболее востребованных языков программирования.

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

В классификации языков программирования по уровням, занимает промежуточное положение, в нем присутствуют черты языков и низкого, и высокого уровня (но больше черт ЯВУ).

Язык C часто называют языком среднего уровня. Это означает, что он объединяет элементы языков высокого уровня с функциональностью ассемблера.

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

В то же время язык можно отнести к языкам сравнительно "низкого уровня". Си может работать с битами и  байтами и адресами.

В самом языке нет стандартных средств ввода/вывода (наподобие read и write), нет встроенных механизмов обращения к файлам. Эти операции высокого системного уровня выполняются явным вызовом определенных функций.

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

В настоящее время известно множество реализаций языка С. Чтобы одна и та же программа могла работать на машинах различной аппаратной конфигурации, различные реализации должны соответствовать одному стандарту. Американский национальный институт стандартов ( ANSI ) разработал и в 1989 году принял стандарт ANSI С, который поддерживается современными компиляторами (С89, С99, С11).

Достоинства:

Возможность создать эффективные и компактные программы, поскольку разработчик получает доступ ко всем возможностям процессора

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

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

Написанные на языке Си программы отличаются компактностью и быстротой исполнения.

Мобильный язык. Это означает, что программа, написанная на Си для одной вычислительной системы, может быть перенесена на другую (на другие компьютеры различных архитектур, от 8-разрядных микропроцессоров до суперкомпьютеров).

Недостатки.

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

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

Тем не менее, Си–эффективный язык, пригодный для широкого класса задач. Язык СИ не содержит объектов. С++ является объектно-ориентированным.

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

Пример

//Пример программы вычисления площади треугольника

#include <stdio.h>   //директивы препроцессора

#include <math.h>

int main ( void ) //заголовок функции

{

double a , b , c , p , s ;         //Объявление переменных

printf (“Введите длины сторон треугольника\ n ”);// вывод на экран пояснительного текста

scanf (“% lf % lf % lf ”, & a , & b , & c ); //считывание исходных данных с клавиатуры

p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c));

printf (“Площадь S =% lf ”, s ); ”);// вывод на экран результатов работы программы

return 0;//передача управления в точку вызова. Свидетельствует о том, что нет ошибок.

}


Дата добавления: 2020-11-27; просмотров: 123; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!