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
Пример
3:
Сума
на
две
числа
Дадени са две цели числа в интервала [-100, 100].
Напишете програма,
която пресмята сумата на числaтa.
Вход
От стандартния вход се въвеждат много примери, на всеки ред са дадени
по две числа за събиране.
Изход
За всеки пример от входа на стандартния изход се извежда едно число -
сумата на числата от съответния пример от входа
Пример:
Вход
-10 2
20 3
30 4
Изход
-8
23
34
Решение:
// Николай Киров F123456
#include
<iostream>
using namespace std;
int main()
{
int i, j;
while(cin
>>
i
>> j)
cout << (i+j) << endl;
return 0;
}
Пример
4:
Сума
на
две
числа
Дадени са две цели числа в интервала [-10100, 10100].
Напишете
програма,
която пресмята сумата на числaтa.
Вход
От стандартния вход се въвеждат много примери, на всеки ред са дадени
по две числа за събиране.
Изход
За всеки пример от входа на стандартния изход се извежда едно число -
сумата на числата от съответния пример от входа
Пример:
Вход
-100000000000000000000000000 1
200000000000000000000000000000000000000
-200000000000000000000000000000000000000
Изход
-999999999999999999999999999
0
Решение:
// Николай Киров F123456
#include
<iostream>
#include <string>
using namespace std;
string sum(string s1, string s2)
{
......
}
int main()
{
string i, j;
while(cin
>>
i
>> j) cout << sum(i, j) << endl;
return 0;
}