Тождественность и совместимость типов данных



Уфимский государственный колледж радиоэлектроники и телекомунникаций РЕФЕРАТ На тему: Основные этапы решения задач на ЭВМ. Средства проверки корректности работы программы   Выполнил: Никитин А. Группа: ИБ36-16     СОДЕРЖАНИЕ Введение………………………………………………………3  Этапы решения задач на ЭВМ………………………………4 Средства проверки корректности работы программы……..10 Список литературы…………………………………………...12 Заключение……………………………………………………14              Введение В общем случае выделяют несколько этапов в подготовке и решении задач на ЭВМ. Постановка задачи разработки программного обеспечения является самым первым и наиболее важным этапом при проектировании программного обеспечения. Именно здесь закладывается фундамент будущей программы. Если на этом этапе допущены ошибки или не предусмотрены какие-то важные детали, то это отразится на конечном результате, а вносить изменения и исправления в такой проект будет крайне проблематично. Более того, если задача поставлена неверно, то ее дальнейшее решение не имеет смысла. Бурное развитие вычислительной техники приводит к широкому проникновению математических методов в науку, технику и народное хозяйство. Происходит интенсивный процесс математизации не только естественных и технических, но и гуманитарных наук. Все это расширяет классы задач, решаемых на ЭВМ. Решение на ЭВМ задач каждого класса имеет свою специфику, однако его можно разбить на несколько этапов, характерных для большинства задач.   Основные этапы решения задач на ЭВМ 1. Постановка задачи: • сбор информации о задаче; • формулировка условия задачи; • определение конечных целей решения задачи; • определение формы выдачи результатов; • описание данных (их типов, диапазонов величин, структуры и т. п.). 2. Анализ и исследование задачи, модели: • анализ существующих аналогов; • анализ технических и программных средств; • разработка математической модели; • разработка структур данных. 3. Разработка алгоритма: • выбор метода проектирования алгоритма; • выбор формы записи алгоритма (блок-схемы, псевдокод и др.); • выбор тестов и метода тестирования; • проектирование алгоритма. 4. Программирование: • выбор языка программирования; • уточнение способов организации данных; • запись алгоритма на выбранном языке программирования. 5. Тестирование и отладка: • синтаксическая отладка; • отладка семантики и логической структуры; • тестовые расчеты и анализ результатов тестирования; • совершенствование программы.

Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.

7. Сопровождение программы:

• доработка программы для решения конкретных задач;

• составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.

Алгоритм обладает следующими свойствами:

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

2. Определенность. Каждое правило алгоритма должно быть четким, однозначным.

3. Результативность. Алгоритм должен приводить к решению за конечное число шагов.

4. Массовость. Алгоритм решения задачи разрабатывается в общем виде, т.е. он должен быть применим для некоторого класса задач, различающихся лишь исходными данными.

5. Правильность. Алгоритм правильный, если его выполнение дает правильные результаты решения поставленной задачи.

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

Тестирование - процесс выполнения программ с целью обнаружения факта наличия ошибок.

Скалярные типы данных в языке Pascal

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

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

Целочисленный тип данных:

Byte 0..255 8

Shotrint -128.. 127 8

Integer 32768.. 32768 16

Word 0..65535 16

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

массивы;

строки;

множества;

записи;

файлы;

Тождественность и совместимость типов данных

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

Два типа являются тождественными, если они описаны вместе или если их определения используют один и тот же идентификатор типа.

Пример:

type M1, M2 = array [1..10] of byte; {M1, M2 - тождественные типы}

S = set of byte;

F = set of integer; {S, F - нетождественные типы}

или

var А, В, Proizved: integer;

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

В операциях сравнения два типа являются совместимыми, если соблюдается хотя бы одно из следующих условий:

оба типа являются одинаковыми;

оба типа являются вещественными типами;

оба типа являются целочисленными;

один тип является поддиапазоном другого;

оба типа являются поддиапазонами одного и того же основного типа;

оба типа являются множественными типами с совместимыми базовыми типами;

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

один тип является строковым, а другой – строковым или символьным типом;

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

Пример:

'а'>'b' {Допустимо, так как оба значения относятся к типу char}

'а'>5 {Ошибка, так как сравниваемые значения имеют разные типы}

В операциях присваивания два типа являются совместимыми, если соблюдалется хотя бы одно из следующих условий:

оба типа тождественны, и ни один из них не является файловым или структурным типом, содержащим компоненты с файловым типом на одном из своих уровней;

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

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

первый тип является вещественным, а второй – целочисленным;

оба типа являются строковыми;

первый тип является строковым, а второй – литерным;

оба типа относятся к совместимым множественным типам, и все значения второго типа попадают в диапазон возможных значений первого типа;

оба типа относятся к совместимым типам «указатель».

Пример:

var А, В: integer;

С: real;

...

А:=В; {Правильно}

С:=В; {Правильно}

А:=С; {Ошибка}

 

 


Средства проверки корректности работы программы

 

1) Верификация – установление соответствия между программой и ее спецификацией. Верификация проверяет, что программа разработана правильно

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

Критерии корректности:

1) Функциональная оценка – определяется предметной областью

2) Конструктивная оценка – определяется общими свойствами программы.

Корректность программ:

- корректность текстов

- корректность модулей

- корректность данных

- корректность комплексов программ

Корректность текстов учитывает только структурную проверку корректности

Корректность модулей учитывает обе:

1) Структурная – правильность организации модуля с точки зрения технологий, применяемых в организации или языке

2) Функциональная – может проверяться тремя способами:

- детерминированная проверка – фиксированный набор данных, фиксированный набор результатов

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

- динамическая – для заданного порядка входных данных проверяется заданный порядок формирования выходных данных

Корректность данных

1) Структурная – правильность организации структур данных в программе

2) Функциональная – проверяет диапазоны изменения значений данных, соответствие полей структур данных типам задаваемых значений


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

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






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