Напишите программу перестановки значений переменных а, b, c в порядке возрастания, т. е. так, чтобы a < b < c. Используйте процедуру swap.
procedure swap (var x, y: integer);
var m: integer;
begin
m:=x;
x:=y;
y:=m;
end;
Исходные данные вводятся с клавиатуры.
Помогите если не лень, пожалуйста
Другие языки программирования и технологии
ИКТ. Программирование на Pascal Turbo
if a>b then swap(a,b);
if a>c then swap(a,c);
if b>c then swap(c,b);
if a>c then swap(a,c);
if b>c then swap(c,b);
Ради трёх переменных нет смысла писать сортировку. Вот решение:
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.
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.
Как на 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;
В С++, например, решается вложенными циклами 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;
Похожие вопросы
- Здравствуйте! помогите пожалуйста выполнить зачётные задания по программированию на Pascal
- Программирование на pascal
- Программирование на PASCAL
- 1.Рекурсия в языке программирования Borland Pascal 7.0. 2.Понятие и виды информации. Ее свойства.
- Программирование. Матрицы. Pascal.
- программирование в pascal. Даны 3 числа. Определить сколько среди них нулей
- Помогите с программированием на Pascal ABC
- С чего лучше начать изучение программирования? С Pascal или можно сразу с Java?
- Олимпиадная задача по программированию в Pascal (Free, ABC.net) 10 класс! Помогите решить?)
- Программирование на Pascal