Разговорник PascalABC.NET — C++

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск

Ниже приведены примеры программ на двух языках: на PascalABC.NET и на C++.

Простейшие программы

1. Вывести приветствие "Hello, world".

program HelloWorld;
begin
  Writeln('Hello, world');
end.
#include <iostream>
/* ^ для использования стандартных средств
     ввода-вывода                           */

using std::cout;    // для использования далее cout — стандартного потока вывода —
                    // без уточнения «std::»
using std::endl;    // аналогично; символ перехода на новую строку

int main() {
    cout << "Hello world!" << endl;
}


2. Вычислить площадь треугольника по заданному основанию и высоте.

program TriangleSquare;

begin
  Writeln('Введите основание и высоту');
  var a, h: real;
  Readln(a, h);
  Writeln('S = ', a * h / 2);
end.
#include <iostream>
#include <cstdlib>   // для system - см. ниже

using namespace std; // подключение сразу всех имён из «пространства имён» std;
                     // удобно, но возможны конфликты стандартных имён с вашими!

int main() {
    system("chcp 1251"); // для отображения кириллицы в консоли;
                         // непереносимо, только Windows

    double a, h;
    cout << "Введите основание и высоту: ";
    cin >> a >> h;
    cout << "S = " << a * h / 2 << endl;
}


3. Вычислить сумму цифр заданного целого двузначного числа.

// Сумма цифр целого двузначного числа
program Digits;

begin
  Writeln('Введите целое двузначное число');
  var n: integer;
  Readln(n);
  var d1 := n div 10;
  var d2 := n mod 10;
  var  digitsSum := d1 + d2;
  Writeln('S=', digitsSum);
end.
#include <iostream>
#include <cstdlib>

using namespace std;

int main() {
    system("chcp 1251");
    
    int n;
    cout << "Введите целое двузначное число: ";
    cin >> n;
    int d1 = n / 10, d2 = n % 10;
    int digitsSum = d1 + d2;
    cout << "S = " << digitsSum << endl;
}


4. Проверить, выполняется ли основное тригонометрическое тождество для заданного угла в радианах.

program SinCos;

begin
  Writeln('Введите значение угла в радианах');
  var x: double;
  Readln(x);
  Writeln('Проверяем основное тригонометрическое тождество: 1 = ',
                sqr(sin(x)) + sqr(cos(x)));
end.
#include <iostream>
#include <cstdlib>
#include <cmath> // математические функции и константы

using namespace std;

int main() {
    system("chcp 1251");

    double x;
    cout << "Введите значение угла в радианах: ";
	cin >> x;
    cout << "Проверяем основное тригонометрическое тождество: 1 = " << pow(sin(x), 2) + pow(cos(x), 2) << endl;
}


5. Вывести случайные целые от 0 до 99 и от 10 до 99, а также случайное вещественное от 0 до 1.

program Randoms;

begin
  // Случайное целое от 0 до 99
  var n: integer;
  n := Random(100);
  Writeln(n);

  // Случайное целое от 10 до 99
  var n2: integer;
  n2 := Random(10, 100);
  Writeln(n2);

  // Случайное вещественное от 0 до 1
  var d: real;
  d := Random;
  Writeln(d);
end.
#include <iostream>
#include <cstdlib> // для использования генератора случайных чисел
#include <ctime>   // функции времени для инициализации генератора с. ч.

using namespace std;

int main() {
  srand(unsigned(time(0))); // инициализации генератора с. ч.

  // rand() генерирует псевдослучайное целое число от 0 до 
  // константы RAND_MAX, значение которой не меньше, чем 32767

  // Случайное целое от 0 до 99
  int n1 = rand() % 100;
  cout << n1 << endl;

  // Случайное целое от a=10 до b=99
  const int a = 10;
  const int b = 100;
  int n2 = rand() % (b - a) + a;
  cout << n2 << endl;

  // Случайное вещественное от 0 до 1
  double d = (double)rand() / RAND_MAX;
  cout << d << endl;
}

Определение функций

В примерах ниже опущено подключение уже знакомых заголовочных файлов и директивы using (см. Часть 1).

1. Написать функцию, вычисляющую гипотенузу по заданным катетам.

// Значение гипотенузы по двум заданным катетам
function Hypotenuse(a, b : real) : real;
begin
    result := sqrt(sqr(a) + sqr(b));
end;
// Значение гипотенузы по двум заданным катетам
double hypotenuse(double a, double b) {
    return sqrt(a*a + b*b);
}


2. Напишите подпрограмму, принимающую три целых числа и печатающую на консоль «First number is less then second: x», где x — истинностное значение условия: полученные числа составляют монотонную последовательность.

// Проверка трёх чисел на монотонность
procedure IsMonotonic(a, b, c : integer);
begin
    Writeln("First number is less then second", 
        ((a < b) and (b < c)) or ((c < b) and (b < a));
end;
// Проверка трёх чисел на монотонность
void isMonotonic(int a, int b, int c) {
    cout << "First number is less then second" << 
        ((a < b) && (b < c)) || ((c < b) && (b < a)) << endl;
}


3. Напишите подпрограмму, которая по заданному двухзначному целому числу n возвращает два однозначных числа, определённых первой и второй цифрами n.

// разбиение целого двузначного числа n на цифры
procedure Figures(n: integer; var first, second : integer);
begin
    first := n div 10;
    second :=  n mod 10;
end;
// разбиение целого двузначного числа n на цифры
void figures(int n, int & first, int & second) {
    first = n / 10;
    second = n % 10;
}