Другие языки программирования и технологии

ИКТ. Программирование на Pascal Turbo

Напишите программу перестановки значений переменных а, b, c в порядке возрастания, т. е. так, чтобы a < b < c. Используйте процедуру swap.

procedure swap (var x, y: integer);
var m: integer;
begin
m:=x;
x:=y;
y:=m;
end;
Исходные данные вводятся с клавиатуры.

Помогите если не лень, пожалуйста
Вели Алиев
Вели Алиев
408
if a>b then swap(a,b);
if a>c then swap(a,c);
if b>c then swap(c,b);
Сергей Ценаев
Сергей Ценаев
95 955
Лучший ответ
Ради трёх переменных нет смысла писать сортировку. Вот решение:
var a, b, c: integer;
begin
readln(a, b, c);
if a > b then swap(a, b);
if b > c then swap(b, c);
if a > b then swap(a, b);
writeln(a, ' ', b, ' ', c);
end.
Kanat Nakypbekov
Kanat Nakypbekov
20 861
Как на Pascal не знаю, но есть понятие "пузырьковой" сортировки.
В С++, например, решается вложенными циклами for. Погугли

#include
#include // для std::swap. В C++11 используйте заголовок

int main()
{
int a[5] = { 3,5,2,8,4 };
int n = 5;

for ( int i = 0; i < n; i++ )
{
printf("%i %i\n", i, a[i] );
}

printf("\n\n");

for ( int i = 0; i < n; i++ )
{

// find minimum element

int a_min = a[i];
int j_min = i;

for ( int j = i; j < n; j++ )
{
if ( a[j] < a_min )
{
printf("i:%i old a_min:%i, old j_min:%i ", i, a_min, j_min );
a_min = a[j];
j_min = j;
printf("new a_min:%i, new j_min:%i\n", a_min, j_min );

}
}

//
// exchange a[i] with minimum
// swap()
int t;
t = a[i];
a[i] = a[j_min];
a[j_min] = t;

}

for ( int i = 0; i < n; i++ )
{
printf("%i %i\n", i, a[i] );
}

return 0;