Оглавление. Введение 1. Работа с экранным меню Турбо Си 2. Ввод - вывод данных 3. Операторы и операции. 4. Функции 5. Типы констант. Использование констант вТурбо Си 6. Управляющие структуры 7. Массивы в ТС Задачи Введение Важной вехой в развитии программирования явилось создание и широкое распространение языка
С. Этот язык, сохранив средства ставшего общепризнанным стандартом для написания системных и прикладных программ языка С процедурно-ориентированный язык, ввел в практику программирования возможности нового технологического подхода к разработке программного обеспечения, получившего название объектно-ориентированное программирование. Внедрение в практику программирования объектно-ориентированной парадигмы дает развитие новых областей информатики, значительное повышение уровня технологичности создаваемых программных средств,
сокращение затрат на разработку и сопровождение программ, их повторное использование, вовлечение в процесс расширения интеллектуальных возможностей ЭВМ. Объектный подход информационного моделирования предметных областей все более успешно применяется в качестве основы для структуризации их информационных отражений и, в частности , баз знаний. С - это язык программирования общего назначения, хорошо известный своей эффективностью, экономичностью,
и переносимостью. Указанные преимущества С обеспечивают хорошее качество разработки почти любого вида программного продукта. Использование С в качестве инструментального языка позволяет получать быстрые и компактные программы. Во многих случаях программы, написанные на С, сравнимы по скорости с программами, написанными на языке ассемблера. Перечислим некоторые существенные особенности языка
С - С обеспечивает полный набор операторов структурного программирования - С предлагает необычно большой набор операций. Многие операции С соответствуют машинным командам и поэтому допускают прямую трансляцию в машинный код. Разнообразие операций позволяет выбирать их различные наборы для минимизации результирующего кода С поддерживает указатели на переменные и функции. Указатель на объект программы соответствует машинному
адресу этого объекта. Посредством разумного использования указателей можно создавать эффективно выполняемые программы, т.к. указатели позволяют ссылаться на объекты тем же самым путем, как это делает ЭВМ. С поддерживает арифметику указателей, и тем самым позволяет осуществлять непосредственный доступ и манипуляции с адресами памяти. Однако, следует отметить, что преимущества языка С становятся очевидными при реализации больших программных проектов.
Первые же шаги при программировании на С требуют от студента тщательного проектирования программы, а также определенной дисциплины при программировании. Первая часть методических указаний для проведения лабораторных работ по дисциплине Алгоритмические языки программирования включает примеры программ и задачи для программирования, ориентированные в основном на изучение синтаксических конструкций языка
TURBO C. Лабораторная работа 1 6 часов Справочник по ИСР Цель работы Изучение интегрированной Среды разработки программ TURBO C. TURBO C упрощает процесс программирования и делает его более эффективным. При работе в TURBO C весь комплекс инструментальных средств, необходимых для написания, редактирования, компиляции, компоновки и отладки программ, оказывается под рукой у пользователя.
Весь этот комплекс возможностей заключен в Интегрированной Среде Разработки ИСР. Кроме того, Среда разработки программ TURBO C предоставляет следующие дополнительные возможности, которые еще больше упрощают процесс написания программ Возможность отображения на экране монитора значительного числа окон , которые можно перемещать по экрану и размеры которых можно изменять. Наличие поддержки мыши.
Наличие блоков диалога. Наличие команд удаления и вставки при этом допускается копирование из окна HELP и между окнами EDIT. Возможность быстрого вызова других программ и обратного возврата. Наличие в редакторе макроязыка. ИСР содержит три визуальных компоненты строку меню у верхнего края экрана, оконную область в средней части экрана и строку состояния у нижнего края экрана. В результате выбора некоторых элементов меню на экран будут выдаваться блоки диалога.
Строка меню и меню Строка меню представляет собой основное средство доступа ко всем командам меню. Строка меню оказывается невидимой лишь во время просмотра информации , отображаемой программой и во время перехода к другой программе. Окна TURBO C Большая часть того, что видно и делается в среде TURBO C , происходит в окне. Окно - это область экрана, которую можно перемещать , размеры которой можно перемещать, изменять, которую можно распахивать на весь экран, ориентировать встык с другими окнами.
В TURBO C может существовать произвольное число окон, но в каждый момент активно только одно окно. Активным является то окно, в котором в настоящий момент происходит работа. Любые вводимые команды или вводимый текст, как правило, относятся только к активному окну. Существует несколько типов окон , но большая их часть имеет следующие общие элементы строку заголовка маркер закрытия окна полосы прокрутки угол изменения размера окна маркер распахивания окна на весь экран
номер окна. Строка состояния Строка состояния, расположенная у нижнего края экрана, выполняет следующие функции Напоминает об основных клавишах и клавишах активизации, которые в настоящий момент могут быть применены к активному окну. Позволяет установить указатель мыши на обозначения клавиш и кратковременно нажать кнопку мыши для выполнения указанного действия, вместо того, чтобы выбирать команды из меню или нажимать соответствующие клавиши. Сообщает, какое действие выполняется программой.
Предлагает состоящие из одной строки советы и рекомендации по любой выбранной команде меню и элементам блока диалога. Блоки диалога Если за элементом меню располагается многоточие, то в результате выбора данной команды будет открыт блок диалога , обеспечивающий удобный способ просмотра и задания многочисленных параметров. При задании значения в блоке диалога работа происходит с пятью базовыми типами средств управления указателями выбора, переключателями состояния, кнопками действия, блоками ввода и блоками списка.
Работа с экранным меню Турбо Си. МЕНЮ системное Отображается у левого края строки меню. Для вызова следует нажать ALT -пробел. При вызове этого меню отображаются команды About При выборе данной команды появляется блок диалога, в котором содержится информация по авторским правам и номер версии TURBO C. Данное окно закрывается нажатием клавиши ESC или ENTER. Clear Desktop Закрывает все окна и стирает все списки предысторий.
Эта команда полезна в тех случаях, когда начинается работа над новым проектом. Repaint Desktop Осуществляет регенерацию изображения на экране. Элементы подменю Transfer В этом подменю показаны имена всех программ, которые установлены с помощью блока диалога Transfer, вызываемого командой OptionsTransfer. Для запуска программы необходимо выбрать ее имя из системного меню.
Меню FileALT F Это МЕНЮ позволяет открывать в окнах EDIT и создавать исходные файлы программ, сохранять внесенные изменения, выполнять другие действия над файлами ,выходить в оболочку DOS и завершать работу с TURBO C. OpenF3 Команда FILE OPEN отображает блок диалога, в котором выбирается исходный файл программы, который будет открыт в окне EDIT. Этот блок диалога содержит блок ввода, список файлов, и кнопки
OPEN, REPLACE, CANCEL и HELP, а также информационную панель. Здесь можно выполнить одно из действий 1 Ввести полное имя файла и выбрать указатель REPLACE или OPEN. В результате выбора Open файл загружается в новое окно Edit. Для выбора Replace должно иметься активное окно Edit в результате выполнения Replace содержимое окна заменяется выбранным файлом.
2 Ввести имя файла с метасимволами. Это позволяет отфильтровать список файлов в соответствии со спецификацией. Нажать , чтобы выбрать спецификацию файла из списка предыстории, который содержит введенные ранее спецификации файлов. 3 Просмотреть содержимое других каталогов, выбрав имя каталога из списка файлов. Блок ввода позволяет явно ввести имя файла или ввести имя файла с метасимволами DOS и . Если ввести имя полностью и нажать Enter, Turbo
C откроет указанный файл. Если ввести имя файла, который система Turbo C не может обнаружить, она автоматически создаст и откроет новый файл с таким именем. Если нажать , когда курсор находится в блоке ввода то под этим блоком появляется список предыстории, содержащий последние восемь имен файлов, которые были введены ранее. New Команда File New позволяет открывать новое окно
Edit со стандартным именем NONAMExx. С где вместо букв хх задается число в диапазоне от 00 до 99. Файлы с именем NONAME используются в качестве временного буфера для редактирования когда файл с подобным именем сохраняется на диске, Turbo C запрашивает действительное имя файла. Save F2 Команда File Save записывает на диск файл, находящийся в активном окне Edit если активно окно Edit в настоящий момент, если нет, то данным элементом меню нельзя воспользоваться.
Если файл имеет использованное по умолчанию имя NONAMEOO.C и т.п. TurboC откроет блок диалога Save Editor File, который позволяет переименовать данный файл и сохранять его в другом каталоге или на другом дисководе. Save As Команда File Save As позволяет сохранить файл в активном окне Edit под другим именем, в другом каталоге или на другом дисководе.
Change Dir Команда File Change Dir позволяет задать идентификатор и имя каталога, которые следует сделать текущими. Текущим является тот каталог, который используется в Turbo C для сохранения и поиска файлов. При использовании относительных маршрутов в Options Directories они задаются только относительно текущего каталога. Print Команда File Print печатает содержимое активного окна
Edit Turbo C раскрывает символы табуляции заменяет их соответствующим числом пробелов, а затем посылает файл на устройство печати, заданное в DOS. Данная команда будет запрещена, если содержимое активного окна не может быть выведено на печать. Для вывода на печать только выделенного текста следует использовать Ctrl-K P. Get Info Команда File Get Info отображает блок, в котором содержится информация относительно текущего файла. Таблица Значения блока Get Info ЗНАЧЕНИЕ
СМЫСЛCurrent directory Имя каталога по умолчаниюCurrent fileИмя файла в активном окнеExtended memory usage Объем дополнительной памяти, зарезервированной для Turbo CExpanded memory usage Объем расширенной памяти, зарезервированной для Turbo CLines compiledЧисло откомпилированных строкTotal warningsЧисло выданных системой предупреждающих сообщенийTotals errorsЧисло сгенерированных ошибокTotal time
Время последнего выполнения программыProgram loaded Статус отладкиProgram exit Код возврата от последней завершившейся программыAvailable memory Объем доступной памяти DOS 640 КLast step timeВремя выполнения последнего шага отладки DOS Shell Команда File DOS Shell позволяет временно выйти из Turbo C, чтобы выполнить команду DOS или запустить программу.
Для возврата в Turbo C необходимо ввести с клавиатуры EXIT и нажать Enter. Иногда можно обнаружить, что во время отладки не хватает памяти для выполнения этой команды. В этом случае необходимо завершить сеанс отладки командой Run Program Reset Ctrl-F2. Quit Alt-x Команда File Quit осуществляет выход из системы Turbo C, удаляет ее из памяти и передает управление
DOS. Если внесены изменения, которые еще не были сохранены, то перед выходом Turbo C выдаст запрос на их сохранение. Меню EditAlt-E Позволяет выполнять удаления, копирование и вставку текста в окнах Edit. Можно также открыть окно текстового буфера для просмотра или редактирования его содержимого. Выбрать текст это значит выделить его цветом 1 Нажать
Shift с одновременным нажатием стрелки. 2 Нажать Ctrl-K B, чтобы пометить начало выделяемого блока. Затем переместить курсор в конец фрагмента текста и на жать Ctrl-K K. 3Для выбора строки необходимо нажать Ctrl-K L. После выделения фрагмента текста становятся доступными команды, расположенные в меню Edit, и можно использовать текстовый буфер Clipboard.
Он взаимодействует с командами меню Edit Restore Line Эта команда отменяет действие последней команды редактирования, примененной к какой-либо строке. Она действует только над последней отредактированной строкой. Cut Shift-Del Удаляет выделенный фрагмент текста из документа и заносит его в текстовый буфер. Затем можно вставить текст в другой документ путем выбора
Paste. Copy Ctrl-Ins Эта команда не изменяет выделенный текст, но заносит в текстовый буфер его точную копию. Затем можно вставить текст в другой документ командой Paste. Можно скопировать текст из окна Help следует использовать Shift и клавиши управления курсором. Paste Shift-Ins Эта команда вставляет текст из текстового буфера в текущее окно в позиции курсора.
Show Clipboard Эта команда открывает окно Clipboard, в котором хранятся фрагменты текста, удаленного и скопированного из других окон. Clear Ctrl-Del Эта команда удаляет выбранный фрагмент текста ,но не заносит его в текстовый буфер. Это означает, что восстановить удаленный текст нельзя. Меню Search Alt-S Меню Search выполняет поиск текста, объявлений функций, а также местоположение ошибок в файлах. Команда Search Find отображает блок диалога
Find, который позволяет ввести образец поиска и задать параметры, влияющие на процесс поиска. Эта команда может быть также вызвана с помощью Ctrl Q F. Replace Ctrl Q A Команда Search Replace отображает блок диалога для ввода искомого текста и текста, на который его следует заменить. Search Again Ctrl L Команда Search Again повторяет действие последней команды
Find или Replace. Все параметры, которые были заданы при последнем обращении к использованному блоку диалогаFind или Replace, остаются действительными при выборе данной команды. Меню Run Alt-R Команды этого меню выполняют программу, а также инициализируют и завершают сеанс отладки. RunCtrl-F9 Команда Run выполняет программу, используя те аргументы, которые переданы программе с помощью команды Run Arguments. Тrace IntoF7 Эта команда выполняет программу по операторам.
По достижению вызова функции будет выполняться каждый ее оператор вместо того, чтобы выполнить эту функцию за один шаг. Этой командой следует пользоваться для перемещения выполнения в функцию, которая вызывается из отлаживаемой функции. Program ResetCtrl-F2 Команда Run Program Reset прекращает текущий сеанс отладки, освобождает память программы и закрывает все открытые файлы, которые использовались в программе.
Over Команда Run Step Over выполняет следующий оператор в текущей функции без вхождения в функции более низкого уровня, даже если эти функции доступны отладчику. Командой Step Over следует пользоваться в случаях, когда необходимо отладить функцию в пооператорном режиме выполнения без вхождения в другие функции. Arguments Команда Run Arguments позволяет задать выполняемой программе аргументы командной строки точно так же,
как если бы они вводились в командной строке DOS. Команды переназначения вводавывода DOS будут игнорироваться. Compile C Команды из меню Compile используются для компиляции программы в активном окне, а также для полной или избирательной компиляции проекта EXE File Команда Compile Make EXE File вызывает Менеджер проектов для создания
EXE-файла. Link EXE File Только при полном наборе меню Команда Compile Link EXE File использует текущие OBJ и LIB-файлы и компонует их, не производя избирательной компиляции. Меню Debug Alt F9 Команды меню Debug управляют всеми возможностями интегрированного отладчика. Inspect Alt F4 Команда Debug Inspect открывает окно
Inspector, которому позволяет проанализировать и модифицировать значения элемента данных. Меню OptionsAlt-O Меню Oрtions содержит команды, которые позволяют просматривать и модифицировать стандартные параметры, определяющие функционирование Turbo C. Задание Используя команды экранного меню File, найти, открыть и переименовать какой-либо файл из каталога примеров пакета Turbo C. Используя команды экранного меню Edit, отработать приемы редактирования.
Контрольные вопросы. 1. Какая команда позволяет сохранить на диске файл, который находится в активном окне 2. Какая команда отображает на экране блок диалога, позволяющий открыть файл 3. Какая команда позволяет распахивать на весь экран активное окно 4. Для чего служит команда Change Dir 5. Какая команда позволяет осуществлять циклическое перемещение от одного открытого окна к следующему 6. Какая команда позволяет выполнять программу в режиме отладки с
отслеживанием внутри функции 7. Для чего служит команда Inspect 8. Какая команда позволяет выполнять программу в режиме отладки , выполняя функцию за один шаг 9. Какая команда позволяет удалить текст из окна не помещая его в текстовый буфер 10. Для чего служит команда Arguments 11. Какая команда позволяет копировать выбранный текст в текстовый буфер 12. Какая команда позволяет заносить выбранный текст в текстовый буфер и удалять выбранный текст
из окна 13. Для чего служит команда Trace Into 14. Какая команда позволяет отображать на экране кадр контекстной подсказки 15. Какая команда позволяет осуществить переход к предыдущей ошибке 16. Какая команда позволяет инициализировать программу 17. Какая команда позволяет компилировать в OBJ-файл 18.
Какая команда позволяет выполнять программу 19. Какая команда позволяет выполнять программу до строки, на которой установлен курсор 20. Для чего служит команда DOS Shell 21. Какая команда позволяет включить или выключить полный набор меню 22. Какая команда позволяет регенерировать изображение на экране 23. Какая команда позволяет сохранить файл под другим именем 24.
Для чего служит команда Get Info Лабораторная работа 2 Ввод - вывод данных 2 часа Цель работы Изучение структуры исполняемого файла, типов данных и операторов ввода-вывода системы TURBO C. Функция Main Каждый исполняемый файл системы Турбо Си программа должен содержать функцию main. Код- задающий тело функции main, заключается в фигурные скобки и. Общая структура функции main такова main
Код, реализующий main Комментарии Текст на Турбо Си, заключенный в скобки и , компилятором игнорируется. Комментарии служат двум целям документировать код и облегчить отладку. Если программа работает не так, как надо, то иногда оказывается полезным закомментировать часть кода т.е. вынести ее в комментарий , заново скомпилировать программу и выполнить ее . Если после этого программа начнет работать правильно, то значит, закомментированный код содержит ошибку
и должен быть исправлен . Директивы Include Во многие программы на Турбо Си подставляются один или несколько файлов, часто в самое начало кода главной функции main. Появление директив include файл1 include файл2 include файлn приводит к тому , что препроцессор подставляет на место этих директив тексты файлов файл1, файл2 , , файлn соответственно. Если имя файла заключено в угловые скобки , то поиск файла производится в специальном разделе подстановочных
файлов. В отличие от многих других операторов Турбо Си директива Include не должна оканчиваться точкой с запятой . Макро С помощью директивы define, вслед за которой пишутся имя макро и значение макро, оказывается возможным указать препроцессору, чтобы он при любом появлении в исходном файле на Турбо Си данного имени макро заменял это имя на соответствующие значения макро .
Например, директива define pi 3.1415926 связывает идентификатор pi со значением 3.1415926. После значения макро не ставится. Типы данных В Турбо Си переменные должны быть описаны, а их тип специфирован до того, как эти переменные будут использованы. При описании переменных применяется префиксная запись , при которой вначале указывается тип, а затем - имя переменной. Например float weight int examscore char ch
С типом данных связываются и набор предопределенных значений, и набор операций, которые можно выполнять над переменной данного типа. Переменные можно инициализировать в месте их описаний. Пример int height 71 float income 26034.12 Простейшими скалярными типами, предопределнными в Турбо Си, являются char Представляется как однобайтовое целое число int Двубайтовое целое long Четырхбайтовое целое float Четырхбайтовое вещественное double
Восьмибайтовое вещественное Оператор printf вывод на терминал Функцию printf можно использовать для вывода любой комбинации символов, целых и вещественных чисел, строк, беззнаковых целых, длинных целых и беззнаковых длинных целых. Пример printfnВозраст Эрика - d. Его доход .2f,age,income Предполагается, что целой переменной age возраст и вещественной переменной income доход присвоены какие-
то значения. Последовательность символов n переводит курсор на новую строку. Последовательность символов Возраст Эрика - будет выведена с начала новой строки. Символы d - это спецификация для целой переменной age. Следующая литерная строка Его доход . 2f - это спецификация символ преобразования формата для вещественного значения, а также указание формата для вывода только двух цифр после десятичной точки.
Так выводится значение переменной income Символ формата Тип выводимого объектас char s строка d int o int в восьмеричном виде u unsigned int x int в шестнадцатеричном виде ld long в десятичном виде lo long в восьмеричном виде lu unsigned long lx long в шестнадцатеричном виде f floatdouble c фиксированной точкой e floatdouble в экспоненциальной форме g floatdouble в виде f или е в зависимости от значения lf long float c фиксированной точкой le long float в экспоненциальной
форме lg long float в виде f или е в зависимости от значения Оператор scanf ввод с клавиатуры Оператор scanf является одной из многих функций ввода, имеющихся во внешних библиотеках. Каждой вводимой переменной в строке функции scanf должна соответствовать спецификация. Перед именами переменных необходимо оставить символ . Этот символ означает взять адрес. Пример include stdio.h main int weight, вес height рост printf
Введите ваш вес scanfd, weight printf Введите ваш pocт scanfd, height printfnnВес d, рост dn, weight,height Задание Составить и распечатать программу вывода на экран своих анкетных данных различного типа - вводимых с клавиатуры с помощью директивы define инициализированных при описании. Лабораторная работа 3 Операторы и операции 2 часа Цель работы Изучение арифметических, логических операций и операций отношения и присваивания.
Основу языка Турбо Си составляют операторы. Оператором-выражения называют выражение, вслед за которым стоит точка с запятой. В Турбо Си точки с запятой используются для разделения операторов. Принято группировать все операторы в следующие классы присваивания, вызов функции, ветвления и цикла. В операторе присваивания используется операция присваивания , Например c a b Действие такого оператора можно описать следующими словами с присваивается значение
а, умножение на b . Значение, присваиваемое переменной с, равняется произведению текущих значений переменных а и b. Операторы часто относятся более чем к одному из четырех классов. Например оператор if c cube a b d составлен из представителей следующих классов присваивания, вызов функции, и ветвление. К понятию оператора вплотную примыкает понятие операции. Различают следующие группы операций Турбо Си арифметические операции, операции отношения, операции
присваивания, логические операции, побитовые операции, операция вычисления размера sizeof и операция следования запятая. Арифметические операции К арифметическим операциям относятся сложение , вычитание деление , умножение и остаток . Все операции за исключением остатка определены для переменных типа int , char , float. Остаток не определен для переменных типа float. Все арифметические операции с плавающей точкой производятся над операндами двойной точности.
Операции отношения В языке определены следующие операции отношения проверка на равенство , проверка на неравенство , меньше , меньше или равно , больше , больше или равно . Все перечисленные операции вырабатывают результат типа int. Если данное отношение между операндами истинно, то значение этого целого - единица, а если ложно, то нуль. Все операции типа больше-меньше имеют равный приоритет, причем он выше , чем приоритет операций
и . Приоритет операции присваивания ниже приоритета всех операций отношений. Для задания правильного порядка вычислений используются скобки. Логические операции В языке имеются три логические операции операции И and операции ИЛИ or отрицание Аргументами логических операций могут быть любые числа, включая задаваемые аргументами типа char. Результат логической операции-единица, если истина, и нуль, если ложь.
Вообще все значения, отличные от нуля, интерпретируются как истинные. Логические операции имеют низкий приоритет, и поэтому в выражениях с такими операциями скобки используются редко. Вычисление выражений, содержащих логические операции, производится слева направо и прекращается усекается, как только удается определить результат. Если выражение составлено из логических утверждений т.е. выражения, вырабатывающие значения типа int,
соединенных между собой операцией И , то вычисление выражения прекращается, как только хотя бы в одном логическом утверждении вырабатывается значение нуль. Если выражение составлено из логических утверждений, соединенных между собой операцией ИЛИ , то вычисление выражения прекращается, как только хотя бы в одном логическом утверждении вырабатывается ненулевое значение. Вот несколько примеров, в которых используются логические операции if i 50 j 24
if value1 value2 value3 50 value4 20 Операции присваивания К операциям присваивания относятся и , а также префиксные и постфиксные операции и Все операции присваивания присваивают переменной результат вычисления выражения. Если тип левой части присваивания отличается от типа правой части, то тип правой части приводится к типу левой. В одном операторе операция присваивания может встречаться несколько раз.
Вычисления производятся справа налево. Например a b c d Вначале переменной d присваивается значение с, затем выполняется операция умножения на d, и результат присваивается переменной а. Операции , и являются укороченной формой записи операции присваивания. Их применение проиллюстрируем при помощи следующего описания a b означает a a b. a - b означает a a - b. a b означает a a b. a b означает a a b. Префиксные и постфиксные операции и используют для увеличения
инкремент и уменьшения декремент на единицу значения переменной. Семантика указанных операций следующая a увеличивает значение переменной а на единицу до использования этой переменной в выражении. а увеличивает значение переменной а на единицу после использования этой переменной в выражении. a уменьшает значение переменной а на единицу до использования этой переменной в выражении. a уменьшает значение переменной а на единицу после использования этой переменной в выражении.
Операцию sizeof размер можно применить к константе, типу или переменной. В результате будет получено число байтов, занимаемых операндом. Например printf nРазмер памяти под целое d, sizeof int printf nРазмер памяти под cимвол d, sizeof сhar Задание Cоставить и распечатать программу, использующую оператор присваивания, арифметические операции и операцию sizeof. Лабораторная работа 4 Функции 2 часа
Цель работы Изучение логической организации программы и простейшее использование функций в Турбо Си. Процесс разработки программного обеспечения предполагает разделение сложной задачи на набор более простых задач и заданий. В Турбо Си поддерживаются функции как логические единицы блоки текста программы , служащие для выполнения конкретного задания. Важным аспектом разработки программного обеспечения является функциональная декомпозиция.
Функции имеют нуль или более формальных параметров и возвращают значение скалярного типа, типа void пусто или указатель. При вызове функции значения, задаваемые на входе, должны соответствовать числу и типу формальных параметров в описании функции. Если функция не возвращает значения т.е. возвращает void, то она служит для того, чтобы изменять свои параметры вызывать побочный эффект или глобальные для функции переменные. Например, функция, возвращающая куб ее вещественного аргумента double cube double
x return x x x Аргумент х типа double специфицируется вслед за первой открывающей скобкой. Описание extern , помещаемое в функцию main , является ссылкой вперед , позволяющей использовать функцию cube в функции main. Ключевое слово extern можно опускать, но сама ссылка вперед на описание функции является обязательной. Логическая организация простой программы на Турбо Си. Турбо Си предоставляет необычайно высокую гибкость для физической организации программы или
программной системы. В табл.1 показана типичная организация небольшой программы на Турбо Си. Заголовки и комментарии, описывающие программу Директивы include include имяфайла1 include имяфайлаn Макро define макро1 значение1 define макроn значениеn Описание глобальных переменных типданных глобальнаяпеременная1 типданных глобальнаяпеременнаяn main
описание extern, обеспечивающие ссылку вперед на функции и используемые в теле функции main Описание локальных переменных типданных локальнаяпеременная1 типданных локальнаяпеременнаяm Тело функции main Функции, используемые в программе main Типданных имяфункции1 формальные параметры Описание extern, обеспечивающее ссылку вперед на функции и используемые в теле данной функции Описание локальных переменных типданных локальнаяпеременная1 типданных
локальнаяпеременнаяu Тело функции - 1 Типданных имяфункцииn формальные параметры Описание extern, обеспечивающая ссылку вперед на функции и используемые в теле данной функции n Описание локальных переменных типданных локальнаяпеременная1 типданных локальнаяпеременнаяr Тело функции n Cтруктура каждой функции совпадает со структурой главной программы main. Поэтому функции иногда еще называют подпрограммами.
Подпрограммы решают небольшую и специфическую часть общей задачи. Задание Составить и распечатать программу, вычисляющую кубы чисел, заданных разными способами. Лабораторная работа 5 Типы констант. Использование констант в Турбо Си 2 часа Цель работы Изучение использования констант различных типов в Турбо Си. В языке Турбо Си имеются четыре типа констант целые, вещественные с плавающей точкой, символьные
и строковые. Константы целого типа Константы целого типа могут задаваться в десятичной, двоичной, восьмеричной или шестнадцатеричной системах счисления. Десятичные целые константы образуются из цифр. Первой цифрой не должен быть нуль. Восьмеричные константы всегда начинаются с цифры нуль, вслед за которой либо не стоит ни одной цифры, либо стоят несколько цифр от нуля до семерки. Шестнадцатеричные константы всегда начинаются с цифры нуль и символа х или
Х, все, за которыми может стоять одна или более шестнадцатеричных цифр. Шестнадцатеричные цифры - это десятичные цифры от 0 до 9 и латинские буквы a, b, c, d, e, f, или A, B, C, D, E, F. Например задание константы 3478 в десятичном, восьмеричном и шестнадцатеричном виде int a 3478, b 06626, c 0хD96 К любой целой константе можно справа приписать символ l или L, и это будет означать, что константа - длинная целая long integer.
Символ u или U, приписанный к константе справа, указывает на то, что константа целая без знака unsigned long. Считается, что значение любой целой константы всегда неотрицательно. Если константе предшествует знак минус, то он трактуется как операция смены знака, а не как часть константы. Константы вещественного типа Константы с плавающей точкой называемые вещественными состоят из цифр, десятичной точки и знаков десятичного порядка е или
Е. Ниже приведены все возможные варианты записи констант вещественного типа 1. 2e1 .1234 .1e3 .1 2E1 1.234 0.0035e-6 1.0 2e-1 2.1e-12 .234 Cимвольные константы Cимвольные константы заключаются в апострофы кавычки. Все символьные константы имеют в Турбо Си значение типа int целое, совпадающее с кодом символа в кодировке ASCII. Одни символьные константы соответствуют символам, которые можно вывести на печать, другие - управляющим символам, задаваемым с помощью esc - последовательности, третьи - форматирующими символами, также задаваемым
с помощью esc - последовательности. Например символ апостроф задается как , переход на новую строку - как , а обратный слэш - как . Каждая esc - последовательность должна быть заключена в кавычки. Управляющие коды n Новая строка t Горизонтальная табуляция v Вертикальная табуляция b Возврат на символ r Возврат в начало строки f Прогон бумаги до конца страницы Обратный слэш Одинарная кавычка
Двойная кавычка а Звуковой сигнал Знал вопроса ddd Код символа в ASCII от одной до трех восьмеричных цифр xhhh Код символа в ASCII от одной до трех шестнадцатеричных цифр. Строковые константы Строковые константы состоят из нуля или более символов, заключенных в двойные кавычки. В строковых константах управляющие коды задаются с помощью esc - последовательности.
Обратный слэш используется как символ переноса текста на новую строку. Пример описания строковых констант include stdio.h main char str1, str2 str1 Пример использованияnn str2строковых констант.nn printfstr1 printfstr2 Программа выведет следующий текст Пример использования строковых констант. Задание Написать и распечатать программу, выводящую на экран строковую константу и число, состоящее
из цифр вашего дня рождения, заданное в виде десятичной, восьмеричной и шестнадцатеричной константы. Лабораторная работа 6 Управляющие структуры Турбо Си 2 часа Цель работы Изучение приемов использования операторов ветвления и операторов циклов в Турбо Си. Управляющие структуры или операторы управления служат для управления последовательностью вычислений в программе. Операторы ветвления и циклы позволяют переходить к выполнению другой части программы или
выполнять какую-то часть программы многократно, пока удовлетворяется одно или более условий . Блоки и составные операторы. Любая последовательность операторов, заключенная в фигурные скобки, является составным операторомблоком. Составной оператор не должен заканчиваться , поскольку ограничителем блока служит сама закрывающаяся скобка. Внутри блока каждый оператор должен ограничиваться . Составной оператор может использоваться везде, где синтаксис языка допускает применение обычного оператора.
Пустой оператор. Пустой оператор представляется символом , перед которым нет выражения. Пустой оператор используют там, где синтаксис языка требует присутствия в данном месте программы оператора, однако по логике программы оператор должен отсутствовать. Необходимость в использовании пустого оператора часто возникает, когда действия, которые могут быть выполнены в теле цикла, целиком помещаются в заголовке цикла.
Операторы ветвления. К операторам ветвления относятся if, if else, ,switch и go to. Общий вид операторов ветвления следующий if логическое выражение оператор if логическое выражение оператор1 else оператор2 логическое выражение выражение1 выражение2 Если значение логического выражения истинно, то вычисляется выражение1, в противном случае вычисляется выражение2. switch выражение целого типа case значение1 последовательностьоператоров1 break case значение2
последовательностьоператоров2 break case значениеn последовательностьоператоровn break default последовательностьоператоровn1 Ветку default можно не описывать. Она выполняется, если ни одно из вышестоящих выражений не удовлетворено. Оператор цикла. В Турбо Си имеются следующие конструкции, позволяющие программировать циклы while, do while и for. Их структуру можно описать следующим образом while логическое выражение оператор Цикл с проверкой условия наверху do оператор while логическое выражение
Цикл с проверкой условия внизу for инициализация, проверка, новоезначение оператор Задание 1. Составить и получить распечатку программы выбора всех четных чисел от 1 до 1000. 2. Составить и получить распечатку программы выбора всех нечетных чисел от 1 до 1000. 3. Составить и получить распечатку программы выбора всех чисел, заканчивающихся на цифру 5, от 1 до 1000. 4. Составить и получить распечатку программы выбора всех чисел, заканчивающихся на цифру 2, от 1 до 1000. 5.
Составить и получить распечатку программы выбора всех чисел, заканчивающихся на цифру 3, от 1 до 1000. 6. Составить и получить распечатку программы выбора всех чисел, заканчивающихся на цифру 4, от 1 до 1000. Лабораторная работа 7 Массивы в ТС 2 часа Цель работы Изучение приемов объявления и обращения к массивам, использования функций и директивы define при работе с массивами. Массивы - это набор объектов одинакового типа, доступ к которым осуществляется прямо по
индексу в массиве. Обращение к массивам в Турбо Си осуществляется и с помощью указателей . Массивы можно описывать следующим образом типданных имямассива размер массива Используя имя массива и индекс, можно адресоваться к элементам массива имямассива значение индекса Значения индекса должны лежать в диапазоне от нуля до величины, на единицу меньшей, чем размер массива, указанный при его описании. Вот несколько примеров описания массивов char name 20 int grades 125 float
income 30 double measurements 1500 Первый из массивов name содержит 20 символов. Обращением к элементам массива может быть name 0, name 1, name19. Второй массив grades содержит 125 целых чисел. Обращением к элементам массива может быть grades 0,grades 1 grades124. Третий массив incom содержит 30 вещественных чисел. Обращением к элементам массива может быть income 0, incom1 income29.
Четвертый массив measurements содержит 1500 вещественных чисел с двойной точностью. Обращением к элементам массива может быть measurements0,measurements1 measurements1499. Программа, иллюстрирующая использование массивов Файл array.с include stdio.h define size 1000 int data size main extern float average int a , int s int i for i0 i size i data i i printf nСреднее значение массива data fn,average data,size float average int a ,int s float sum0.0 int i for i0 i s i suma i
return sums В программе заводится массив на 1000 целых чисел. При помощи функции average подсчитывается сумма элементов этого массива. Первым формальным параметром функции average является массив. В качестве второго параметра функции передается число суммируемых значений в массиве a. Обратите внимание на использование константы size размер.
Если изменяется размерность массива, задаваемая этой константой, то это не приводит к необходимости менять что-либо в самом коде программы. Задание Составить и распечатать программу, решающую задачу вычисления максимального и минимального значений с использованием функций max и min. В качестве входных значений для указанных функций задаются массив чисел с плавающей точкой и размер такого массива. ИТОГОВЫЕ КОНТРОЛЬНЫЕ ЗАДАНИЯ. 1. Построить 10 вложенных квадратов окрашенных поочередно
в зеленый и красные цвета. 2. Получить в центре экрана изображение, состоящее из 10 вложенных квадратов со сторонами 10,20,30 100 3. Вывести на экран 2 прямоугольника. Один заштриховать вертикальными прямыми, другой - горизонтальными 4.Построить прямоугольник со сторонами 30 и 50, центр которого совмещен с центром экрана. Стороны прямоугольника должны быть параллельны сторонам экрана. 5.С помощью рассмотренных графических операторов можно получать на экране изображения, состоящие
не целиком из окружностей, а из их частей. Написать программу, выполняющую построение красного полумесяца, а также программы, выполняющие построение фигур, показанных на рисунке фигуры закрашиваются зеленым цветом. 6.Дано 6 целых чисел, определяющих положение вершин треугольника, расположенного в левой половине экрана. Построить на экране этот треугольник, а также треугольник, симметричный данному относительно вертикальной прямой, проходящей через середину экрана.
7.Четыре целых числа задают положение концов отрезков на экране. Получить изображение этого отрезка и изображение отрезка, центрально-симметричного данному относительно точки, расположенной в центре экрана. 8.Получить в центре экрана изображение, состоящее из 9 вложенных квадратов и раскрасить его 3 цветами. 9.Построить 9 концентрических окружностей, окрашенных поочередно в зеленый, красный и коричневый цвета. 1.Транспонированием квадратной матрицы называется такое ее преобразование,
при котором строки и столбцы меняются ролями i-й столбец становится i-й строкой. Например, транспонирование матрицы 0 1 2 0 3 6 3 4 5 дает матрицу 1 4 7 6 7 8 2 5 8 Дана квадратная матрица размера nn. Получить транспонированную матрицу. 2.Таблица круга футбольного чемпионата, в котором участвовало n команд, задана своей верхней правой частью первые n чисел данной последовательности С1,С2 относятся к первой строке таблицы, следующие n-1
чисел - ко второй и т.д. Построить всю таблицу целиком. 3.Шахматную доску будем представлять символьной матрицей размера 88. Даны натуральные р и q 1 p 8,1 q 8- но 8 мера вертикали и горизонтали, определяющие местоположение ферзя. Соответствующий элемент матрицы надо положить равными символу Ф. Поля, находящиеся под угрозой ферзя, надо положить равными символу , а остальные поля - символу 0.
Строки матрицы вывести одну под другой. Решить аналогичную задачу для коня. 1.Дана действительная матрица xij размера mn упорядочить переставить строки матрицы а по неубыванию сумм элементов строк, б по неубыванию наименьших элементов строк, в по невозрастанию наибольших элементов. УКАЗАНИЕ Определить числовой массив b1 bm, положив равным, соответственно, сумме элементов i-й строки, наименьшему элементу i-й строки, наибольшему элементу i-й строки.
Можно вместо массива b1 bm рассмотреть дополнительный столбец x1n1, x2n1 xmn1. 2.В данной целочисленной квадратной матрице размером nn n-некоторая константа указать индексы всех элементов, имеющих наибольшее значение. 3.Дано натуральные x1,y1 x10,y10, целочисленная матрица aij i1 10,j1 10. Последовательность x1,y1 x10, y10 задает положение 10 точек на экране. Матрица указывает, как точки соединены между собой aij1, или i-я точка соединена с j-й и aij0 в противном
случае aijaji. Получить на экране точки, заданные последовательностью x1,y1 x10,y10 и соединить их так, как указано в данной матрице. 4.Дана целочисленная квадратная матрица aij размера 77 Получить b1 b7, где bi- это а наименьшее из значений элементов, находящихся в начале i-й строки матрицы до элемента aii включительно, б значение 1 по порядку положительного элемента i-й строки если таких элементов нет, то принять bi-1. 5.Дана действительная квадратная матрица размера nn.
Получить x1xnx2xn-1 xnx1, где xk- наибольшее значение элементов k-го столбца данной матрицы. 1.Написать программу, в ходе выполнения которой круг зеленого цвета, появившись в центре экрана и постепенно расширяясь, увеличивается в размерах в 3 раза, а затем сжимается до начальных размеров. 2.Даны 3 целых числа, определяющих положение центра окружности на экране и ее радиус. Если окружность не пересекает горизонтальную прямую, проходящую через середину экрана, то высветить
данную окружность и окружность, симметричную данной относительно этой прямой. 3.Написать программу, в ходе выполнения которой зеленый квадрат, появившись в левом верхнем углу экрана, перемещается вправо вниз по диагонали. 4.Пропеллер состоит из 2 закрашенных треугольников. Получить на экране вращающийся пропеллер. 5.Дано 2 натуральных числа. Написать программу, в ходе выполнения которой отрезок, появившись в левом верхнем углу экрана, передвинется
по экрану так, что его левый конец совместится с точкой, положение которой определяется данными числами. Весь путь отрезка должен состоять из 2 участков - горизонтального и вертикального. 6.Дано 8 натуральных чисел x1,y1,l1,h1 и x2,y2,l2,h2. Каждая четверка чисел задает положение на экране прямоугольника со сторонами, параллельными сторонам экрана. Значения x1,y1 определяет положение левого нижнего угла прямоугольника с номером i i1,2,li-длину
основания, hi-высоту. Построить прямоугольник и закрасить 1-й зеленым цветом, второй- красным. Если прямоугольники пересекаются, то их общую часть закрасить коричневым цветом. 7.Дана последовательность, состоящая из 40 натуральных чисел x1,y1,l1,h1 x10,y10,l10,h10. Каждая 4-ка чисел xi,yi,li,hi задает положение прямоугольника на экране. Высветить все прямоугольники и закрасить их коричневым цветом.
8. Дано 6 целых чисел x1,y1,x2,y2,x3,y3. Каждая пара xi,yii1,2,3 определяет положение одной из вершин треугольника на экране. Если данные числа определяют прямоугольный треугольник, высветить его на экране, в противном случае вывести сообшение1 треугольник не прямоугольный. 1. Система 10 материальных точек на плоскости задана с помощью действительных чисел x1,y1,m1 x10,y10,m10, где xi,yi- координаты i-й точки, а mi- ее масса,i1 10.
Получить координаты центра масс центра тяжести системы, а также расстояния от центра масс до каждой из точек системы. Как изменится программа, если исходные данные будут расположены в следующем порядке x1 x10,y1 y10,m1 m10 УКАЗАНИЕ Координаты центра масс могут быть вычислены по следующим формулам Хцм Y 2. Даны действительные a1 a18. Получить а а1,а10,а2,а11 а9,а18, б а1,а18,а2,а17 а9,а10, в а1а18,а2а17 а9а10. 3.Даны символы s1 s17. Получить а s17,s1,s2 s16 б s11,s12 s17,s1,s2 s10 в s12,s13 s17,s11,s10
s1. 4.Даны действительные x1 x11,y1 y11. Получить действительные x1 x11,y1 y11, преобразовав для получения xi,yi члены xi,yi по правилу если они оба отрицательны, то каждый из них увеличить на 0.5, если отрицательно только одно число, то отрицательное число заменить его квадратом, если оба числа неотрицательны, то каждое из них заменить на среднее арифметическое исходных значений. 5.Даны символы s1 s80. Определить количество неравенств среди аs1s41,s2s42 s40s80 бs1s80,s2s79 s40s41.
СПИСОК ЛИТЕРАТУРЫ 1. М.Уэйт, С.Прата, Д.Мартин Язык Си Пер с англ М. Мир, 1988 463 с ил. 2. Уинер Р. Язык Турбо Си Пер с англ М. Мир, 1991 384 с ил. 3. Берри Р Микинз Б. Язык Си введение для программистов Пер. с англ М.Финансы и статистика, 1988 с ил. 4. TURBO C. Borland
International. Inc. 1990.
! |
Как писать рефераты Практические рекомендации по написанию студенческих рефератов. |
! | План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом. |
! | Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач. |
! | Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты. |
! | Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ. |
→ | Виды рефератов Какими бывают рефераты по своему назначению и структуре. |