Лабораторная работа 1: консольное приложение

Кувшинов Д.Р.

2016


Общее оглавление


Начало работы

В выбранной IDE создайте (пустой) проект консольного приложения C++.

Вставьте в него код, выводящий текстовое сообщение. Например, такой:

#include <iostream>
using namespace std;
int main()
{
  cout << "Console output test: OK" << endl;
  return 0;
}

Запустите программу и убедитесь, что текстовое сообщение выводится.

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

#include <iostream>
using namespace std;
int main()
{
  int x = 0; // место размещения числа -- "переменная"
  cin >> x;  // ввод значения
  cout << "Square is: " << x * x << endl;
  return 0;
}

Убедитесь в работоспособности этого кода.


Запись арифметических операций в C++
Операция Запись Замечание
сложение a + b
вычитание a - b
смена знака -a унарная операция
умножение a * b
деление a / b в целых числах, если и a и b — целые числа
остаток a % b остаток от целочисленного деления



Задание 1

Исправьте ошибки в коде.

#inculde <iostrem>
using namespace std;
int Main
{
  int x = 0, y = 0; // определим две переменные типа int [в этой строке нет ошибок]
  cout >> "x = ";
  cin >> x;
  cout >> "y = ";
  cin >> y;
  cout >> "x*y = " x * x >> endl;
  return 0
}



Функции

Понятие функции — краеугольный камень программирования.

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

Ввод-вывод строк

Следующий пример запрашивает у пользователя имя и приветствует его по имени. C++ не предоставляет встроенного в язык типа данных “строка”. Впрочем, нужный тип string определён в Стандартной библиотеке в заголовочном файле <string>.

#include <string>   // теперь у нас будут строки
#include <iostream>
using namespace std;
int main()
{
  string name; // по умолчанию ""
  cout << "What is your name? ";
  cin >> name;
  cout << "Hello, " << name << "!" << endl;
  return 0;
}


Добавим в этот пример функцию author_name, которая для заданных значений “Имя” (параметр first_name) и “Фамилия” (параметр second_name) возвращает строку вида “Фамилия, И.”.

string author_name(const string & first_name, const string & second_name)
{
  return second_name + ", " + first_name[0] + ".";
}

Выражение first_name[0] извлекает первый символ строки first_name.

Ключевое слово const говорит, что значения first_name и second_name нельзя изменять внутри функции. Знак & пока можно считать полезной декорацией.

Пример целиком.

#include <string>
#include <iostream>
using namespace std;

string author_name(const string & first_name, const string & second_name)
{
  return second_name + ", " + first_name[0] + ".";
}

int main()
{
  string name, surname;
  cout << "name = ";
  cin >> name;
  cout << "surname = ";
  cin >> surname;
  cout << "author_name = " << author_name(name, surname) << endl;
  return 0;
}


Задание 2

Добавить в вышеприведённый пример функцию initials, возвращающую для “Имя” и “Фамилия” строку вида “И.Ф.”. Продемонстрировать результат работы этой функции аналогично тому, как сделано в примере для функции author_name.


Краткий обзор элементарных средств ввода-вывода Стандартной библиотеки C++ см. здесь.



Общее оглавление

Кувшинов Д.Р. © 2016