"Переклад" програм з Python на C++ та Pascal
Перекладаємо програми з Python на C++ та Pascal
Загальні зауваження
Змінні, які будемо використовувати, потрібно оголошувати, вказуючи до якого типу вони належать (int integer цілі числа, float real – дробові числа).
Після кожної команди – крапка з комою.
Кілька команд, які утворюють блок – беруться у фігурні дужки
{} (аналогічно до begin end)
При створенні списку (масиву) потрібно вказувати його розмір. Можна вказати максимальний (наприклад 1000 елементів).
Потренуватись можна на сайті http://s28.zp.ua/fpc/
Знайти суму двох чисел
Python |
Алгоритм |
C++ |
Pascal |
a =int(input()) b =int(input()) c=a+b print(c) або: a, b = map (int, input().split()) |
Зчитуємо два числа (вказуючи їхній тип)
Результат додавання записуємо у третю змінну |
#include <iostream> using namespace std; int main() { int a, b; cin >> a; cin >> b; int c = a + b; cout <<c; return 0; } |
program p1; var a,b,c :integer; begin read(a,b); c:=a+b; write(c); end. |
Знайти частку двох чисел з точністю три знаки після коми
Python |
Алгоритм |
C++ |
Pascal |
a = float (input()) b = float (input()) c=a/b print("%.3f" % с) |
Зчитуємо два числа (вказуючи їхній тип; важливо вказати дробовий тип для змінних a b , інакше результат ділення буде ціле число) |
#include <iostream> #include <iomanip> using namespace std; int main() { int a, b; cin >> a; cin >> b; float c = (float) a / (float)b; cout <<fixed<< setprecision(3) << c ; return 0; } |
program p1; var a,b:integer; c:real; begin read(a,b); c:=a/b; write(c); end. |
Надрукувати два введені числа у зворотному порядку
Python |
Алгоритм |
C++ |
Pascal |
a = int (input()) b = int (input()) print(b) print(a) |
Зчитуємо два числа Друкуємо ці числа у зворотному порядку |
#include <iostream> #include <iomanip> using namespace std; int main() { int a, b; cin >> a; cin >> b; cout << b<<endl << a; return 0; } |
program p1; var a,b:integer; c:real; begin read(a,b); writeln(b); write(a); end. |
Знайти суму цифр двоцифрового числа
Python |
Алгоритм |
C++ |
Pascal |
a= int (input()) b=line%10 c=line//10 print(b+c) |
Зчитуємо число
Остання цифра – остача від ділення на 10 Перша цифра – ціла частина ділення на 10 Друкуємо результат – суму отриманих цифр |
#include <iostream> #include <iomanip> using namespace std; int main() { int a; cin >> a; int b,c; b=a%10; c=a/10; cout <<b+c; return 0; } |
program p1; var a,b,c:integer; begin read(a); b:=a div 10; c:=a mod 10; write(b+c); end. |
Знайти квадрат числа
Python |
Алгоритм |
C++ |
Pascal |
a= int (input()) print(a* a) |
Зчитуємо число
Друкуємо це число, помножене саме на себе |
#include <iostream> using namespace std; int main() { int a; cin >> a; cout <<a*a; return 0; } |
program p1; var a:integer; begin read(a); write(a*a); end. |
Галуження
Знайти більше з двох чисел. Якщо числа рівні, то вивести будь-яке з них
Python |
Алгоритм |
C++ |
Pascal |
a = int (input()) b = int (input()) if a>b: print(a) else: print(b) |
Зчитуємо два числа
Якщо перше число більше за друге, то друкуємо перше число, інакше друкуємо друге число |
#include <iostream> #include <iomanip> using namespace std; int main() { int a, b; cin >> a; cin >> b; if (a>b) {cout << a;} else {cout << b;}; return 0; } |
program p1; var a,b,c:integer; begin read(a,b); if a>b then write(a) else write(b); end. |
Надрукувати те число з двох, сума цифр якого більша. Якщо суми цифр однакові, то вивести перше число
Python |
Алгоритм |
C++ |
Pascal |
a = int (input()) b = int (input()) s1=a//10+a%10 s2=b//10+b%10 if int(s1)>=int(s2): print(a) else: print(b) |
Зчитуємо два числа
Остання цифра – остача від ділення на 10 Перша цифра – ціла частина ділення на 10 Обчислюємо суми цифр для обох чисел у змінних s1 та s2
Якщо s1 більше за s2, то друкуємо перше число, інакше друкуємо друге число |
#include <iostream> #include <iomanip> using namespace std; int main() { int a, b,s1,s2; cin >> a; cin >> b; s1=a%10+a/10; s2=b%10+b/10; if (s1>=s2) {cout << a;} else {cout << b;}; return 0; } |
program p1; var a,b,s1,s2:integer; begin read(a,b); s1:=a div 10 + a mod 10; s2:=b div 10 + b mod 10; if s1>=s2 then write(a) else write(b); end. |
Цикли
Обчислити суму чисел від 1 до 1000
Python |
Алгоритм |
C++ |
Pascal |
s=0 for number in range(1,1001): s=s+number print(s) |
Цикл з параметром
Спочатку сума s рівна 0
Перебираємо числа від 1 до 1000 (не включаючи 1001),
Кожне із чисел додаємо до змінної s |
#include <iostream> using namespace std; int main() { int s = 0; for (int i = 1; i <= 1000; i++) { s = s + i; } cout << s << endl; return 0; } |
program p1; var i,s:integer; begin s:=0; for i:=1 to 1000 do s:=s+i; write(s); end. |
s=0 number=1 while number <=1000: s=s+number number=number+1 print(s) |
Цикл з умовою
Спочатку сума s рівна 0
Поки число менше рівне 1000
Додаємо це число до змінної s Збільшуємо число на 1 |
#include <iostream> using namespace std; int main() { int s = 0; int number=1; while (number<=1000) { s = s + number; number=number+1; } cout << s << endl; return 0; } |
program p1; var i,s:integer; begin s:=0; i:=1; while i<=1000 do begin s:=s+i; i:=i+1; end; write(s); end. |
Масиви / списки
Обчислити суму чисел заданої послідовності
Python |
Алгоритм |
C++ |
Pascal |
n=int(input()) line= input().split() spysok=[] for i in range: spysok.append(int(line[i])) s=0 for element in spysok: s=s+element print(s) |
Зчитати дані: Число Список елементів
Сума спочатку рівна 0
Перебираємо усі елементи послідовності Додаємо до суми кожен з елементів
Друкуємо суму |
#include <iostream> using namespace std; int main() { int arr[1000]; int n; cin >> n; for (int i = 0; i < n; i++) { cin >> arr[i]; } int s=0; for (int i = 0; i < n; i++) { s=s+ arr[i]; } cout<<s; return 0; } |
program p1; var i,n:integer; s:longint; a:array[1..1000]of integer; begin read; for i:=1 to n do read(a[i]); s:=0; for i:=1 to n do s:=s+a[i]; write(s); end. |
Знайти найбільше число із заданої послідовності
Python |
Алгоритм |
C++ |
Pascal |
n=int(input()) line= input().split() spysok=[] for i in range: spysok.append(int(line[i])) m=spysok[0] for element in spysok: if m<element: m=element print(m) |
Зчитати дані: Число Список елементів
У змінну m записуємо перший елемент
Перебираємо усі елементи послідовності Якщо елемент більший за m, то записуємо у змінну m його
Друкуємо m |
#include <iostream> using namespace std; int main() { int arr[1000]; int n; cin >> n; for (int i = 0; i < n; i++) { cin >> arr[i]; } int m=arr[0]; for (int i = 0; i < n; i++) { if (m<arr[i]) {m=arr[i];}; } cout<<m; return 0; } |
program p1; var i,s,n,m:integer; a:array[1..1000]of integer; begin read; for i:=1 to n do read(a[i]); m:=a[1]; for i:=1 to n do if m<a[i] then m:=a[i]; write(m); end. |
Вивести задану послідовність за правилом: парні числа з нового рядка, далі йдуть непарні числа у рядок. Відомо, що перше число завжди парне
Python |
Алгоритм |
C++ |
Pascal |
n=int(input()) line= input().split() spysok=[] for i in range: spysok.append(int(line[i])) print (spysok) for nomer in range(1,len(spysok)): if spysok[nomer]%2!=0: print (spysok[nomer], " ") else: print() print (spysok[nomer], " ") |
Зчитати дані: Число Список елементів
Друкуємо перший елемент
Перебираємо усі елементи послідовності з другого
Якщо елемент непарний, то просто друкуємо його у рядок Інакше переходимо на новий рядок і друкуємо елемент
|
#include <iostream> using namespace std; int main() { int arr[1000]; int n; cin >> n; for (int i = 0; i < n; i++) { cin >> arr[i]; } cout<<arr[0]<<" "; for (int i = 1; i < n; i++) { if (arr[i]%2!=0) {cout<<arr[i]<<" ";} else {cout<<endl<<arr[i]<<" ";}; } return 0; } |
program p1; var i,s,n,m:integer; a:array[1..1000]of integer; begin read; for i:=1 to n do read(a[i]); write(a[1], ' '); for i:=2 to n do if a[i] mod 2<>0 then write(a[i], ' ') else begin writeln(); write(a[i], ' ') end; end. |
Вивести задану послідовність у зворотному порядку
Python |
Алгоритм |
C++ |
Pascal |
n=int(input()) line= input().split() spysok=[] for i in range: spysok.append(int(line[i]))
for nomer in range(n-1,-1,-1): print (spysok[nomer], " ") |
Зчитати дані: Число Список елементів
Перебираючи список у зворотньому порядку, Друкуємо кожен елемент |
#include <iostream> using namespace std; int main() { int arr[1000]; int n; cin >> n; for (int i = 0; i < n; i++) { cin >> arr[i]; } for (int i = n-1; i >=0; i--) { cout<<arr[i]<<" "; } return 0; } |
program p1; var i,s,n:integer; a:array[1..1000]of integer; begin read; for i:=1 to n do read(a[i]); for i:=n downto 1 do write(a[i], ' '); end. |
Вивести парні числа заданої послідовності у зворотному порядку
Python |
Алгоритм |
C++ |
Pascal |
n=int(input()) line=input().split() spysok=[] for i in range: spysok.append(int(line[i]))
for nomer in range(n-1,-1,-1): if spysok[nomer]%2==0: print (spysok[nomer], " ") |
Зчитати дані: Число Список елементів
Перебираючи список у зворотньому порядку,
Якщо елемент списку є парним (остача від ділення на 2 рівна 0), то друкуємо його |
#include <iostream> using namespace std; int main() { int arr[1000]; int n; cin >> n; for (int i = 0; i < n; i++) { cin >> arr[i]; } for (int i = n-1; i >=0; i--) { if (arr[i]%2==0){cout<<arr[i]<<" ";} } return 0; } |
program p1; var i,s,n:integer; a:array[1..1000]of integer; begin read; for i:=1 to n do read(a[i]); for i:=n downto 1 do if a[i] mod 2=0 then write(a[i], ' '); end. |
Вивести прості числа заданої послідовності у зворотному порядку
Python |
Алгоритм |
C++ |
Pascal |
n=int(input()) line=input().split() spysok=[] for i in range: spysok.append(int(line[i]))
for nomer in range(n-1,-1,-1): pok=True for y in range(2,spysok[nomer]): if spysok[nomer]%y==0: pok=False if pok and spysok[nomer]>1: print (spysok[nomer], " ") |
Зчитати дані: Число Список елементів
Перебираючи список у зворотньому порядку,
Змінна Показник набуває значення True
Перебираємо числа y від 2 до поточного елемента
Якщо поточний елемент ділиться на y без остачі, то показник набуває значення False
Якщо Показник має значення True і число більше 1, то друкуємо його |
#include <iostream> using namespace std; int main() { int arr[1000]; int n; cin >> n; for (int i = 0; i < n; i++) { cin >> arr[i]; } for (int i = n-1; i >=0; i--) { bool pok=true; for (int y=2; y<arr[i]; y++) { if (arr[i]%y==0) {pok=false;} } if ((arr[i]>1) && (pok==true)) {cout<<arr[i]<<" ";} } return 0; } |
program p1; var i,pok,n,y:integer; a:array[1..1000]of integer; begin read; for i:=1 to n do read(a[i]); for i:=n downto 1 do begin pok:=1; for y:=2 to a[i]-1 do if a[i] mod y=0 then pok:=0;
if (pok=1) and (a[i]>1) then write(a[i], ' '); end; end. |