Краткие сведения и инструкции

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

Алгоритм программы с линейной структурой может быть представлен в виде схемы, показанной на рис.1.1

 
 

 
 



Рис. 1.1

При составлении программы, в первую очередь, необходимо определить исходные данные и объявить типы переменных. Объявления типов переменных обычно помещают в начале программы, вслед за ее заголовком, снабжая инструкцию объявления кратким комментарием о назначении переменной. Инструкция объявления записывается так:

Тип Имя_Переменной;

Объявление переменной можно совместить с ее инициализацией. В этом случае объявлений переменной записывают следующим способом:

Тип Имя_Переменной= Начальное_значение;

В последнем выражении знак “=” обозначает инструкцию присваивания. Она предназначена для изменения значения переменных, в том числе и для вычислений по «формуле». В отличие от других языков программирования в Си и C++ инструкция присваивания, выполняющая некоторое действие, может быть записана несколькими способами. Например, вместо x = x + dx можно записать x + = dx, а вместо i= i+1 воспользоваться оператором инкремента и записать i++.

Вывод информации и сообщений на экран монитора обеспечивает функция printf(). Первым параметром этой функции является строка вывода, определяющая выводимый текст и формат вывода значений переменных, имена которых указаны в качестве остальных параметров функции.

Для ввода исходных данных с клавиатуры предназначена функция scanf(), первым параметром которой является управляющая строка, остальные параметры – адреса переменных, значения которых были введены. (Использование имени переменной, а не ее адреса в качестве параметра функции scanf() является типичной ошибкой начинающих программистов).

Для иллюстрации действия указанных операций рассмотрим следующий пример.

Пример №1:Введем программу, печатающую на экране: “Сейчас 2012 год”.

#include<stdio.h>

/* пример к лаб. работе №1*/

main ( )

{ // Начало тела главной функции

int year, month; // Объявление переменных

year = 2012; //Инициализация переменных

month=10;

printf(“Сейчас %d год %d месяц\n”,year,month); // вывод

} // Конец тела главной функции

Рассмотрим эту программу. Первая строка #include<stdio.h> подключает стандартный файл ввода/вывода языка Cи. Это так называемый заголовочный файл (header files). В файле stdio.h находится информация о стандартной функции вывода printf (), которую мы используем.

Вторая строка /*Пример…*/ – комментарий. С помощью этой конструкции можно выделить целый блок программы. Строка main() – определяет имя функции. Строка: { - содержит открывающую скобку, обозначающую начало тела функции main(). Строка: int year, month; объявляет (декларирует) переменные year и month и сообщает компилятору, что они целые (int).

Строка: year = 2012; является оператором присваивания.

Строка: printf (“Сейчас % d год %d месяц\n”, year, month); является вызовом стандартной функции printf(), которая выводит на экран некоторую информацию. Она состоит из двух частей: имени функции printf() и двух её аргументов “сейчас %d год %d месяц \ n” и year, month разделённых запятой. Первый аргумент называется управляющей строкой (Control String). Она может содержать любые символы или спецификации формата, начинающиеся с символа %. Спецификация %d указывает, что будет выводиться целое число. Комбинация символов “\n” сообщает функции printf() о необходимости перевода каретки на новую строку.

Последняя строка программы “}” содержит закрывающую фигурную скобку тела функции main(). В программе также использованы четыре комментария. Двойной слеш комментирует не долее одной строки.

Если программа не содержит ошибок, то после компиляции и выполнения её на экране появится сообщение: Сейчас 2000 год. Если была допущена ошибка, то после компиляции, строка, в которой эта ошибка была допущена, будет подсвечена. Переход к предыдущей ошибке осуществляется комбинациями клавиш ALT+F7, а к последующей ALT+F8.

Усовершенствуем пример 1. Введем строковую переменную, например, «Имя» и инициализируем ее.

#include<stdio.h>

/* пример к лаб. работе №1*/

main()

{

int year, month;

year = 2012;

char *name= “Ivan”;

printf(“Сейчас % d год\n”,year);

}

Используйте для вывода новой переменной оператор printf() и спецификатор вывода %s. С помощью функции scanf () введите новое имя и распечатайте его

Пример №2.Требуется вычислить длину окружности.

Для вычисления нам потребуется ввести данные с клавиатуры, и мы будем использовать библиотечную функцию scanf(), которая позволит вводить данные во время выполнения программы.

/* ПРОГРАММА

Вычисление длины окружности */

#include <stdio.h>

main ()

{

int radius;

float length;

printf (“Введите значение радиуса :\n”);

scanf (“%d”, &radius);

length = 3.1415*2*radius;

printf (“Радиус–%d\n длина – %f\n”, radius, length);

}

Отличие этого примера от предыдущего заключается в том, что:

1) объявлены две переменные разных типов: radius – типа целое (int); length – типа с плавающей точкой (float);

2) используется функция scanf() для ввода с клавиатуры значения радиуса окружности.

Первый аргумент функции scanf()- “%d” указывает, что будет вводиться целое десятичное число, второй аргумент указывает имя переменной, которой будет присвоено введённое значение.

В языке Си имеются специальные унарные и бинарные операторы, из которых наиболее хорошо известны положительное приращение (++) и отрицательное приращение (--), позволяющие с помощью единственного оператора добавить 1 или вычесть 1 из любого значения. Сложение и вычитание допускаются в середине выражения. Кроме того, можно задавать операции приращения до, и после вычисления самого выражения.

Пример №3.

sum=a+b++;

sum=++a+b;

Первый оператор суммирует a и b, затем результат присваивает sum, и потом значение b увеличивается на 1. Во втором выражении a увеличивается на 1, затем суммируются a и b, и далее результат присваивается sum.

Задание на выполнение работы

1) Ввести программу примера №1, провести её компиляцию и выполнение.

2) Ввести программу примера №2, провести отладку и запустить на выполнение.

3) Модифицировать программу примера №2 таким образом, чтобы она вычисляла длину окружности и площадь круга для любых радиусов.

4) Ввести программу и проверить действие инкрементных операторов присваивания, используя круглые скобки:

Пример №4

#include <stdio.h>

#include <conio.h>

main ( )

{

int a, b, sum;

a=b=5;

sum=a+b;

printf("a=%d b=%d sum=%d\n" , a, b, sum);

sum=a+++b;

printf ("a=%d b=%d sum=%d\n" , a, b, sum);

sum=++a+b;

printf ("a=%d b=%d sum=%d\n" , a, b, sum);

sum=--a+b;

printf ("a=%d b=%d sum=%d\n" , a, b, sum);

sum=a-++b;

printf ("a=%d b=%d sum=%d\n" , a, b, sum);

sum=a+b;

printf ("a=%d b=%d sum=%d\n" , a, b, sum);

getch();

}

5) Скопировать пример 4, открыть ИС Borland C++ 5.0, вставить файл, произвести запуск и вывести результат в блокнот.

Отчёт должен содержать:

1) Тексты выполняемых программ.

2) Результаты расчётов.

Контрольные вопросы

1. Какие стандартные функции содержатся в файлах stdio.h и conio.h ?

2. Что означает «инкремент»?

3. Что означает «декремент»?

4. Как выполняется операция присваивания?

5. Какой спецификатор применяется для ввода и вывода строки символов?

6. В каком заголовочном файле содержится функция getch()?

Работа № 2

Наши рекомендации