close

Вход

Забыли?

вход по аккаунту

?

Задание (2)

код для вставкиСкачать
 Министерство образования и науки Украины
ОДЕССКИЙ НАЦИОНАЛЬНЫЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра "Компьютеризованные системы управления и автоматики"
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
К КУРСОВОМУ ПРОЭКТИРОВАНИЮ ПО КУРСУ
"АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ И ПРОГРАММИРОВАНИЕ" (ПРОГРАММИРОВАНИЕ НА СИ).
для студентов специальности 07.1401
Одесса ОНПУ 2003г.
Методические указания к курсовому проэктированию по курсу "Алгоритмические языки и программирование" для студентов специальности 07.1401. / составил В.П.Шилов. - Одесса ОНПУ, 2003.
Составили:
В.П.Шилов, к.т.н., доцент
1. Введение.
Настоящие методические указания предназначены для студентов специальности "Автоматика и управление в технических системах" (07.1401) и используются в процессе выполнения курсовых работ по разделу "Программирование на языке СИ" дисциплины "Алгоритмические языки и программирование" студентами очной и заочной формы обучения.
Варианты заданий приведены в данном методическом пособии и выдаются преподавателям. Срок выдачи заданий и период выполнения работы определяется графиком, утвержденным кафедрой.
Выполнение курсовой работы требует от студентов максимума самостоятельности в принятии решений. В процессе работы руководитель оказывает студентам необходимую помощь в виде консультаций, а также систематически контролирует ход выполнения курсовой работы.
Цель курсовой работы - закрепление, систематизация, углубление теоретических и практических знаний, полученных студентами в процессе изучения тем курса: структуры и указателя раздела "Программирование на языке СИ" курса "Алгоритмические языки и программирование".
2. ОБЩИЕ УКАЗАНИЯ
Результаты курсовой работы должны содержать следующее:
1) Пояснительная записка, включающая:
- титульный лист;
- аннотацию;
- условие задачи;
- введение;
- блок-схему алгоритма и ее описание;
- листинг (распечатку) программы;
- результаты выполнения программы;
- выводы;
- список использованной литературы.
2) Дискета, содержащая EXE-файл и текст пояснительной записки, набранный в редакторе WORD. Титульный лист оформляется в соответствии с приложением 1.
В аннотации необходимо кратко описать назначение разработанной программы, дать ее характеристику и особенности.
Во введении нужно обосновать выбор языка программирования для разработки данной программы и кратко описать наиболее сложные конструкции языка СИ, используемые в программе (файлы, указатели, структуры).
Перед написанием программы необходимо составить алгоритм решения задачи в виде блок-схемы. Блок-схема - это набор заключенных в рамки блоков-указателей, соединенных между собой линиями потока информации.
В приложении 2 приведены некоторые наиболее часто употребляемые блоки блок-схем, их наименования, размеры и отображаемые ими функции в алгоритме и программе.
При составлении блок-схемы необходимо соблюдать некоторые правила. Линии потока должны быть параллельны линиям внешней рамки схемы. Направление линий потока сверху вниз и слева направо считают основными, в остальных случаях направления указывают стрелкой.
При выполнении блок-схемы каждому блоку присваивают порядковый номер, который проставляют слева в верхней части блока в разрыве контура. Внутри блока записывают название операции и ее содержание. Записи должны быть краткими и выполняются чертежным шрифтом:
Если блок-схема целиком не помещается на одном листе, блоки, расположенные на разных листах связываются между собой соединителями так, как показано на предыдущем рисунке.
В геометрических элементах блоков (см. приложение 2) размер "а" выбирается из ряда 10, 15, 20 мм. Допускается увеличивать размер "а" на число кратное 5. Размер "в" равен 1,5 "а".
Результаты курсовой работы должны быть представлены в виде двух таблиц. В первой таблице должен быть приведен весь перечень приборов, находящихся в банке данных. Например:
N п/пНаименованиеВесСтоимостьГарантийный срок· · ·1
2
· ·
20Прибор 1
Прибор 2
· · · · · ·
Прибор 201 кг
2 кг
· · ·
1,5 кг50 грн
100 грн
· · ·
650 грн2 г
1,5 г
· · ·
2 г· · ·
· · ·
· · ·
· · · Вторая таблица должна отражать результаты выполнения программы, т.е. в ней должен быть приведен, например, перечень приборов, в соответствии с заданными условиями задания: N п/пНаименованиеВесСтоимостьГарантийный срок· · ·1
· ·
Прибор 2
· · · · · ·
2кг
· · ·100грн
· · ·1,5г
· · ·· · ·
· · · Выводы должны содержать информацию о том, что получены ожидаемые результаты во время опробования программы. В выводах также необходимо выделить особенности разработанной программы.
Источники информации (учебники, справочники, стандарты, статьи и т.д.), которые были использованы при написании курсовой работы должны отражаться в тексте пояснительной записки в соответствии с номерами источников по списку литературы, который приводится в конце пояснительной записки.
Список выполняется в соответствии с требованиями ГОСТ 7.32-84. Источником в списке следует располагать в порядке появления ссылок в тексте пояснительной записки. Номера источников в тексте пояснительной записки записывают в квадратных скобках, например: "Способ разработки данного алгоритма приведен в [2]". Пример выполнения списка литературы можно найти в конце данных методических указаний.
3. НАПИСАНИЕИ ОТЛАДКА ПРОГРАММЫ.
3.1 .Этапы решения задачи
Подготовка задачи к решению на ЭВМ на этапе проектирования и тестирования.
На этапе проектирования необходимо:
а) изучить задачу (проанализировать исходные данные: достаточно ли их для решения задачи, не противоречивы ли они, тип их, а также изучить неизвестные);
б) составить план решения задачи (определить, какие методы решения будут использоваться, в какой последовательности необходимо вести вычисления, описать алгоритмы решения задачи на языке блок-схем; (изображение наиболее часто используемых блоков для построения блок-схем приведено в приложении 3).
в) проверить план (следуя блок-схеме, проверить правильность хода вычислений, проанализировать, все ли данные используются и все ли результаты будут получены, не возникают ли тупиковые ситуации или неопределённости);
г) определить структуру программы (согласно принятому плану) и записать её на алгоритмическом языке;
д) отладить программу (обработать сообщение транслятора и редактора, проанализировать сообщение об ошибках в рабочей программе). 3.2. Некоторые рекомендации по программированию на алгоритмическом языке.
Для уменьшения сложности программы целесообразно разбить ее на отдельные независимые модули, которые можно вызвать из любого другого модуля в программе и транслировать отдельно.
Каждый модуль должен иметь соответствующие комментарии:
• краткое описание действий программы;
• смысловое значение данных, вводимых в программу;
• вызываемые программы;
• аварийные ситуации.
В то же время нужно избегать слишком большого количества комментариев. Некоторые рекомендации о стиле программирования:
1. Выбирайте осмысленные имена, переменных:
• избегайте использование имён, которые можно легко спутать друг с другом;
• не используйте слишком длинные имена;
• если в имени есть цифры, помещайте их в конце;
• не используйте в качестве имени ключевые слова.
2. Используйте последовательные метки операторов, причём помечайте те операторы, на которые есть ссылки.
3. Используйте, по возможности, меньше операторов перехода, особенно переход на операторы, расположенные выше в программе.
4. Отдавайте предпочтение IF логическому.
5. Нужно стремиться к тому, чтобы в одном арифметическом выражении использовались переменные одного типа.
6. Будьте внимательны при сравнении действительных переменных. Например, при операторе IF не рекомендуется использовать сравнение с константой 0.0, так как погрешности могут не привести к ожидаемому результату.
7. Не используйте одну переменную более чем для одной цели.
8. По возможности избегайте использование общих областей и нескольких имён для одной переменной.
9.При вводе-выводе только частей массива используйте циклы в списке ввода-вывода.
10. Избегайте дополнительных вычислений индексов.
11. Выражения, значения которых остаются постоянными во время выполнения цикла, желательно вычислять до входа в цикл.
3.3 Отладка программы
При отладке программы выделяются следующие основные моменты.
Визуальная отладка. Она направлена на успешную трансляцию программы с первого раза. На этом этапе необходимо сделать всё возможное, чтобы исключить синтаксические ошибки. Нужно проверить логическую структуру: - все условия и циклы на окончание. Желательно дать просмотреть текст своей программы другому программисту. Эта отладка сохранит дорогостоящее машинное время и доставит удовлетворение от написания программы.
Поиск логической ошибки. • выберите гипотезу о природе ошибки;
• разработайте план проверки гипотезы и выполните этот план;
• проверьте решение. Убедитесь, что найденная причина полностью объясняет ошибки. Проверьте, не вызовет ли ее устранение появление новой ошибки. Проверьте, не была ли создана подобная ошибка и в других частях программы;
• устраните ошибку.
Контроль результатов
Основным методом контроля программы по результатам расчёта является метод контрольных тестов.
Тест - это информация, состоящая из исходных данных, специально Г подобранных для отлаживаемой программы, и из соответствующих им эталонных результатов (не только окончательных, но и промежуточных), используемых в дальнейшем для контроля правильности работы программы.
Для реализации метода контрольных тестов должны быть подобраны исходные данные и рассчитаны вручную эталонные результаты. Программа считается правильной, не содержащей ошибок, если просчеты на ЭВМ отлаживаемой программы с тестовыми исходными данными дает результаты, совпадающие с эталонными.
4. ЗАДАНИЕ К КУРСОВОЙ РАБОТЕ.
Заводом выпускается N различных измерительных приборов, каждый из которых может быть охарактеризован приведенными в схеме данными.
Используя только указанный в каждом варианте набор характеристик приборов, составить программу в соответствии с заданием, представив продукцию завода в программе в виде массива структур, а результаты вычисления вывести в виде таблицы. При разработке программы обязательно нужно использовать файлы и структуры. Желательно разработать также меню пользователя.
Варианты заданий
№ ппСписок характеристикЗадание1.231.1, 4, 5, 9Составить список покупных изделий завода.2.1, 2, 3, 9Составить список покупных изделий, стоимость которых С1.3.1, 2, 3, 7, 10Составить список заказчиков, заказавших более К1приборов различных типов.4.1, 2, 3, 6, 8Составить список приборов размеры которых не превышают Д1, Д2, Д3, вес - В1, рассчитанных на работу в диапазоне температур Т1 - Т2.5.1, 4, 5, 7, 9Составить список покупных изделий, поставляемых поставщиком П1.6.1, 5, 8, 9Составить список поставщиков и суммарных стоимостей поставляемых или покупаемых изделий.7.1, 3, 4, 5, 9Составить список поставщиков, поставляющих более К2 наименования покупных изделий.8.1, 4, 5, 7, 8Составить список приборов, рассчитанных на напряжение, потребляющих токи І и имеющих гарантийный срок Г1.9.1, 4, 6, 8Составить список приборов, измеряющих величину А1 в диапазоне температур Т1 - Т2 с погрешностью Е1.10.1, 4, 7, 10Составить список заказчиков и суммарных стоимостей покупаемых приборов.11.1, 4, 5, 6, 7Составить список приборов, работающих в диапазоне температур Т1 - Т2, стоимость которых С2.12.1, 4, 5, 7, 8Составить список приборов для измерения А2, работающих на постоянном токе и имеющих стоимость С3.13.1, 2, 3, 4, 7Составить список К3 наиболее дорогих приборов.14.1,4 4, 8, 10Составить список городов-заказчиков, покупающих приборы для измерения А3.15.1, 4, 5, 7, 10Составить список заказчиков, заказавших наибольшее количество приборов каждого типа.16.1, 2, 5, 9Составить список поставщиков, поставляющих покупные изделия на наибольшую сумму для каждого прибора.17.1, 5, 8, 9Составить список заказчиков, покупающих приборов для измерения А4 с гарантийным сроком Г2.18.1, 2, 3, 5, 8Составить список приборов для измерения А5, обладающих весом В2 и габаритами, не превышающими Д1, Д2, Д3.19.1, 4, 5, 9Составить список приборов, для которых отношение "стоимость/суммарная стоимость покупных изделий" лежит в диапазоне С4 - С5.20.1, 4, 5, 8, 10Составить список заказчиков, покупающих приборы с погрешностью Е2.21.1, 2, 3, 4, 9Составить список наиболее дорогих покупных изделий для каждого прибора.22.1, 4, 5, 6, 8,Составить список приборов, измеряющих величину А6 с погрешностью Е3 и имеющих стоимость С6.23.1, 2, 3, 4, 5, 6, 7Составить список К4 наиболее дешевых приборов.24.1, 2, 3, 4, 5, 10Составить список К5 заказчиков, покупающих приборов на наибольшую сумму.25.1, 2, 3, 4, 5, 8Составить список характеристик 1, 2, 3, 4, 5 приборов предназначенных для измерения А7.26.1, 2, 3, 4, 5, 9Составить список покупных изделий стоимость которых С1 и гарантийный срок Г1.27.1, 2, 3, 7, 10Составить список заказчиков, покупающих приборы всех типов, работающих в диапазоне температур Тmin - Тmax. 28.1, 2, 3, 6, 8Составить список приборов, размеры которых не превышают Д1, Д2, Д3, работающих на постоянном напряжении.29.1, 4, 5, 7, 9Составить список покупных изделий, поставляемых поставщиком П1 и список суммарных стоимостей поставляемых изделий.30.1, 4, 5, 7, 8Составить список приборов, рассчитанных на постоянное напряжение, потребляющих ток не более І и имеющих гарантийный срок Г1.31.1, 4, 5, 6, 7Составить список приборов, работающих в диапазоне температур Т1 - Т2, работающих на переменном напряжении.32.1, 4, 5, 7, 8Составить список приборов для измерения величины А1, работающих на постоянном токе в диапазоне температур Т1 - Т2.33.1, 2, 3, 4, 7, 10Составить список заказчиков, покупающих самые дорогие приборы каждого типа.34.1, 2, 3, 4, 5, 6, 7, 8Составить список приборов, указав их характеристики 1, 2, 3, 4, 5, 7, предназначенных для измерения величины А5.35.1, 2, 3, 4, 5, 7, 10Составить список К5 заказчиков, покупающих все имеющиеся приборы с питанием на постоянном напряжении36.1, 2, 3, 4, 5, 8, 9Составить список заказчиков, покупающих приборы для измерения А4 в диапазоне температур Т1 - Т2.37.1, 2, 3, 4, 5, 6, 7Составить список наиболее дешевых приборов каждого типа.38.1, 2, 3, 5, 8Составить список приборов, для измерения А1, работающих в диапазоне температур Т1 - Т2 и имеющих гарантийный срок не менее Г1.39.1, 2, 4, 5, 6, 7, 8Составить список заказчиков, покупающих приборы всех типов с постоянным источником питания.40.1, 2, 3, 7, 10Составить список заказчиков, заказавших более К1 приборов с источником питания переменного тока.41.1, 2, 3, 4, 5, 6, 7Составить список наиболее дешевых приборов каждого типа.42.1, 4, 5, 6, 8, 10Составить список городов-заказчиков, покупающих приборы для измерения величины А3 работающих в диапазоне температур Т1 - Т2.43.1, 2, 3, 4, 5, 6, 7, 8Составить список приборов и их характеристик, используемых для измерения величины А1 с погрешностью в пределах Е1 - Е2.44.1, 4, 5, 6, 7Составить список приборов, работающих в диапазоне температур Т1 - Т2, имеющих постоянное напряжение питания.45.1, 2, 3, 4, 9Составить список поставщиков, поставляющих приборы с питанием от переменного тока.46.1, 2, 3, 9Составить список покупных изделий, стоимость которых С1 и гарантийный срок Г1. 5. ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ.
Перед выполнением курсовой работы необходимо изучить элементарные конструкции языка и особое внимание уделить более сложным, таким как структуры и указатели.
5.1. Структуры:
Структура, или запись, - это объединение одного или более объектов (переменных, массивов, указателей, других записей и т.д.) разного типа. Как и массив, структура представляет собой совокупность данных отличием от массива является то, что структура представляет совокупность данных объединенных в один блок. Отличием является такие и то, что к элементам структуры необходимо обращаться по имени и различные элементы структуры не обязательно должны принадлежать одному типу.
Объявление структуры осуществляется с помощью ключевого слова struct, за которым идет ее тип и далее список элементов, заключенных в фигурные скобки:
struct тип {тип элемента 1 имя элемента 1;
· · · · · · · · · тип элемента n имя элемента n; };
Именем элемента может быть любой идентификатор.
Пример объявление структуры:
Struct date {int day;
int month;
int year;};
Следом за фигурной скобкой, заканчивающей список элементов, могут записываться переменные данного типа, например:
struct date {int day;
int month;
int year;} a, b, c;
При этом выделяется соответствующая память для переменных a, b, c. Описание без последующего списка не выделяет никакой памяти; оно просто объявляет структуру.
Веденное имя типа позже можно использовать для объявления записи, например struct date days. При необходимости элементы структуры можно инициализировать, т.е. -----------им начальные значения (это применимо для статического и внешнего классов хранения памяти структур).
Приведем пример описания анкеты студента в виде структуры:
struct stud
{
int nom; // порядковый номер char fio [30]; // фамилия, имя, отчество
int pol; // пол
char adres [50]; // адрес
} anketa;
Инициализируем теперь начальные значения элементов структуры:
struct stud anketa = {24, "Иванов И.И.", О, "Одесса, просп. Шевченко 10, кв. 2, "};
Или же можно в одном блоке объединить описание и инициализацию структуры:
struct stud
{
int nom; char fio [30];
int pol;
char adres [50];
} anketa = {24, "Иванов И.И.", О, "Одесса, просп. Шевченко 10, кв. 2,"};
Чтобы обратиться к отдельному элементу структуры, необходимо сформировать составное имя элемента структуры, разделенных из имени структуры и имени элемента структуры, разделенных точкой.
Например: anketa. nom = "Иванов И.И.";
Разрешается вкладывать одну структуру в другую. Например, если описана структура struct predpr _ finans, в которой определена финансовая деятельность предприятия, то в состав этой структуры могут входить две однотипные структуры:
struct finans _ doxod, (доходы)
вторая
struct finans _ pacx, (расходы)
т.е.
struct predpr _ finans
{
struct finans _ doxod;
struct finans _ pacx;
} cumma;
Чтобы обратиться к отдельному элементу структуры, необходимо сформировать составное имя элемента, состоящее из имени структуры и имени элемента структуры, разделен точкой.
anketa. nom = "Иванов И.И." ;
рассмотрим пример со структурой
struct finans_doxod.
Если в состав структуры doxod входит, например, элемент с именем "х", то к нему можно обратиться так:
cymma. doxod . x = 3246;
Еще один пример вложенных структур:
struct man
{
char name [30], fam [20];
stract date bd;
int vozrast; } ;
После этого разрешается объявить переменные значения которых принадлежат введенному типу:
struct man mans [100];
Здесь определен массив mans, состояний из 100 записей man.
В языке СИ разрешено использовать массивы структур. Сами же структуры могут состоять из массивов и других структур.
Примеры обращения к отдельным элементам структуры для предыдушего примера:
mans [i]. vozrast = 50;
mans [i]. bd. day = 22;
mans [i].bd. year = 1999;
Массив структур можно объявить также таким образом:
struct pribor
{
int kolichestvo; // количество приборов
char naimenovanie [30]; // название приборов
float summa; // цена
}
priboru [50];
Эта структура описывает 50 приборов, каждый тип которых имеет разное количество свое наименование и стоимость.
5.2. Указатели.
Как известно, память IBM РС делиться на 8-битовые байты. Каждый байт пронумерован; нумерация начинается с нуля. Номер байта называется адресом; об адресе говорят, что он указывает на определенный байт. Таким образом, указатель является просто адресом байта памяти компьютера.
Указатели могут обеспечить простые способы ссылок на массивы, структуры или блоки данных. Для таких ссылок достаточно иметь простой элемент данных: указатель. 5.2.1. Определение указателей.
Язык СИ позволяет определить объект, который будет содержать указатель на объемы простого или структурированного типов данных. Для определения указателя используются символом * в определении или объявлении объекта.
Приведем несколько примеров:
int * iptr; // определяет указатель на целое значение
char * cp; // определяет указатель на символ
float * flaes; // определяет указатель на значение с плавающей точкой.
Идентификатор iptr будет указывать на объекты типа int, ср - на объекты типа float (при этом символ * не включается в имя переменной).
5.2.2. Операции над указателями.
Первый шаг в применении указателя - присвоить ему значение адреса. Один из способов получение адреса состоит в применении унарной операции взятие адреса к какой-либо переменной и присваивании ее результата переменному указателю.
Пример:
// использование операции взятия адреса & main ()
{
int x, * px; // x будет содержать целое значение рх будет
содержать указатель на целое значение
x=2;
px = &x; // рх теперь содержит адрес переменной х
}
Выражение &x означает "адрес объекта х".
Таким образом, переменной рх будет присвоено значение указателя на х (т.е. адрес объекта х).
Другой способ занесения адреса в переменный указатель состоит в присваивании указателю значения известной константы.
5.2.3. Указатели на структуры.
Одним из наиболее распространенным приложением указателей является манипулирование структурами. Предложением, что имеется объявление структуры вида:
struct pribor {
char name [15]; // наименование прибора char date [9]; // дата сделки
int kol; // количество
float price; // цена
};
Указатель на объект этого типа определяется с помощью признака указателя *, а адрес объекта такой структуры может быть получен с помощью операции взятия адреса &.
В приведенном ниже примере определены структуры stock_data типа pribor и указатель stck, который показывает на структуры этого типа. Кроме того, указателю присваивается начальный адрес структуры stock_data.
// Указатели на структуры
struct pribor stock_data; // определить структуру
struct pribor * stck_ptr; // определить указатель на структуру этого типа
stck_ptr = & stock_data; // присвоить указателю адрес.
Указатель stck_ptr теперь содержит адрес первого байта структуры stock_data.
Одним из способов доступа к элементам структуры является использование операции "точка". Элемент kol (количество) в структуре stock_data задается выражением:
stock_data . kol
Чтобы получить доступ к этому же элементу с помощью указателя на структуру, нужно использовать операцию ссылки на структуру ->.
При наличии определенного выше переменного указателя stck_ptr ссылка на количество может иметь вид:
stck_ptr -> kol
Если элемент структуры сам является указателем на структуру, потребуется несколько уровней ссылок, например
str_ptr1 -> str_ptr2 -> member
Операции -> применяются слева направо, поэтому последнюю запись следует читать следующим образом: используя str_ptr1, взять элемент str_ptr2 и использовать его для ивлечения значения элемента member.
Если элемент структуры является указателем, то для извлечения из памяти того значения, на которое он показывает, можно воспользоваться операцией косвенной адресации *:
* str_ptr -> mem_ptr.
Это выражение эквивалентно
* (str_ptr1 - mem_ptr).
Еще несколько примеров обращения к данным, которые являются элементами структуры.
scanf (" % S ", pribor . name); // ввод в память зазвания прибора
scanf (" % f ", (pribor . price)); // ввод цены
printf (" % f ", pribor -> price); // ввод цены прибора
Операция косвенной адресации * может быть применена к указателю на структуру для присваивания этого содержимого одной структуры другой структуре того же типа, например:
main ()
{
struct pribor new_struct, old struct; // две структуры
struct * nptr = & new_struct; // указатель на new_struct
struct * optr = & old_struct; // указатель на old_struct
*nptr = * optr; // скопировать old_struct в new_struct.
Приложение 1
Министерство образования и науки Украины
ОДЕССКИЙ НАЦИОНАЛЬНЫЙ ПОЛИТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ
Кафедра компьютеризованных систем управления и автоматики
КУРСОВОЙ ПРОЕКТ
по дисциплине "Алгоритмические языки и программирование (ПРОГРАММИРОВАНИЕ НА СИ)
Руководитель В.П. Шилов Исполнитель ст. гр. ЗАТ-2001 В.И.Петров
" "__________20 г.
_____ Зач. книжка №
_____________ _____________
Личная подпись Личная подпись
Наименование символаСимвол и размерыЗначение символаПроцесс
Выполнение операции или группы операций, в результате которых изменяются значение, форма представления или расположение данныхРешение
Проверка условия и выбор направления алгоритма в зависимости от некоторых переменных условийМодификация
Начало цикла, выполнение операций, меняющих командыПредопреде-ленный процесс
Использование ранее созданных или отдельно описанных алгоритмов или программ (заголовок подпрограммы или обращение к ней из основной программы)Документ
Вывод данных, носителем которых служит бумага, печать результатаКолода перфокарт
Отображение набора перфокартПерфокарта
Ввод-вывод данных, носителем которых служит перфокартаВвод-вывод
Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод)Магнитная лента
Ввод-вывод данных, носителем которых служит магнитная лента
Магнитный диск
Ввод-вывод данных, носителем которых служит магнитный дискСоединитель
Указание связи между линиями потокаПуск-остановка
Начало, конец, прерывание процесса обработки данных или выполнения программыКомментарий
Пояснение, связь между элементом связи и пояснением
Приложение 4
Текст программы (фрагмент) # include <stdio.h>
# include <conio.h>
stract Izmer
{
char MinLim; // Нижний предел
char MaxLim; // Верхний предел
char Porg; // Количество приборов
};
stract Cust
{
char Name [50]; // Наименование заказчика
char Adress [50]; // Адрес заказчика
int Kol; // Количество приборов
};
sract Pribor
{
char Name [50]; // Наименование прибора
int Cost; // Стоимость прибора
Izmer A1;
Izmer A2;
Izmer A3;
Cust First;
Cust Second;
};
int kolprib=0, number=1;
Pribor Izdelie [50]; // Описание массива Izdelie типа Pribor
Void Menu (int number); // Процедура рисования меню
Void Chek (int & number); // Процедура проверки нажатой клавиши
Void input (Pribor Izdelie []); // Процедура ввода данных
Void Rezultat (Pribor Izdelie []); // Процедура просмотра данных
Void Output (Pribor Izdelie []); // Процедура вывода Результата
Void main()
{
//
setcursortype (_NOCURSOR);
textbakground (1);
textcolor (15);
clrcr ();
}
void input (Pribor Izdelie [])
{
clrscr ();
printf ("Введите количество приборов:");
scanf ("%", & kolprib);
for (int i=1; i<=kolprib; i++);
{
printf ("Введите наименование прибора:");
skanf ("% s", & izdelie [i]. Name);
printf ("Введите стоимость прибора:");
skanf ("% d", & izdelie [i]. Cost);
printf ("Введите для измерения А1 параметры \n:");
printf ("Нижний предел измерений:");
skanf ("% s", & izdelie [i]. A1. MinLim);
printf ("Верхний предел измерений:");
skanf ("% s", & izdelie [i]. A1. MaxLim);
printf ("Погрешность измерений:");
skanf ("% s", & izdelie [i]. A1. Porg);
printf ("Введите для измерения А2 параметры \n:");
printf ("Нижний предел измерений:");
skanf ("% s", & izdelie [i]. A2. MinLim);
printf ("Верхний предел измерений:");
skanf ("% s", & izdelie [i]. A2. MaxLim);
printf ("Погрешность измерений:");
skanf ("% s", & izdelie [i]. A2. Porg);
printf ("Ведите для измерения А3 параметры\n:");
printf ("Нижний предел измерений:");
skanf ("% s", & izdelie [i]. A3. MinLim);
printf ("Верхний предел измерений:");
skanf ("% s", & izdelie [i]. A3. MaxLim);
printf ("погрешность измерений:");
skanf ("% s", & izdelie [i]. A3. Porg);
printf ("Введите данные по первому заказчику\n:");
printf ("Наименование:");
skanf ("% s", & izdelie [i]. First. Name);
printf ("Адрес:");
skanf ("% s", & izdelie [i]. First. Adress);
printf ("Количество приборов:");
skanf ("% d", & izdelie [i]. First. Kol);
printf ("Введите данные по второму заказчику\n:");
printf ("Наименование:");
skanf ("% s", & izdelie [i]. Second. Name);
printf ("Адрес:");
skanf ("% s", & izdelie [i]. Second. Adress);
printf ("Количество приборов:");
skanf ("% d", & izdelie [i]. Second. Kol);
}
clrscr ();
}
void Rezultat (Pribor Izdelie [ ])
{
clrscr ( );
printf ("-------------------------------------------\n");
printf ("Наименование |Адрес| Наименование изделия |Количество| |");
printf ("Стоимость заказчика");
printf ("--------------------------------------------\n");
Приложение 3
Пример выполнения задания (Си) Блок-схема (фрагмент)
Выход
СПИСОК ЛИТЕРАТУРЫ
1. Скляров В.А. Программирование и лингвистическое обеспечение персональных ЭВМ -Минск: Высшая школа: 1992.
2. Макогон В.С. Язык программирования СИ для начинающих. - Одесса: НФП "Астропринт" ,1993.
3. Фейсон Т.П. Объектно-ориентированное программирование на СИ. - К.: "Диалектика" ,1996.
4. Хенко Л. , Криггер М. Введение в программирование на языке СИ. - М.: Радио и связь , 1996.
Документ
Категория
Рефераты
Просмотров
24
Размер файла
196 Кб
Теги
задание
1/--страниц
Пожаловаться на содержимое документа