Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Microsoft_Visual_C++..doc
Скачиваний:
18
Добавлен:
29.10.2018
Размер:
691.2 Кб
Скачать

4 Объявление переменных

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

Объявление переменной имеет следующий формат:

Тип_переменной <список переменных через запятую>;

Переменные можно инициализировать при описании.

Инициализация – задание начального значения или списка начальных значений переменной (переменным) при объявлении.

Переменная любого типа может быть объявлена как немодифицируемая. Это достигается добавлением ключевого слова const. Объекты с типом const представляют собой данные используемые только для чтения, т.е. этой переменной не может быть присвоено новое значение. Отметим, что если после слова const отсутствует спецификатор-типа, то подразумевается спецификатор типа int.

Пример 4 Объявление и инициализация переменных и констант

int a, b, c;

float f, a, b;

int a=1, b, c=2;

const double A=2.128E-2;

const B=286; //подразумевается const int B=286

Задание 4

Определите идентификаторы и типы всех переменных, констант для вычисления площади окружности. Запишите операцию присваивания.

5 Структура программы на с

Общая структура программы на С следующая:

директивы_препроцессора

int main()

{

тело программы

}

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

Это важно

  • все директивы препроцессора начинаются со знака #;

  • после директивы препроцессора точка с запятой не ставится.

Пример 5 Программа «Hello, World!»

Запустите Visual C++ и создайте новое консольное приложение. В результате на экране получим:

#include "stdafx.h"

using namespace System;

int main(array<System::String ^> ^args)

{

Console::WriteLine(L"Hello World");

return 0;

}

Эта простая программа появилась в первом издании книги «Язык программирования С» Кернигана и Ритчи. Она печатает сообщение «Hello World!» на стандартном устройстве вывода (которым, как правило, является монитор (дисплей).

Рассмотрим структуру программы.

В первой строке программы расположен комментарий, далее следует директива препроцессора #include, встретив которую, компилятор заменяет её на полный текст файла, на который она ссылается. В данном случае эта строка будет заменена стандартным заголовочным файлом stdafx.h (h – от header, заголовок).

Строка программы

using namespace System;

означает, что компилятор должен использовать пространство имен System. Простран­ство имен (namespace) создает декларативную область, в которой могут размещать­ся различные элементы программы. Ключевое слово using информирует компилятор об использовании заявленного пространства имен (в данном случае System).

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

В фигурных скобках формируется тело программы.

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

В примере 5 тело программы содержит два оператора – оператор WriteLine и return.

Инструкция return обеспечивает механизм завершения работы функции main.

Последняя фигурная скобка обозначает конец определения функции main.

Задание 5

Запустите программу на выполнение сочетанием клавиш Ctrl+F5:

6 Категории операторов в С/С++. Консольный ввод/вывод

Оператор – действие, которое должен выполнить компьютер.

Все операторы языка С/С++  могут быть условно разделены на следующие категории:

  • оператор объявления;

  • операторы ввода/вывода;

  • оператор-выражение;

  • операторы управления: условные операторы, к которым относятся оператор условия if и оператор выбора switch; операторы  цикла (for, while, do while); операторы  перехода (break, continue, return, goto); оператор возврата return;

  • другие операторы.

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

Существует несколько способов консольного ввода и вывода.

Первый способ – это использование функции ввода printf() и функции вывода scanf() (унаследована в С++ от С).

Второй способ – это использование оператора ввода Cin >> и оператора вывода Cout <<.

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

>> x – перемещает данные в x, а << x – перемещает данные из x.

Это важно

Для работы с функциями printf();и scanf() необходимо подключить библиотеку базовых функций <stdio.h> директивой #include<stdio.h>

Для работы с операторами Cin и Cout необходимо подключить библиотеку <iostream> директивой #include<iostream> (таблица 7).

Таблица 7 – Функции и операторы ввода/вывода информации

Библиотека stdio.h

Библиотека iostream

Вывод

Функция

printf();

Оператор

Cout

Ввод

Функция

scanf();

Оператор

Cin

Примечание

Угловые скобки в записи <stdio.h> указывают компилятору искать файл stdio.h в каталоге стандартных заголовочных файлов. Если посмотреть содержимое текстового файла stdio.h, то можно увидеть большое количество строк, являющихся объявлениями функций.

В дальнейшем будем также подключать библиотеку <conio.h> директивой #include<conio.h>. Библиотека conio.h содержит функции для работы с терминалом в текстовом режиме, в частности getch();которая выполняет задержку выполнения программы до нажатия клавиши и обеспечивает закрытие приложения по нажатию на клавишу.

В папке установки Microsoft Visual C++ в Program Files найдите файлы stdio.h, conio.h. Что произойдет при их отсутствии?

Формат функции вывода:

printf("строка_формата", список_переменных);

Формат функции ввода:

scanf("строка_формата", &список_переменных);

Символы в строке формата делятся на три категории:

  • обычные символы;

  • управляющие символы (см. табл. 4 п. 2);

  • спецификатор формата.

Спецификатор формата – запись, которая начинается со знака % и которая определяет форму внешнего представления выводимой величины.

Спецификаторы:

%d – целое число;

%u – целое число без знака (для типа unsigned);

%c – символ;

%s – строка;

%f – вещественное число c фиксированной точкой;

%e – вещественное число с плавающей точкой (с мантиссой и порядком)

Это важно

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

Пример 6 Ввод/вывод данных с использованием функций

Напишем программу, запрашивающую длины трех сторон треугольника.

#include "stdafx.h"

#include<stdio.h>

#include<conio.h>

using namespace System;

int main(array<System::String ^> ^args)

{

int a,b,c;

printf("введите длины трех сторон треугольника\n");

scanf("%d %d %d",&a,&b,&c);

printf("ввод выполнен\n");

getch();

return 0;

}

Тестирование:

В данном примере оператор ввода scanf("%d %d %d",&a,&b,&c); в строке формата содержит три спецификатора %d, т.к. вводятся три целочисленных числа a,b,c , соответствующих сторонам треугольника.

Задание 6

Измените текст программы примера 6 так, чтобы можно было выполнить ввод вещественных значений переменных a,b,c.

Совет

Используйте отступы при написании кода для повышения читабельности программы.

Примечание

При использовании оператора вывода Cout и оператора ввода Cin в пространстве имен System

using namespace System;

с библиотекой iostream необходимо писать:

std::cout и

std::cin

т.к. в iostream все классы объявлены в пространстве std, сокр. от англ. standard – стандартный (в iostream.h все классы объявлены в глобальном пространстве имен).

Пример 7 Ввод/вывод данных с использованием операторов

Рассмотрим две программы с пространством имен std и System.

Программа 1

Программа 2

#include "stdafx.h"

#include<iostream>

#include<conio.h>

using namespace std;

int main(array<System::String ^> ^args)

{

int a,b,c;

cout << "введите длины трех сторон треугольника\n";

cin >> a >> b >>c;

cout << "ввод выполнен\n";

getch();

return 0;

}

#include "stdafx.h"

#include<iostream>

#include<conio.h>

using namespace System;

int main(array<System::String ^> ^args)

{

int a,b,c;

std::cout << "введите длины трех сторон треугольника\n";

std::cin >> a >> b >>c;

std::cout << "ввод выполнен\n";

getch();

return 0;

}

Задание 7

На основе примера 7 разработайте программу-запрос на ввод, например:

а) текущего года, номера месяца и дня;

б) возраста, роста и веса пользователя;

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

г) года, номера месяца рождения и числа полных лет пользователя;

д) года, номера месяца и дня рождения пользователя;

е) номера домашнего, рабочего и сотового телефона пользователя и др.

Завершите программу сообщением «Ввод данных закончен».

Составьте две программы – с использованием функций printf(); scanf(); и операторов Cout и Cin.

Примечание

При вводе и выводе информации следует обратить внимание на то, что консольное приложение создается в Windows, а выполняется как программа DOS. В DOS используется кодировка OEM (866), а в Windows — ANSI (1251), буквы русского алфавита в которых имеют разные коды. Первые 128 символов совпадают – это ASCII, стандарт английских символов (плюс служебные). Следовательно, для работы с русскими буквами (кириллицей) необходимо в Visual C++ обеспечить преобразование символьной информации между этими двумя кодировками.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]