Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Работа подготовлена на кафедре АвтоматикиСодержание книги
Поиск на нашем сайте
© Новосибирский государственный технический университет, 2009 г. Лабораторная работа № 1 ТЕХНОЛОГИЯ РАБОТЫ С ПРОГРАММАМИ НА ЯЗЫКЕ СИ В СИСТЕМЕ ПРОГРАММИРОВАНИЯ BORLAND C++ BUILDER. ЭЛЕМЕНТАРНЫЕ ОПЕРАЦИИ. 1. Цель работы Изучить процесс прохождения программы на языке СИ в среде программирования BORLAND C++ BUILDER. Ознакомиться с технологией отладки программ. Изучить основные конструкции операторов присваивания и директивы препроцессора. 2. Краткие теоретические сведения 2.1. Среда программирования C++Builder Borland (далее BC) представляет собой современный программный комплекс, включающий в себя редактор проектов, текстовый редактор, компиляторы с языков С, С++, Ассемблер, компоновщик, средства отладки программ и библиотеки функций, программных и графических компонентов. Вход в среду выполняется через меню «Программы»-«Borland Developer Studio 2006»-«C++Builder», после чего для выполнения лабораторных работ данного курса создается новый консольный проект командами «File»-«New»-«Other». В открывшемся окне «New Items» выбирается приложение «Console Application», язык (С, С++) и, при необходимости, указывается путь к файлам проекта (Specify project source). После нажатия кнопки «OK» в текстовом редакторе открывается файл c именем unit1.c, содержащий пустую функцию main, внутрь которой вводится текст программы. 2.2. Компиляция, сборка и запуск программы на выполнение производится командой меню «Run»-«Run» или нажатием клавиши <F9> на клавиатуре. Пошаговая отладка (при отсутствии других функций в программе) производится командами меню «Run»-«Step over» или нажатием клавиши <F8> на клавиатуре. Контроль значений переменных производится в окне, вызываемом командами меню «Run»-«Add watch», или нажатием клавиш <Ctrl+F5> на клавиатуре. Справочная информация о среде программирования, библиотечных функциях и операторах языка может быть получена через команду меню «Help» или нажатием клавиши клавиатуры <F1> при нахождении курсора в операторе языка или имени библиотечной функции. 2.3. В процессе работы для ввода-вывода следует использовать функции printf и scanf. Основные форматы, используемые в этих функциях: %d - ввод/вывод чисел типа int; %o - то же, но в восьмеричном виде; %f - ввод/вывод чисел типа float и double; %с - ввод/вывод одного символа (char); %s - ввод/вывод строки (массив char); Дополнительно при выводе данных после знака % можно указывать длину поля вывода и количество знаков после запятой (только для %f). Например: %5d - вывод целого числа в поле длиной 5 позиции; %7.3f - вывод числа float в поле 7 позиций, 3 знака после запятой; %20s - вывод строки в поле 20 позиций. Данные при выводе выравниваются по правой границе. Для выравнивания по левой границе после «%» дополнительно указывается знак " - ", например «%-7.3f». В форматной строке можно использовать управляющие константы: \n - новая строка; \t - табуляция; \а - звуковой сигнал; \b - возврат на шаг. 3. Методические указания 3.1. При выполнении работы следует стремиться максимально упростить выражения в операциях присваивания. Для этого следует использовать операции инкремента и декремента, а также операторы «+=», «*=» и т. п. 3.2. Все константы, используемые в программе, должны быть описаны директивами препроцессора #define. 3.3. Для использования функций ввода/вывода printf() и scanf() необходимо включить в программу файл stdio.h директивой #include <stdio.h> 3.4. Все программы должны быть отлажены в пошаговом режиме с выводом информации о значениях переменных в окно отладки 4. Порядок выполнения работы 4.1. Написать программу, выполнявшую арифметические и логические операции над целыми переменными А, В, С, D по вариантам (табл.1.1). Использовать глобальные статические переменные и инициализацию при компиляции. Вывести значения переменных с помощью функции printf() в заданном формате (рис.1.1). Переменные С и D печатать в восьмеричном виде. 4.2. Модифицировать программу, описав переменные как локальные и задав их значения с помощью прямого присваивания. Сравнить результаты с п. 4.1. 4.3. Изменить программу, применив для ввода значений переменных функцию scanf(). Сравнить результаты. 4.4. Описать переменные как автоматические. Вывести их значения до присваивания. Объяснить полученные результаты. 4.5. Повторить п.4.1, разместив все описания в отдельном файле. 4.6. Повторить п.4.1, использовав вместо переменных А, В, С, D статический массив.
Таблица 1.1
Исходные данные: A = 12 B = 8 C = 34 D = 123
Результат: A = 23 B = 334 C = 45 D = 177
Рис.1.1 Пример вывода результатов 5. Содержание отчета.
5.1. Цель работы. 5.2. Задание. 5.3. Тексты программ. 5.4. Полученные результаты. 5.5. Выводы.
6. Контрольные вопросы
6.1. Какие классы памяти существуют в языке СИ? 6.2. Можно ли инициализировать автоматическую переменную? 6.3. Какая операция имеет больший приоритет: «+» или «++»? 6.4. Какая операция имеет больший приоритет: «&&» или «&»? 6.5. В каком случае размерность массива при его описании можно не указывать? 6.6. Какая логическая операция используется для обнуления группы двоичных разрядов? 6.7. Особенности выполнения операции арифметического сдвига вправо. 6.8. Чем определяется область видимости и время жизни переменной? 6.9. Когда при описании переменной надо явно указывать, что она static? auto? Лабораторная работа №2. ОПЕРАТОРЫ IF, IF-ELSE, SWITCH, УСЛОВНАЯ ОПЕРАЦИЯ. 1.Цель работы.
Ознакомиться с основными конструкциями условных операторов языка СИ.
2. Краткие теоретические сведения.
В общем случае условный оператор if в языке СИ записывается в виде
if (выражение) оператор1; else оператор2; или if (выражение) оператор1; Проверяется значение выражения. Если оно не равно 0, выполняется оператор1, в противном случае оператор2. Далее в любом случае выполняется следующий оператор.
Оператор switch имеет вид:
switch (выражение) { case конст1: оператор1; case конст2: оператор2; case констЗ: оператор3; … default: оператор4; } Значение выражения в switch поочередно сравнивается с константами конст1, конст2, конст3. В случае равенства выполняется соответствующий оператор (группа операторов) до конца switch или до оператора break. Если ни одна из констант не равна значению выражения, выполняются операторы, начиная с метки default. Если default отсутствует, не выполняется никаких действий. Условная операция совмещает в себе операций проверки условия и присваивания. Она записывается в виде (выражение)? выражение1: выражение2; Если выражение не равно 0, операция возвращает значение выражения1, иначе выражения2. 3. Методические указания 3.1. Для ввода текстовой строки используйте функцию gets(): char str[50]; gets(str); 3.2. При написании программы цикл следует организовать с помощью операторов if и goto. Операторы циклов применять не следует. Признаком конца строки является символ ‘\0’. 4. Порядок выполнения работы 4.1. Написать программу, выполняющую действия со строкой символов по вариантам (табл.2.1). Для модификации символов использовать условную операцию. Вывести исходную и модифицированную строки. 4.2. Повторить п. 4.1., использовав для реализации п.1 задания оператор if, а для п.2 - конструкцию if-else. Сравнить результаты. 4.3. Повторить п.4.1., применив для выполнения п.2 задания оператор switch. Сравнить результаты.
Таблица 2.1
5. Содержание отчета 5.1. Задание. 5.2. Листинги программ по пп.4.1, 4.2 и 4.3. 5.3. Тестовый пример (исходная и модифицированная строки).
6. Контрольные вопросы 6.1. Пояснить логику работы оператора if – else. 6.2. Какой оператор используется для выхода из оператора switch? 6.3. Для чего используется метка default в операторе switch? 6.4. Реализовать с помощью условной операции функцию x = max(a,b) 6.5. Возможны ли вложенные операторы if? 6.6. Можно ли использовать выражения для задания констант в операторе switch? 6.7. Можно ли в теле оператора switch использовать вложенные операторы switch? 6.8. В каких случаях целесообразно использовать оператор goto? 6.9. Какова структура таблицы ASCII?
Лабораторная работа №3 ЦИКЛИЧЕСКИЕ СТРУКТУРЫ В ЯЗЫКЕ СИ. ОПЕРАТОРЫ FOR, WHIIE, DO-WHILE 1. Цель работы Ознакомиться с правилами оформления и использования операторов цикла в языке СИ
2. Краткие теоретические сведения В языке СИ возможны три основных конструкции операторов цикла. Оператор for имеет вид: for (оператор1; выражение; оператор2) оператор; например: for (i=0; i<=100; i++) a[i]=0; Оператор1 выполняется перед началом цикла (инициализация). Выражение является условием продолжения цикла. Если оно не равно 0, выполняется оператор (тело цикла). Затем выполняется оператор2 (модификация). Процесс повторяется до тех пор, пока выражение не станет равным 0. Оператор whilе имеет вид: while (выражение) оператор; например: while (x > 0) s += a[x]; В этом случае оператор повторяется до тех пор, пока выражение не равно 0 (условие истинно). Проверка условия производится до выполнения оператора. Цикл do-while имеет вид: do оператор; while (выражение); например: do { s[i]=0; i++; } while (i < 5); Такая конструкция отличается от вышеописанной только тем, что значение выражения проверяется после выполнения оператора (тела цикла). Во всех трех конструкциях циклов операторы могут быть составными. Для выхода из цикла до его нормального завершения используется оператор break. Он передает управление оператору, следующему за циклом. Оператор continue вызывает переход к началу цикла, т.е. к следующей итерации. 3. Методические указания В лабораторной работе используются все вышеописанные конструкции циклов. В табл. 3.1. указано, какие из них вы должны использовать при выполнении тех или иных пунктов задания. При написании программы с циклическими алгоритмами рекомендуется использовать фигурные скобки для явного указания тела цикла. Это уменьшает вероятность ошибок и делает понятной структуру программы. При вводе строк используйте функцию gets(), так как функция scanf() воспринимает пробелы в строке как разделители. Вывод строки на экран удобно выполнять функцией puts(). 4. Порядок выполнения работы Написать программу, выполняющую следующие действия: 4.1. Ввести две строки текста с подсказками при вводе; 4.2. Определить и вывести на экран длины строк (без конечного нулевого байта); 4.3. Объединить две строки в одну, удалив все пробелы; 4.4. Выполнить обработку строки (см. табл. 3.1). Обработку прекратить, если количество изменений будет больше четырех; 4.5. Вывести результирующую строку на экран.
Таблица 3.1
ПРИМЕЧАНИЕ: в таблице обозначены: 1 - оператор for; 2 - оператор while; 3 - оператор do-while. 5. Содержание отчета 5.1. Задание. 5.2. Листинг программы. 5.3. Тестовый пример (исходная и измененная строки).
6. Контрольные вопросы 6.1. Написать цикл while, эквивалентный циклу for. 6.2. Изобразить алгоритм работы цикла do-while. 6.3. В какой из трех конструкций циклов гарантируется хотя бы однократное выполнение тела цикла? 6.4. Какой оператор прерывает выполнение цикла? 6.5. Назначение оператора continue. 6.6. Как записать цикл с бесконечным числом повторений (бесконечный цикл) для каждого из операторов цикла? 6.7. Нарисовать блок-схему цикла while. 6.8. Привести пример вложенного цикла. 6.9. Чему равно значение переменной цикла при его нормальном завершении? Прерывании? 6.10. Можно ли в теле цикла менять переменную цикла?
Лабораторная работа № 4
УКАЗАТЕЛИ, ФУНКЦИИ
1. Цель работы Освоить правила написания и использования функций в языке СИ. Научиться использовать указатели при обработке массивов данных.
2. Краткие теоретические сведения
Функции в языке СИ оформляются следующим образом:
/* прототип функции */ long func(int, int, int*);
/ * описание функции * /
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-08; просмотров: 453; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.20.30 (0.008 с.) |