"Переклад" програм з 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())
print(a+b)

Зчитуємо два числа

(вказуючи їхній тип)

 

Результат додавання записуємо у третю змінну

#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(n):

    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(n);

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(n):

    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(n);

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(n):

    spysok.append(int(line[i]))

print spysok[0],

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(n);

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(n):

    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(n);

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(n):

    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(n);

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(n):

    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(n);

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.

 

 


Остання зміна: субота 11 липня 2020 3:26