Урок 1. Создание C++ консольного приложения в Visual Studio

На занятии Вы рассмотрите тему «язык С++: структура программы и создание проекта в C++»

Алгоритм работы при создании C++-проекта в Visual Studio

1. New Project: Создание проекта.

  1. Пункт меню File -> New -> Project (Файл -> Создать -> Проект).
  2. В открывшемся окне в разделе Project Types (Установленные) найти Visual C++.
  3. В разделе Templates (Шаблоны) выбрать Win32 Console Application (Консольное приложение Win32).
  4. Указать имя нового «решения» (Solution Name) и имя проекта (Name).
  5. Сохранить проект на локальном диске в легко доступном месте (например, D:\Projects).
  6. Можно снять галочку Create folder for solution (Создать каталог для решения), чтобы не множить каталоги без необходимости.
  7. В следующем диалоговом окне щелкнуть Далее и затем выбрать Application Settings (Дополнительные параметры) -> Empty Project (Пустой проект). Убрать галочку с пункта Проверки жизненного цикла…

2. Add files: Добавление файлов.
Правый клик на проекте в окне Solution Explorer (Обозреватель решений) — пункт Add (Добавить) — пункт Create New Item (Создать элемент) или Add existing Item (Существующий элемент). Для этого и любого другого проекта понадобится как минимум один файл с точкой входа в программу — функцией main.

3. Exclude files: Исключение файлов.
Сначала удобно создать один проект и добавлять в него по одному файлу с решением каждой отдельной задачи. Однако при этом возникает проблема: в нескольких файлах проекта присутствует функция main, что противоречит правилам C++. Для решения данной проблемы, необходимо «исключать» файлы из проекта (правый клик на файле, Exclude from project (Исключить)). При этом файлы исчезнут из окна проекта, однако сохранятся в каталоге проекта на диске.

Типы переменных

  • C++ — это строго типизированный язык программирования.
  • В C++ существует два вида переменных — переменные примитивного типа или переменные пользовательского типа.
  • То есть типы делятся на:

  • Примитивные
  • Пользовательские
  • Примитивные типы
    Их 6 в C++:

  • int, (4) целые числа
  • char, (1) символы
  • bool, (1) логический (true или false)
  • float, (4) вещественные числа
  • double, (8) вещественные двойной точности
  • void, отсутствие занчения
  • и еще:

  • short int (2) // или short
  • unsigned int (4) // или unsigned
  • unsigned char (1) // byte
  • Пользовательские типы
    Два наиболее часто используемых:

  • std::string, строка (последовательность символов)
  • std::vector, динамический массив

Структура программы в C++

В программе C++ program есть точка входа — это функция int main()
По соглашению функция возвращает 0, если программа выполнена успешно и не ноль — при наличии ошибок.
Пример:

int main() {
  int i= 4;
  i = i + 2;
  char c = 'a';
  std::cout << i << " " << c << std::endl; // вывод
  return 0;
}

C++ стандартная библиотека (std)

Стандартная библиотека (std) предоставляет часто используемую функциональность и возможность использования некоторых структур данных.
Стандартная библиотека C++ состоит из множества внутренних библиотек которые могут быть подключены к любой программе (#included).
Так, директива (заголовок) iostream включает операции по вводу и выводу в файл и консоль:

#include <iostream>
int main() {
	std::cout << "Hello, world!" << std::endl;
	system("pause");
        return 0;
}

Вся функциональность стандартной библиотеки являются частью пространства имен std. Если какая-то функциональность из пространства имен используется часто, то она также может быть подключена, с помощью оператора using:

#include <iostream>
using std::cout;
using std::endl;
int main() {
	cout << "Hello, world!" << endl;
	system("pause");
        return 0;
}

или импортирование самого пространства имен std:

#include <iostream>
using namespace std;
int main() {
	cout << "Hello, world!" << endl;
	system("pause");
        return 0;
}

C++ синтаксис

Инициализация переменных в C++11
double d { 3.14 };
auto s { "C++" };
int i { 3.7 }; // error!
char c { 128 }; // error!
bool b { -1 }; // error!
int j { true }; // OK, j == 1
Неявное преобразование

При присваивании вещественного числа целочисленной переменной, дробная часть будет отброшена

int i = 3.14;   // i == 3
char c = 128; // warning: constant value truncation
bool b = -1; // true – warning: truncation from "int" to "bool"
Арифметические операции
C++

a = 4;
a += 2; // a = a+2;
b = a++; 
b = ++a; 
7 / 3  
7 % 3 
(i < 0 || i > 2) 
(i >= 2 && i <= 3) 
!(i>2) 
==
!=
& | ^ ~  
a = b = c;
PascalABC.NET

a := 4;
a += 2;
t := a; a++; b := t;
a++; b := a;
7 div 3
7 mod 3
(i < 0) or (i > 2)
(i >= 2) and (i <= 3)
not(i>2)
=
<>
bitwise and, or, xor, not
b:=c; a:=c;

Блок видимости переменных

Блок кода, определенный скобками { }, создает внутренний стэк сверху текущего стэка памяти. Благодаря чему переменные внутри блока «спрятаны». Т.о. область видимости переменных и их жизненный цикл определяется данным блоком. Переменные, определенные внутри блока, существуют, пока существует блок.

#include <iostream>
int main() {
  // Внешняя область:
  int x = 2;
  std::cout << "Значение x во внешней области (должно быть 2): " << x << std::endl;
 
  // Создается внутренний блок и переменная в нем с именем "x".
    {
    int x = 3;
    int y = 4;
    std::cout << "Значение x во внутреннем блоке (должно быть 3): " << x << std::endl;
    std::cout << "Значение y во внутреннем блоке (должно быть 4): " << y << std::endl;
  }
 
  // Внутренний блок закрылся, внутренние переменные x и y исчезли.
 
  std::cout << "Значение x во внешней области (должно быть  2): " << x << std::endl;
 
  // К переменной y здесь уже обращаться нельзя!
    return 0;
}

Условные операторы

Оператор If

Оператор if может иметь свой внутренний блок, обозначенный фигурными скобками { }. Тогда «время жизни» условного оператора определяется временем жизни данного блока:

#include <iostream>
using namespace std;
int main() {
  int x = 2;
  cout << "x во внешней области видимости (= 2): " << x << endl;
 
  if (true) {
    int x = 3;
    cout << "x во внутреннем блоке (= 3): " << x << endl;
  }
 
  cout << "x из внешней видимости (= 2): " << x << endl;
 
  return 0;
}
If-Else
if (condition) {
    // если true
}
else {
    // если false
}

Цепочка условий:

if (condition1) {
 
}
else if (condition2) {
 
}
else if (condition3) {
 
}
else {
    // если все условия ложны
}
Тернарный оператор

Syntax:

[логическое условие] ? [оператор если условие true] : [оператор если условие false]
// Так как (5<10) = true, будет извлечен оператор, находящийся после двоеточия, то есть <code>1</code>.
int x = 5 < 10 ? 1 : 2;
// x = 1
Оператор выбора Switch

Syntax:

switch (проверяемая переменная) {
	case значение1:
		// что-то выполняется 
		break;
	case значение2:
		// что-то выполняется 
		break;
	case значение3:
		// что-то выполняется 
		break;
	…
 
	default:
		// что-то выполняется  если ни одно из условий не было истинным
	}

Циклы

В с++ есть несколько видов циклов, которые позволяют выполнить повторяющиеся действия.
Цикл for
Цикл for состоит из трех компонентов: инициализация счетчика цикла, условие для счетчика, шаг изменения счетчика. Синтаксис:

Синтаксис:

for (переменная=начальное значение; условие; приращение значения)
  {
    оператор1; 
    оператор2;
  }

Пример:

for (int  i=1;  i<=10;  i++)
{
  cout << i << endl;
}
Чтобы избежать некорректного использования переменной цикла i за его пределами рекомендуется объявлять ее в заголовке цикла. Данная переменная будет локальной, то есть «видимой» только внутри данного цикла.
#include <iostream>
using namespace std;
int main() {
 
  // инициализация "x" во внешней области видимости 
  int x = -1;
 
  // 
  for (int x = 0; x <= 2; x++) {
    cout << "[Inside the loop] x is now: " << x << endl; // 0  ..  1 ..  2
  }
 
  // В цикле for позволяет счетчик цикла объявляется в заголовке цикла, 
  // т.о. счетчик будет принадлежать внутренней области блока:
  for (x = 0; x <= 2; x++) {
    cout << "[внутри цикла] x : " << x << endl;
  }
 
  return 0;
}

Цикл С++ While

Цикл с предусловием. Пока условие истинно, выполняются операторы тела цикла.
Синтаксис:

while (условие) 
{
	оператор1;
	оператор2;}

Для выхода из цикла используется оператор break;

Цикл do-while
синтаксис:

do 
   { 
      тело цикла  
   }
while (условие)

Лабораторные работы

Лабораторная работа 0. Вывод приветствия в консоль (стандартный поток вывода)

Выполнение:

    Часть 1:

  1. Создайте новый проект с названием MyFirstProject (алгоритм создания проекта см. выше).
  2. В окне Обозреватель решений выполните правый клик на папке Файлы исходного кода и выберите пункт Добавить -> Создать элемент -> Файл С++ (cpp). В поле Имя файла введите main.cpp. Щелкните Добавить
  3. В первой строке файла добавим директиву include для подключения внешних файлов-библиотек:
  4. #include <iostream>
  5. Далее подключим глобальные пространства имен:
  6. using std::cout;
    using std::cin;
    using std::endl;
  7. Добавьте главную функцию main (){} и вставьте в нее инструкцию вывода в консоль слов «Привет мир!»
  8. int main(){
      cout<< "Hello World!";
    }

    операторы вывода:

    cout<< "Hello World!";

    или вывод значения переменной:

    cout << n;
  9. чтобы консольное окно не исчезало сразу, добавим паузу:
  10. int main(){
      cout<< "Hello World!";
      system("pause");
    }
  11. Откомпилируйте и запустите проект. Посмотрите результат.

  • Для ввода данных применяется стандартный потоковый объект cin, который использует операцию >>. Справа от этого знака находится переменная, принимающая вводимую информацию.
  • Для вывода данных применяется стандартный потоковый объект cout, который использует операцию <<. Справа от этого знака находится литерал или переменная, значение которой выводится.
  • Использование объектов cin и cout возможно, потому что в программе подключен файл iostream
Лабораторная работа 1: Обычный вывод и ввод
Выполнить: Создайте консольное приложение для ввода числа, увеличения его на единицу и выводу результата в консоль.

Примерный вывод:

Введите число: 4
Результат: 5

[file nameL1Lab1.cpp]

✍ Алгоритм:

  1. Откройте Microsoft Visual Studio. Выберите в меню Файл -> Новый проект. В секции Тип проекта выберите C++ и затем Win32 Консольное приложение.
  2. В окне Обозреватель решений найдите папку Файлы источники щелкните правой кнопкой мыши, чтобы добавить новый файл Даобавить -> New Item. Мы собираемся создать новый .cpp файл. Назовите его L1lab1.cpp.
  3. Добавьте следующий код в созданный файл:
  4. #include <iostream>
    Директива iostreamсодержит функции ввода/вывода в файлы или консоль.
  5. Далее введите код функции Main:
  6. int main() {
    		// …
    }
    
    Функция main является точкой входа программы на C++. Здесь начинается компиляция проекта

    Для того, чтобы редактор воспринимал кириллицу, добавьте в функцию main строку:

    setlocale(LC_ALL, "");
  7. В функции main добавьте объявление переменной x с типом integer (целое число):
  8. int x;
  9. Запросите ввести число:
  10. std::cout << "Введите число: ";
  11. Используйте библиотеку std для сохранения введенного значения в переменной x:
  12. ...
     std::cin >> x;
    ...
  13. Увеличим x на единицу:
  14. x++;
  15. Выведите результат в консоль:
  16. std::cout << "Result: " << x << std::endl;
    Оператор endl выполняет переход на новую строку.
  17. Обычно функция main должна возвращать 0. Добавьте код в самом конце данной функции:
  18. return 0;

  19. Запустите приложение. Консольное окно быстро пропадает. Необходимо его задержать на экране
  20. Добавьте для этого паузу:
  21. system("pause");
       return 0;
    }
  22. Запустите приложение снова.
  23.   
    Импортирование функциональности из библиотеки std:

  24. Для того чтобы постоянно не добавлять область имен std, импортируем в проект некоторые из ее функций. Добавьте следующий код в самое начало кода проекта, в область заголовков:
  25. using std::cout;
    using std::cin;
    using std::endl;
    
    Вся функциональность стандартной библиотеки является частью области имен std.
    Если какая-то функция библиотеки используется в проекте достаточно часто, то имеет смысл импортировать ее в глобальное пространство
  26. Теперь можно убрать префикс std перед выводом cout и вводом cin данных:
  27. cout << "Введите число: ";
    …
    cin >> x;
    …
    cout << "Результат: " << x << endl;
  28. Запустите приложение.
  29.  
    Импортирование пространства имен std:

  30. Вместо того чтобы выводить конкретные функции библиотеки std, можно импортировать саму библиотеку. Для этого необходимо добавить в область заголовков:
  31.  using namespace std;
  32. Запустите проект снова.
Задание 1: Условный оператор If

Выполнить: У пользователя запрашивается ввод оценки (1, 2, 3, 4 или 5). Необходимо вывести комментарий к введенной оценке: очень плохо — 1, плохо — 2, удовлетворительно — 3, хорошо — 4, отлично — 5. Словесная характеристика оценки должна сохраняться в строковой переменной characteristic.

Замечание 1: Чтобы использовать строковую переменную нужно подключить библиотеку:

#include <string>
… 
std::string characteristic;

Замечание 2: Используйте синтаксис цепочки условных конструкций if:

if (mark == 1) {}
	else if (...) // condition 2
        {}
	else if (...) // condition 3
	{}
	else
	{}

Ожидаемый вывод:

Введите оценку:
2
Комментарий к оценке: плохо

[имя файла L1Task1.cpp]

Задание 2. Оператор выбора switch
Реализуйте программу, спрашивающую у ученика его отметку по информатике и реагирующую на нее подходящим текстом.
Используйте для проверки значения введенной переменной оператор switch:

switch (идентификатор переменной)
{
case значение1:
	оператор1;
	break;
case значение2:
	оператор2;
	break;default:
	оператор n;
}

[имя файла L1Task2.cpp]

Задание 3: If

Выполнить: Попросите пользователя ввести число от 1 до 3 — размер порции кофе (1=маленький, 2=средний, 3=большой). Выведите соответствующую цену (1 — 100 рублей, 2 — 150 рублей, 3 — 200 рублей). Используйте условный оператор if.

Ожидаемый вывод:

Размер чашки: 1=маленький 2=средний 3=большой
Введите вариант: 
2
Результат: оплатите 150 рублей
Размер чашки: 1=маленький 2=средний 3=большой
Введите вариант: 
5
Результат: неверный выбор.

[имя файла L1Task3.cpp]

Задание 4: Конструкция Switch

Выполнить: Выполните предыдущее задание, используя конструкцию switch.

Ожидаемый вывод:

Размер чашки: 1=маленький 2=средний 3=большой
Введите вариант: 
2
Результат: оплатите 150 рублей
Размер чашки: 1=маленький 2=средний 3=большой
Введите вариант: 
5
Результат: неверный выбор.

[имя файла L1Task4.cpp]

Задание 5: Цикл For

Выполнить: Выведите последовательность: -3 0 3 6 9 12 15 18 21 24. Выполните задание, используя цикл FOR с шагом 3.

Замечание: Синтаксис для задания шага цикла:

for ([инициализация счетчика]; [условие]; [итератор])

в качестве итератора следует указать счетчик +=3

Ожидаемый вывод:

Последовательность: -3 0 3 6 9 12 15 18 21 24

[имя файла L1Task5.cpp]

Задание 6

Выполнить: Выведите последовательность: 1 2 3 4 . . . 99 100 99 . . . 3 2 1.

Указание 1: Следует использовать два цикла for: один цикл для последовательности 1 2 3 4 . . . 99 100, второй — для последовательности 99 98 . . . 3 2 1 с шагом i—).

Ожидаемый вывод:

Последовательность: 1 2 3 4 5 . . . 99 100 99 . . . 4 3 2 1

[имя файла L1Task6.cpp]

Задание 7

Выполнить: Вводятся 10 целых чисел. Выведите количество положительных и отрицательных среди них.

Указание 1: Создайте цикл for для ввода чисел и их проверки. Используете две переменные-счетчика.

Ожидаемый вывод:

1  -5  -12   2   3   9   -1  9   5   -8   => 
counter_positive = 6, counter_negative = 4

[имя файла L1Task7.cpp]

Задание 8: Цикл While

Выполнить: Посчитайте произведение двухзначных четных чисел в интервале [10;20] (10 * 12 * 14 * 16 * 18 * 20). Используйте цикл while.

Замечание: Для подсчета произведения используйте переменную product с начальным значением product = 1.

Ожидаемый вывод:

10 * 12 * 14 * 16 * 18 * 20  =  9676800

[имя файла L1Task8.cpp]

Задание 9

Выполнить: Выведите последовательность 15 12 9 6 3 0 (от 15 до 0 с шагом = -3).

Замечание: Выполните задание дважды в одном и том же проекте: сначала с циклом while, а затем с циклом do..while.

Ожидаемый вывод:

while: 15 12 9 6 3 0
do-while: 15 12 9 6 3 0

[имя файла L1Task9.cpp]

Задание 10:

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

Указание:

В подобных задачах следует использовать идиому «бесконечный цикл с выходом из середины». В коде программы это означает:

while(1>0)
	{
		if (...) 
			break;
	}

[имя файла L1Task10.cpp]


Задания для самостоятельного выполнения:

Указания: задания следует сохранить в файле с именем задания, и обязательно в коде вставить комментарий с постановкой задачи.

BEGIN

  1. Begin12. Даны катеты прямоугольного треугольника a и b. Найти его гипотенузу c и периметр P:
    c = (a2 + b2)1/2,        
    P = a + b + c.
    
    Примерный вывод:
    << a=4.90
    << b=9.90
    results:
    c=11.05
    P=25.85
    
  2. Begin17. Даны три точки A, B, C на числовой оси. Найти длины отрезков AC и BC и их сумму.
    Примерный вывод:
    << A=-3.80
    << B=3.40
    << C=0.50
    results:
    AC=4.30
    BC=2.90
    AC+BC=7.20
    
  3. Begin23. Даны переменные A, B, C. Изменить их значения, переместив содержимое A в B, B — в C, C — в A, и вывести новые значения переменных A, B, C.
    Примерный вывод:
    << A=2.47
    << B=1.41
    << C=9.50
    results:
    A=9.50
    B=2.47
    C=1.41
    
  4. Begin27. Дано число A. Вычислить A8, используя вспомогательную переменную и три операции умножения. Для этого последовательно находить A2, A4, A8. Вывести все найденные степени числа A.
    Примерный вывод:
    << A=3.20
    results:
    A2=10.24  A4=104.86  A8=1095.12
    
  5. Begin28. Дано число A. Вычислить A15, используя две вспомогательные переменные и пять операций умножения. Для этого последовательно находить A2, A3, A5, A10, A15. Вывести все найденные степени числа A.
    Примерный вывод:
    << A=1.57
    results:
    A2=2.46  A3=3.87  A5=9.54  A10=90.99  A15=867.95
    
  6. Begin40. Найти решение системы линейных уравнений вида:
    A1·x + B1·y = C1,
    A2·x + B2·y = C2,

    заданной своими коэффициентами A1, B1, C1, A2, B2, C2, если известно, что данная система имеет единственное решение. Воспользоваться формулами:

    x = (C1·B2 − C2·B1)/D,        
    y = (A1·C2 − A2·C1)/D,
    где D = A1·B2 − A2·B1
    Примерный вывод:
    << A1=-3.00  << B1=-2.00  << C1=4.00
    << A2=-1.00  << B2=-4.00  << C2=-2.00
    results:
    x = -2.00  y = 1.00
    

INTEGER

  1. Integer7. Дано двузначное число. Найти сумму и произведение его цифр.
    Примерный вывод:
    << 47
    results:
    sum = 11  product = 28
    
  2. Integer9. Дано трехзначное число. Используя одну операцию деления нацело, вывести первую цифру данного числа (сотни).
    Примерный вывод:
    << 188
    results:
    1
    
  3. Integer10. Дано трехзначное число. Вывести вначале его последнюю цифру (единицы), а затем — его среднюю цифру (десятки).
    Примерный вывод:
    << 916
    results:
    единицы 6, десятки 1
    
  4. Integer11. Дано трехзначное число. Найти сумму и произведение его цифр.
    Примерный вывод:
    << 363
    results:
    sum 12, product 54
    
  5. Integer12. Дано трехзначное число. Вывести число, полученное при прочтении исходного числа справа налево.
    Примерный вывод:
    << 263
    results:
    362
    
  6. Integer13. Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее справа. Вывести полученное число.
    Примерный вывод:
    << 124
    results:
    241
    

BOOLEAN

  1. Boolean4. Даны два целых числа: A, B. Проверить истинность высказывания: «Справедливы неравенства A > 2 и B ≤ 3».
    Примерный вывод:
    << A = 1 B = 2
    results:
    false
    
  2. Boolean5. Даны два целых числа: A, B. Проверить истинность высказывания: «Справедливы неравенства A ≥ 0 или B < −2».
    Примерный вывод:
    << A = 0 B = -3
    results:
    true
    
  3. Boolean6. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Справедливо двойное неравенство A < B < C».
    Примерный вывод:
    << A = 50 B = 66 c = 73
    results:
    true
    
  4. Boolean7. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Число B находится между числами A и C».
  5. Boolean17. Дано целое положительное число. Проверить истинность высказывания: «Данное число является нечетным трехзначным».
  6. Boolean18. Проверить истинность высказывания: «Среди трех данных целых чисел есть хотя бы одна пара совпадающих».
    Примерный вывод:
    << -1   -5   3
    results:
    false
    

IF

  1. If4. Даны три целых числа. Найти количество положительных чисел в исходном наборе.
    Примерный вывод:
    << -10   -7   -11
    results:
    0
    
  2. If6. Даны два числа. Вывести большее из них.
  3. If13. Даны три числа. Найти среднее из них (т. е. число, расположенное между наименьшим и наибольшим).
  4. If15. Даны три числа. Найти сумму двух наибольших из них.
  5. If24. Для данного вещественного x найти значение следующей функции f, принимающей вещественные значения:
    f(x) =
    2·sin(x), если x > 0,
    6 − x, если x ≤ 0.
    Примерный вывод:
    << x = 6.05
    results:
    -0.46
    
  6. If26. Для данного вещественного x найти значение следующей функции f, принимающей вещественные значения:
     	 	−x,	если x ≤ 0,
    f(x)	 = 	x2,	если 0 < x < 2,
     	 	4,	если x ≥ 2.
    
    Примерный вывод:
    << x = 1.05
    results:
    1.10
    

CASE

  1. Case6. Единицы длины пронумерованы следующим образом: 1 — дециметр, 2 — километр, 3 — метр, 4 — миллиметр, 5 — сантиметр. Дан номер единицы длины (целое число в диапазоне 1–5) и длина отрезка в этих единицах (вещественное число). Найти длину отрезка в метрах.
    Примерный вывод:
    << дм =3.15
    results:
    м = 0.315
    
  2. Case12. Элементы окружности пронумерованы следующим образом: 1 — радиус R, 2 — диаметр D = 2·R, 3 — длина L = 2·π·R, 4 — площадь круга S = π·R2. Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данной окружности (в том же порядке). В качестве значения π использовать 3.14.
    Примерный вывод:
    << 2 D = 0.79
    results:
    R = 0.40  L = 2.48  S = 0.49
    
  3. Case15. Мастям игральных карт присвоены порядковые номера: 1 — пики, 2 — трефы, 3 — бубны, 4 — червы. Достоинству карт, старших десятки, присвоены номера: 11 — валет, 12 — дама, 13 — король, 14 — туз. Даны два целых числа: N — достоинство (6 ≤ N ≤ 14) и M — масть карты (1 ≤ M ≤ 4). Вывести название соответствующей карты вида «шестерка бубен», «дама червей», «туз треф» и т. п.
    Примерный вывод:
    << Достоинство N = 9, Масть M = 3
    results:
    "девятка бубен"
    

FOR

  1. For10. Дано целое число N (> 0). Найти сумму
    1 + 1/2 + 1/3 + … + 1/N
    

    (вещественное число).

    Примерный вывод:
    << N = 11
    results:
    3.019877
    
  2. For12. Дано целое число N (> 0). Найти произведение
    1.1 · 1.2 · 1.3 · …
    

    (N сомножителей).

    Примерный вывод:
    << N = 6
    results:
    5.765760
    
  3. For13. Дано целое число N (> 0). Найти значение выражения
    1.1 − 1.2 + 1.3 − …
    

    (N слагаемых, знаки чередуются). Условный оператор не использовать.

    Примерный вывод:
    << N = 8
    results:
    -0.40
    
  4. For22. Дано вещественное число X и целое число N (> 0). Найти значение выражения
    1 + X + X2/(2!) + … + XN/(N!)
    

    (N! = 1·2·…·N). Полученное число является приближенным значением функции exp в точке X.

    Примерный вывод:
    << X = -1.10767556  N = 5 
    results:
    0.32811651
    
  5. For35. Дано целое число N (> 2). Последовательность целых чисел AK определяется следующим образом:
    A1 = 1,        A2 = 2,        A3 = 3,        AK = AK−1 + AK−2 − 2·AK−3,    K = 4, 5, … .
    

    Вывести элементы A1, A2, …, AN.

    Примерный вывод:
    << N = 11
    results:
    1 2 3 3 2 -1 -5 -10 -13 -13 -6
    

WHILE

  1. While4. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести true, если не является — вывести false.
    Примерный вывод:
    << N = 86
    results:
    false
    
  2. While7. Дано целое число N (> 0). Найти наименьшее целое положительное число K, квадрат которого превосходит N: K2 > N. Функцию извлечения квадратного корня не использовать.
    Примерный вывод:
    << N = 81
    results:
    K = 10
    
  3. While10. Дано целое число N (> 1). Найти наибольшее целое число K, при котором выполняется неравенство 3K < N.
    Примерный вывод:
    << N = 729
    results:
    K = 5
    
  4. While17. Дано целое число N (> 0). Используя операции деления нацело и взятия остатка от деления, вывести все его цифры, начиная с самой правой (разряда единиц).
    Примерный вывод:
    << N = 6772
    results:
    2 7 7 6
    
  5. While18. Дано целое число N (> 0). Используя операции деления нацело и взятия остатка от деления, найти количество и сумму его цифр.
    Примерный вывод:
    << N = 2325
    results:
    4  sum=12
    
  6. While21. Дано целое число N (> 0). С помощью операций деления нацело и взятия остатка от деления определить, имеются ли в записи числа N нечетные цифры. Если имеются, то вывести true, если нет — вывести false.
    Примерный вывод:
    << N = 10101
    results:
    true
    
* Задания взяты из задачника М.Э. Абрамяна, ЮФУ, "Programming Taskbook"