Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Лабораторная работа № 1






Министерство образования Российской Федерации

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

№____

ПРОГРАММИРОВАНИЕ

Часть 1. Язык СИ

Методические указания к лабораторным работам

Для студентов I курса АВТФ

(направления 220200 и 230100)

Дневной формы обучения

НОВОСИБИРСК

Составители: Г.П.Голодных, канд. техн. наук, доцент

А.В. Гунько, канд. техн. наук, доцент

Г.В. Саблина, канд. техн. наук, доцент

Рецензент: Л.В. Тюнина, к.т.н., доцент каф. Автоматики

Работа подготовлена на кафедре Автоматики

© Новосибирский государственный технический университет, 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

Вариант Задание
  А - сложить с В, С и D, увеличенными на 1. Результат умножить на 5. В - разделить по модулю 5. С - сложить с А, увеличенным на 1, и с В. В уменьшить на 1. D - выполнить поразрядное «и» 0-3 разрядов В и 2-го разряда С, сдвинутого вправо на 2 разряда.
    А - сложить с В, С и D, уменьшенными на 1.Результат разделить на 2. B - умножить на 3. С - уменьшить на величину А, деленной по модулю В. D - выполнить поразрядное «и» 2-8 разрядов В и 1-3 разрядов С, сдвинутых вправо на 2 разряда.
    А - сложить с В и С, увеличенными на 1 и разделить по модулю D. В - разделить на 6. С - сложить с В, уменьшенным на 1 и прибавить А. А увеличить на 1. D - выполнить поразрядное «и» 1-6 разрядов В и 0-2 разрядов С, сдвинутых вправо на 1 разряд.
    А - умножить на С, сложить с В и разделить по модулю D. В - уменьшить на 4. С - сложить с В, уменьшенным на 1, и прибавить А. А увеличить на 1. D - выполнить поразрядное «или» 6-7 разрядов В и 0-3 разрядов С, сдвинутых влево на 3 разряда.
    А - сложить с произведением B и С, деленным по модулю D. В - увеличить на 3. С - вычесть А и В, уменьшенные на 1. В не изменять. D - выполнить поразрядное «и» 0-3 разрядов B и 1-5 разрядов С, сдвинутых вправо на 1 разряд.
  А -умножить на В, разделить по модулю С и вычесть D. С и D уменьшить на 1. В - разделить по модулю 7. С - сложить с А и В и разделить на 3. А увеличить на 1, В уменьшить на 1. D - выполнить поразрядное «и» 1 или 5 разрядов В и 3-7 разрядов С, сдвинутых влево на 1 разряд.
  А - умножить на сумму В и С, деленную по модулю 6, затем прибавить D. D увеличить на 1. B - разделить на 7. С - вычесть А и В. А увеличить на 1, В уменьшить на 1. Результат разделить на 3. D - выполнить поразрядное «или» 0-5 разрядов В и 0-3 разрядов С, сдвинутых вправо на 2 разряда.
  А - разделить по модулю В, прибавить сумму С, увеличенного на 1, и D. D увеличить на 1. В - увеличить на 5. C - сложить с А, увеличенным на 1, и В. В уменьшить на 1. Результат разделить на 5. D - выполнить поразрядное «и» 2 или 6 разряда В и 4-8 разрядов С, сдвинутых влево на 2 разряда.
  A – сложить с произведением В и С, деленным по модулю 5. В и С уменьшить на 1. B - уменьшить на 8. C - умножить на В, разделить на сумму А и С, С увеличить на 2. D - выполнить поразрядное «и» 4-7 разрядов B, сдвинутых вправо на 2 разряда и 0-1 разрядов С, сдвинутых влево на 1 разряд.
  A - разделить по модулю В, прибавить произведение С и D, С увеличить на 1, D уменьшить на 1. B - разделить по модулю 3. C - сложить с А и B, разделить по модулю 2, результат умножить на 3. D - выполнить поразрядное «или» 0-2 разрядов В и 0-3 разрядов С, сдвинутых влево на 3 разряда.
  А - сложить с В, С и D, уменьшенными на 1. Результат разделить по модулю 4. В - увеличить на 4. С - сложить с А, уменьшенным на 1, и с В. Результат разделить на 2. D - выполнить поразрядное «или» 1-2 разрядов В и 4-го разряда С, сдвинутого вправо на 1 разряд.
  А - умножить на С, уменьшенное на 1 и сложить с D, увеличенным на 1 Результат разделить по модулю 5. В - разделить по модулю 2. С - сложить с А, уменьшенным на 1 и прибавить В. Результат разделить на 2. D - выполнить поразрядное «и» 2 или 6 разрядов В и 5-го разряда С, сдвинутого влево на 2 разряда.
  А - разделить по модулю С и сложить с В, уменьшенным на 1. Результат разделить по модулю D. В - уменьшить на 5. С - сложить с А, уменьшенным на 1 и прибавить В. В увеличить на 1. D - выполнить поразрядное «или» 2-5 разрядов В и 5 или 6 разрядов С, сдвинутых влево на 4 разряда.
  А - умножить на B, прибавить сумму C и D, уменьшенных на 1 Результат разделить на 3. В - разделить на 7. С - вычесть с А и B, увеличенные на 1. A не изменять. D - выполнить поразрядное «и» 5 разряда В и 6-7 разрядов С, сдвинутых вправо на 1 разряд.
  А - умножить на С, разделить на D и прибавить B, уменьшенное на 1. Результат разделить на 4. В - уменьшить на 6. С - сложить с суммой А и B, увеличенных на 1. Результат умножить на 2. D - выполнить поразрядное «или» 7 разряда В и 3 разряда С, сдвинутого вправо на 1 разряд.
  А - умножить на сумму B и C и разделить по модулю D. А и B уменьшить на 1. В - умножить на 2. С - сложить с А и В, уменьшенным на 1. Результат умножить на 4. D - выполнить поразрядное «или» 2 или 4 разрядов В и 1-2 разрядов С, сдвинутых вправо на 3 разряда.
  А - сложить с B и С, уменьшенными на 1, и с D, увеличенным на 1. Результат разделить на 3. В - разделить на 4. С - вычесть А, уменьшенное на 1 и прибавить В. B увеличить на 1. D - выполнить поразрядное «или» 1 разряда В и 4-5 разрядов С, сдвинутых влево на 1 разряд.
  А - сложить с В, С и D. Результат разделить на 2. В и С увеличить на 1, D уменьшить на 1. B - разделить на 9. С - увеличить на величину А, деленной по модулю 5. D - выполнить поразрядное «или» 3-6 разрядов В и 8 разряда С, сдвинутого вправо на 2 разряда.
  А - вычесть с В, С и D. Результат умножить на 3. В и С уменьшить на 1. B – умножить на 8. С – сложить с суммой А и В, деленной на 3. Результат уменьшить на 4. D - выполнить поразрядное «и» 7 или 8 разрядов В и 0-1 разрядов С, сдвинутых вправо на 3 разряда.
  А - сложить с В, умножить на С разделить на D. В увеличить на 1, С уменьшить на 1. B - разделить по модулю 4. С – вычесть A и прибавить произведение C и D, уменьшенных на 1. D - выполнить поразрядное «или» 4 разряда В и 7 разряда С, сдвинутого влево на 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?


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

mylektsii.su - Мои Лекции - 2015-2024 год. (0.01 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал