Задача - Обмен значений численных переменных - программирование на разных языках

Задача — Обмен значений численных переменных — программирование на разных языках

Задачи по программированию с решением для школьников
Want create site? Find Free WordPress Themes and plugins.

Задача — Обмен значений численных переменных
— программирование на Pascal, Си, Кумир, Basic-256, Python

Пользователь вводит два числа. Одно присваивается одной переменной, а второе — другой. Необходимо поменять значения переменных так, чтобы значение первой оказалось во второй, а второй — в первой.

Существует два способа обменять значения переменных. Первый подходит для любых типов данных, а второй — только для численных.

1-й способ. Через «буферную» переменную

  1. Пусть первое введенное значение присвоено переменной a, второе — b.
  2. Присвоим некой третьей переменной (например, c) значение хранимое в a. Таким образом окажется, что одно и то же значение будет сохранено в двух переменных.
  3. Запишем значение переменной b в a. Таким образом, мы «затрем» прежнее содержимое a, а значение b будет храниться в двух переменных.
  4. Однако значение a не потеряно, т.к. заранее было сохранено в c. Теперь мы можем присвоить переменной b значение хранимое в c.

В результате данных трех присвоений окажется, что в переменной a будет значение b, в b — значение a.

2-й способ. Путем арифметических операций

  1. Запишем в переменную a сумму значений двух переменных: a и b.
  2. Переменной b присвоить разность между новым значением переменной a и значением b. Таким образом в b окажется старое значение a.
  3. Переменной a присвоить разность между ее текущим значением и новым значением переменной b. В результате в a окажется старое значение b.

Pascal

// 1-й способ:

var a,b,c: integer;
begin
readln(a);
readln(b);
writeln(‘a=’,a,’; b=’,b);
c := a;
a := b;
b := c;
writeln(‘a=’,a,’; b=’,b);
end.

// 2-й способ:

var a,b: integer;
begin
readln(a);
readln(b);
writeln(‘a=’,a,’; b=’,b);
a := a + b;
b := a — b;
a := a — b;
writeln(‘a=’,a,’; b=’,b);
end. 5
6
a=5; b=6
a=6; b=5

Язык Си

// 1-й способ

#include <stdio.h>
main() {
int a,b,c;
scanf(«%d», &a);
scanf(«%d», &b);
printf(«a=%d; b=%dn», a, b);
c = a;
a = b;
b = c;
printf(«a=%d; b=%dn», a, b);
}

// 2-й способ

#include <stdio.h>
main() {
int a,b,c;
scanf(«%d», &a);
scanf(«%d», &b);
printf(«a=%d; b=%dn», a, b);
a = a + b;
b = a — b;
a = a — b;
printf(«a=%d; b=%dn», a, b);
} 9
0
a=9; b=0
a=0; b=9

Python

# 1-й способ:

a = int(input())
b = int(input())
print(‘a=%d; b=%d’ % (a,b))
c = a
a = b
b = c
print(‘a=%d; b=%d’ % (a,b))

# 2-й способ:

a = int(input())
b = int(input())
print(‘a=%d; b=%d’ % (a,b))
a = a + b
b = a — b
a = a — b
print(‘a=%d; b=%d’ % (a,b))

# 3-й способ:

a = int(input())
b = int(input())
print(‘a=%d; b=%d’ % (a,b))
a,b = b,a
print(‘a=%d; b=%d’ % (a,b)) 5
2
a=5; b=2
a=2; b=5

Для Python существует и третий способ решения задачи — через кортеж. Выглядит это, например, так: a,b = b,a. В результате данного действия значение b окажется связанным с a, значение a — с b.

КуМир

| 1-й способ:

алг обмен_значений
нач
цел а, б, в
ввод а
ввод б
вывод «а=»,а,»; б=»,б, нс
в := а
а := б
б := в
вывод «а=»,а,»; б=»,б, нс
кон

| 2-й способ:

алг обмен_значений
нач
цел а,б
ввод а
ввод б
вывод «а=»,а,»; б=»,б, нс
а := а + б
б := а — б
а := а — б
вывод «а=»,а,»; б=»,б, нс
кон 5
88
а=5; б=88
а=88; б=5

Basic-256

# 1-й способ:

input a
input b
print «a=» + a + «; b=» + b
c = a
a = b
b = c
print «a=» + a + «; b=» + b

# 2-й способ:

input a
input b
print «a=» + a + «; b=» + b
a = a + b
b = a — b
a = a — b
print «a=» + a + «; b=» + b 6
4
a=6; b=4
a=4; b=6

Did you find apk for android? You can find new Free Android Games and apps.

Добавить комментарий