1. Технология за ефективно програмиране на алгоритми

Увод

Сайт на курса, правила за занятия, тренинги, тестове и състезания
Форми на оценяване

Стандарти на С и С++, компилатори

Dev-C++ за Windows, gcc за Linux, BSD и др. UNIX-ови ОС
Конзолни приложения, вход и изход

Стандартен вход и изход в С и С++

- Стандартен вход и изход за езика C

scanf("<форматиращ спецификатор>",<адрес на променлива>);

Пример:
int ik; 
unsigned uk;
long lk;
unsigned long ulk;
double dk;
scanf("%d %u %ld %lu %lf", &ik, &uk, &lk, &ulk, &dk);

printf("<форматиращ спецификатор>",<променлива>);

Пример:

int ik = -10;
unsigned uk = 10;
long lk = -1000000;
unsigned long ulk = 1000000; // 16 битов цял тип данни
double dk = 2.52;
printf("%d %u %ld %lu %lf\n", ik, uk,lk, ulk, dk);

- Стандартен вход и изход за езика C++

cin >> <име на променлива>;

Пример:

int k;
cin >> k;

cout << <име на променлива>;

Пример:

int ik = -10;
unsigned int uk = 10;
long lk = -1000000;
unsigned long ulk = 1000000; // 16 битов цял тип данни
double dk = 2.52;
cout << ik << " " <<uk << " " << lk << " "
     << ulk<< " " << dk << "\n";

Пренасочване на входа и изхода

Пренасочване на стандартни вход и изход.

Файл с програма на C или C++ със стандартни вход и изход: prog.exe
Текстов файл с входните данни за програмата: test1.inp
Изпълнение на програмата: prog <test1.inp >test1.out
Текстов файл, произведен от програмата при това изпълнение: test1.out

Пример 1: Сума на две числа

Дадени са две цели числа в интервала [-100, 100].  Напишете програма, която пресмята сумата на числaтa.

#include <iostream>

using namespace std;
int main()
{
        int i, j;
        cin >> i >> j;
        cout << (i+j);    
        return 0;
}

Име на файл с текст на програмата: add.cpp
Име на изпълним файл (Windows): add.exe

Изпълнение на програмата:

C:\my_dir\>add < inp.txt > out.txt

Файл inp.txt за вход

12
5

Създаден от ОС файл out.txt


17

Вход и изход за много примери

while (cin >> x) { ...}
while (cin >> x && x > 0) { ... }

int n;
cin >> n;
for (int i = 0; i < n; i++) { cin >> ... }


string st;
getline(cin, st);

Пример 2: Сума на две числа
Дадени са две цели числа в интервала [-100, 100].  Напишете програма, която пресмята сумата на числaтa.

Вход
От стандартния вход се въвеждат много примери. Първото число е броят на примерите, на всеки следващ ред са дадени по две числа за събиране.

Изход
За всеки пример от входа на стандартния изход се извежда едно число - сумата на числата от съответния пример от входа

Пример:
Вход
3
-10 2
20 3
30 4


Изход
-8
23
34


Решение:
// Николай Киров F123456
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;
    for (int k = 0; k < n; k++)
    {
       
int i, j;
        cin >> i >> j;
        cout << (i+j) << endl;
    }    

    return 0;
}

Решението като файл: f123456_0a.cpp