Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОС_ответы.doc
Скачиваний:
35
Добавлен:
27.10.2018
Размер:
21.59 Mб
Скачать

3 Группа

1 Структура програми, написаної мовою програмування С++. Константи, змінні. Характеристики базових типів даних.

Программа – это последовательность препроцессорных директив, описаний и определений глобальных объектов и функций.

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

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

Рассмотрим пример простой программы:

#include <stdio.h> // препроцессорная директива

#define b 2 // препроцессорная директива

int a=5; // определение и инициализация внешней переменной а;

int sum(int x,int y); // прототип функции, описание функции sum;

void main() // заголовок главной функции

{int с,res=0,d=7; // определение и инициализация переменных с,res,d;

c=a+b+d; // вычисление суммы 3-х чисел 5+2+7=14

res=sum(10,d); // вызов функции sum;

printf("c=%d res=%d ",c,res); //вывод на экран переменных с,res

}

int sum (int x, int y) //заголовок функции sum;

{ return x+y; } //тело функции sum: определение суммы чисел 10+7=17;

Данные – это носители информации, которые обрабатываются компьютером. Данные можно условно разделить на переменные и константы. С точки зрения записи данных средствами языка Си, различают их десятичное, восьмеричное и шестнадцатеричное представления.

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

Любая величина, используемая в программе, должна быть описана. Описание состоит из задания типа переменной, имени переменной (идентификатора) и некоторых других атрибутов. Тип переменной определяет, сколько ячеек памяти выделить под данную переменную, какие возможные значения эта переменная может принимать и какие возможные операции можно выполнять над этой переменной.

В программе можно явно записать число, символ и т.п. Например: х+4. Значение переменной х может быть различно, однако число 4 всегда останется 4. Это неизменяемая величина, или константа. Таким образом, явная запись значения в программе – это константа.

Константы – это изображение числовых, символьных или строковых величин в программе, значения которых постоянно и не изменяется во время выполнения программы.

Константы так же имеют тип, который может задаваться явно или присваиваться по умолчанию.

Различают базовые и производные типы данных.

К базовым типам относятся void, char, int, short int, float, double и их модификации со служебными словами long, signed, unsigned.

К целому типу относятся переменные и константы типа int, unsigned int, long, unsigned long, сhar, unsigned char, short.

В языке Си (С++) есть три формы внутреннего представления вещественных чисел (чисел с дробной частью): float, double, long double.

Переменные и константы целого типа имеют следующие характеристики:

Тип

Размер

Диапазон

char

1 байт (8 бит)

–27 ÷ 27–1

unsigned char

1 байт (8 бит)

0 ÷ 28–1

int

2 байт (16 бит)

–215 ÷ 215–1

unsigned int

2 байт (16 бит)

0 ÷ 216–1

long

4 байт (32 бит)

–231 ÷ 231–1

unsigned long

4 байт (32 бит)

0 ÷ 232–1

Константы целого типа по умолчанию имеют тип int. Для задания типа long дописывается символ L, для задания типа unsigned дописывается символ u: 234L, 456u, 23456Lu.

Переменные и константы вещественного типа имеют следующие характеристики:

Тип

Размер

Диапазон

float

4 байт (32 бит)

±3.4∙10–38 ÷±3.4∙10–38

double

8 байт (64 бит)

±1.7∙10–308 ÷±1.7∙10–308

long double

10 байт (80 бит)

±3.4∙10–4932 ÷±3.4∙10+4932

Константы вещественного типа по умолчанию имеют тип double. Для задания типа float дописывается символ f, для задания типа long double дописывается символ L: 23.4f, 4.56L.

Именованные константы можно задавать с помощью

1) слова const, например:

const a=100; const int с=100; const char ADC=’c’; const double R=2.718281828;

2) директивы препроцессора #define, например: #define PI 3.1415

2 С++. Форматоване та неформатоване введення з клавіатури в програму та виведення на екран з програми даних різних типів

Функции потокового файлового ввода-вывода включены в стандарт ANSI языка С и их обычно называют функциями стандартного ввода-вывода. Они описаны в заголовочном файле <stdio.h> – стандартный ввод-вывод.

Когда запускается любая программа на языке С++, операционная система открывает для нее (программы) стандартные потоки, в частности, имеющие имена stdin и stdout, под которыми подразумеваются соответственно клавиатура и экран монитора.

Таким образом, говоря о вводе-выводе с точки зрения прикладного программирования, будем пока считать, что мы посылаем данные для ввода в поток с именем stdout, который донесет их до экрана монитора, а для ввода с клавиатуры – будем извлекать данные из потока, который называется stdin. Такой ввод-вывод бывает двух видов: неформатированный и форматированный.

Функция форматированного вывода printf() имеет следующий синтаксис:

printf(форматная строка,аргумент_1,аргумент_2,…);

Форматная строка последовательность символов, заключенная в двойные кавычки, в которой можно с помощью спецификаторов задавать способ преобразования данных. Спецификаторы – это символы, которые начинаются знаком %. Вся форматная строка в функции printf() выдается на экран, причем спецификаторы %xxx заменяются значениями выводимых аргументов. Первый, второй и т.д. аргументы – это переменная, константа или любое унарное выражение, которое может быть заключено в скобки. Например:

int a=2,b=5,c;

printf(“a=%d,b=%d,сумма=%d,c=%d\n”,а,b,a+b,9);//a=2,b=5,сумма=7,с=9

Спецификаторы преобразования задается в виде:

%[флаги][ширина][.точность][l|L]<тип>

Имеются следующие типы преобразования переменных

%d %i – целое число типа int или char;

%u – беззнаковое целое число unsigned int;

%o – целое число типа int в 8-ой системе счисления;

%x – целое число типа int в 16-ой системе счисления;

%f – вещественное число типа float в виде целой и дробной части;

%e – вещественное число типа float в экспоненциальной форме;

%g – вещественное число в виде целой и дробной части или в экспоненциальной форме;

%c – – целое число типа int или char в виде символа;

%s – строка;

– адрес переменной (&a).

Обратим внимание на модификаторы l и L. Для переменных типа long int используются типы с модификатором %ld, %lo, %lu, %lx. Для переменных типа double используются типы c модификатором %lf, %le, %lg. Для переменных типа long double используются типы с модификатором %Lf, %Le, %Lg.

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

Точность задается для вещественных чисел и определяет, сколько знаков после десятичной точки из общей ширины поля будет напечатано. Ширина поля для вещественных чисел включает символы знака, точки, порядка.

printf(“%8.2f”,5.3334); // 5.33

Функция форматированного ввода scanf( ) имеет следующий синтаксис:

scanf(форматная строка, аргумент_1, аргумент_2,…);

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

scanf(“%d”,&a); // ввод значения целой переменной а.

scanf(“%f”,&g); // ввод значения вещественной переменной g.

Функция scanf( ) принимает с консоли (с клавиатуры) все символы до нажатия клавиши Enter и помещает их в буфер. Затем по форматной строке определяется способ преобразования этих символов, и уже затем полученное число помещается в ячейку с адресом, соответствующим данной переменной.

Функция scanf( ) позволяет вводить с консоли строковые константы и переменные. В этом случае используется спецификатор формата %s.

char str[20];

scanf(“%s”,str); // ввод строки не более 20 символов

В языке С имеется стандартные функции неформатированного ввода-вывода: getchar(), putchar(), gets(), puts().

Функция getchar() возвращает целое число, соответствующее вводимому символу. При вводе символа надо нажать клавишу Enter. Для вывода символа в стандартный поток (на экран) используется функция putchar(аргумент), где аргумент представляется в виде целого числа. Например:

#include <stdio.h>