Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа Си 1.docx
Скачиваний:
52
Добавлен:
10.06.2015
Размер:
206.78 Кб
Скачать

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

С/C++: программы линейной структуры

Цель и содержание работы: Освоение процесса ввода, отладки и выполнения программ в интегрированной среде DevC++. Изучение основных математических операций и стандартных функций языка С/C++; освоение функций ввода и вывода данных, приобретение навыков составления алгоритмов и программ линейной структуры.

Теоретическое обоснование

Язык Си использует технологию структурного программирования, в основе которого лежит модульный принцип создания программ и использование базовых структур программирования. Язык С++ был разработан как объектно-ориентированное расширение языка Си и спроектирован в близком соответствии между его типами, операциями и операторами.

Интегрированная среда DevC++ является одной из свободно распространяемых версий языка, упрощающих процедуру ввода, отладки и выполнения программ на С и С++. Окно интегрированной среды DevC++ содержит 4 основные части: строка команд меню, окно редактирования программ, область сообщений компилятора, строку состояния (рисунок 1.1).

Строка команд меню содержит стандартные режимы: File(Файл), Edit(Редактирование), Search(Поиск), View(Вид), Project (Проект), Execute(Компиляция и исполнение программы), Options(Параметры), Tools(Инструменты), Window(Окно), Help(Помощь). Каждый режим содержит меню команд и соответствующие «горячие» клавиши, а так же пиктограмму инструментов, выполняющих эти команды и находящиеся строкой ниже. Рассмотрим основные команды.

Меню File содержит команды: Open(Открыть), при помощи которого открывается существующий программный файл или проект; New(Создать) – создается новый проект; Save(Сохранить) – сохраняется редактируемый файл; Save as(Сохранить как) – файл сохраняется под новым именем. Команда Close закрывает редактируемый проект, команда Exit служит для выхода из Среды.

Строка команд меню и инструменты

Окно редактирования

Область сообщений

Рисунок 1.1 – Общий вид интегрированной среды DevC++

Строка состояния

Меню Edit содержит пункты Cut (Вырезать), Copy (Копировать), Paste (Вставить), которые служат для вырезания, копирования, вставки выделенного фрагмента текста, как в любом текстовом редакторе.

Меню Execute содержит команду компиляции Compile (горячие клавиши [Ctrl]+[F9]); команду Run – исполнить (клавиша [F9]); команду компилировать и исполнить([Ctrl]+[F10]); команду отладить Debug([F8]).

Meню Help позволяет вызвать справочную систему ([F1]). Для получения справки о конкретной функции следует установить курсор на любой символ заголовка функции и нажать [Ctrl]+[F1].

Окно редактирования программ используется для ввода и редактирования программ на С/C++. В строке состояния указывается номер позиции и строки, в которой находится курсор, а так же общее количество строк программы. В области сообщений компилятора будут выведены сообщения о найденных ошибках при компиляции программ и их местонахождении, о ходе выполнения компоновки модулей.

Алгоритмы и программы линейной структуры

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

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

Организация ввода-вывода данных

Для форматного ввода-вывода данных скалярных типов и строк используются стандартные функции ввода/вывода, описанные в библиотеке stdio.h.

Для вводе используется стандартная функция scanf(), её синтаксис:

scanf (“форматная строка”, список параметров ввода);

Форматная строка заключается в кавычки и может содержать символы трех типов:

  • обычные символы, которые должны вводиться с клавиатуры в том же виде, в каком они содержатся в форматной строке;

  • спецификации преобразования, задающие формат ввода, которые начинаются с символа «%» и заканчиваются символом преобразования. Символы преобразования задают тип вводимой переменной: ‘c’ ‒ символ; «d», «i» - десятичное целое типа int; «D», «I» - десятичное целое типа long; «e», «E» - вещественное число в экспоненциальной форме, например, 5.12E-02; «f», «g», «G» - вещественное число с плавающей точкой; «o» («O») - восьмеричное число типа int (long); «x» («X») - 16-ричное число типа int (long); «u» («U») - беззнаковое целое типа int (long); «s» - строка символов; «lf» - вещественное число удвоенной точности;

  • управляющие символьные константы (например, ‘\n’ - переход к следующей строке).

Список параметров ввода отделяется от форматной строки запятой и содержит перечисление параметров ввода через запятые. В качестве параметров ввода используются адреса переменных, которые обозначается знаком символом ‘&’, стоящим перед именем вводимой переменной.

Количество спецификаций в форматной строке должно совпадать с числом выводимых параметров.

Пример 1.1. Даны две строки, содержащие функции форматного ввода:

scanf(“%f %f %f”, &a, &b, &c);

scanf(“%s%d%lf”, &simb1, &n, &x);

В первой строке вводятся три вещественных (%f) числа a, b, c, разделяемые при вводе с клавиатуры пробельными символами, ввод заканчивается нажатием клавиши [Enter]. Во второй строке вводятся: строка символов(%s) simb1, целое (%d) число n и вещественное число x с удвоенной точностью (%lf).

Для вывода используется функция printf(), её синтаксис:

Printf(“форматная строка”, список параметров вывода);

Форматная строка вывода аналогична форматной строке ввода.

Список параметров вывода отделяется от форматной строки запятой и содержит перечисление параметров вывода через запятые.

Пример 1.2. Дан фрагмент программы на языке С, С++, содержащий функции форматного вывода:

printf(“Введите стороны треугольника”);

printf(“Результат: a=%9.4f b=% 3d \n”,a,b);

В первой строке в форматной части отсутствуют параметры вывода, на экран выводится фраза «Введите стороны треугольника», курсор остается на той же строке, в следующей позиции после последнего выведенного символа.

Во второй строке выводится результат вычисления: фраза «Результат:», имя переменной и знак равенства «a=», значение переменной a в формате 9.4f (9 - общая ширина поля вывода позиций, из них 4 позиции на десятичные цифры после точки, одна позиция на десятичную точку, остальные 4 позиции ‒ на знак числа и его целую часть), имя следующей переменной и знак равенства «b=», значение переменной b в формате d, с шириной поля – три.

Если значение a=4.23, а значение b=3, на экране появится строка:

Результат: a= 4.2300 b=3

После вывода данной строки, курсор перейдет в начало следующей строки, так как в конце форматной строки стоит управляющий символ ‘\n’.

В языке С++ ввод-вывод может осуществляться не только с помощью функций, но и с помощью операций. Операция вывода <<, операция ввода >>.

Синтаксис вывода на экран: cout<< выражение.

Синтаксис ввода с клавиатуры: cin<< переменная.

При использовании операций ввода-вывода необходимо включить в программу файл iostream.h.

Пример 1.3. Дана программа на языке С, С++.

#include <iostream.h>

int i;

main(){

cout << "Введите целое число ";

cin >> i;

cout << " Квадрат числа: " << i*i << "\n";

return 0; }

В результате работы программы на экран выводится фраза: «Введите целое число », далее с клавиатуры должно вводиться целое число (например, 3), значение которого присвоится переменной i.

Экран, после выполнения программы имеет вид:

Введите целое число 3

Квадрат числа: 9

Аппаратура и материалы: персональный компьютер не ниже Pentium–4, операционная система Windows XP, флеш-память, интегрированная среда Dev C++.

Методика и порядок выполнения работы

  1. Создайте папку, на указанном преподавателем диске или на флеш-носителе, в которой будут храниться исходные тексты программ на языке С++.

  2. Запустите интегрированную среду DevC++ (Пуск\Все программы\DevC++).

  3. Ознакомьтесь с интегрированной средой, описание которой приведено в теоретической части работы.

  4. Откройте окно редактирования программ командой File\New source file или щелчком по одноименному инструменту (рисунок 1.2). В окне редактирования появляется «заготовка» для программ на языке С++.

New source file Сохранение Компиляция и выполнение

Рисунок 1.2 – Используемые инструменты

  1. Составьте алгоритм решения следующей задачи.

Вычислить длину окружности, площадь круга и объем шара, имеющих радиус R (любое целое число):

– для вычислений воспользуйтесь формулами L=2πR, S=πR2, V=πR3×4/3;

– постройте блок-схему решения задачи. Из рисунка 1.3 видно, что алгоритм имеет линейную структуру.

  1. Реализуйте построенный алгоритм на языке программирования С++. Программа на С++ имеет вид:

#include<iostream.h> //включение заголовочного файла ввода-вывода

const float Pi =3.14; //описание константы π

/*описание переменных: целого типа,

вещественного типа*/

int R;

float L, S, V;

int main(){ //главная функция

cout <<" Vvedite R="; // вывод на экран комментария

cin >>R; //ввод значения радиуса

L=2*Pi*R; // вычисление значений

S= Pi*R*R;

V=4./3.* Pi*R*R*R;

//вывод значений

cout <<'\n'<<" L="<< L <<" S="<<S<<'\n';

cout <<'\n'<<" V ="<<V <<'\n';

return 0;}

  1. Наберите программу в окне редактирования DevC++, используя «заготовку». Библиотека stdlib.h используется для выполнения паузы – функции system("PAUSE"), которая обеспечивает просмотр результата выполнения программы.

  2. Сохраните программу, используя команду File\Save или щелчком по одноименному инструменту (рисунок 1.2). В диалоговом окне выберите диск с которыми Вы работаете и папку, созданную в п.1. В строке имя файла введите имя программы Lab1. Автоматически к имени файла будет добавлено расширение .cpp, которое для компилятора является признаком того, что программа составлена на языке С++ (расширение .c – признак программы написанной на языке Си).

  3. Откомпилируйте и выполните программу, нажав [Ctrl]+[F9] или щелкнув по соответствующему инструменту (рисунок 1.2).

  4. Если в программе ошибки не выявлены, перейдите к п.11. При наличии ошибок в программе в диалоговом окне высвечивается количество ошибок, а в Области сообщений, появятся записи с указанием номера строки и типа ошибки. После щелчка по строке с объяснением ошибки, в программе выделится строка, в которой допущена ошибка. После исправления ошибок сохранить исправленную программу и повторить п.9.

  5. Запустите программу на выполнение. Для этого в появившемся после компиляции диалоговом окне щелкните по кнопке Continue.

  6. В открывшемся окне введите исходные данные (целое число – значение радиуса R)рез пробел), нажмите [Enter]. На экране появится результаты решения задачи L, S и V.

  7. Для возврата в Интегрированную Среду, нажмите любую клавишу.

  8. Запустите программу с другими исходными данными.

  9. Замените строки программы:

cout <<" Vvedite R=";

cin >>R;

на строки:

printf(" Vvedite\n R=");

scanf(“%d”, &R);

  1. Замените строки программы:

cout <<'\n'<<" L="<< L <<" S="<<S<<'\n';

cout <<'\n'<<" V ="<<V <<'\n';

на строку:

printf("\n L= %8.3f S=%10.4f \n\n\n V =%7.2f\n", L,S,V);

  1. Сохраните программу под именем Lab1_1 и откомпилируйте.

  2. В результате компиляции выявится ошибка. В программе необходимо заменить библиотеку iostream.h на stdio.h (т.к. используются функции форматного ввода и вывода). Исправьте ошибку. Сохраните исправленный текст программы. Запустите программу на выполнение.

  3. Сравните вид результатов работы программ Lab1 и Lab1_1.