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

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

Если уж Вы его действительно изучаете, то есть смысл открыть учебник, почитать, написАть самостоятельно, а уж в случае если программа не заработает, попросить найти ошибку и объяснить. А иначе шансов изучать pascal нет.

з. ы. тем более, что задачка примитивная
Владимир Рыжиков
Владимир Рыжиков
2 216
Лучший ответ
Используй массив для хранения вводимых чисел. А потом отсортируй его - например элементарнейшей пузырьковой сортировкой. Раз уж ты только учишь язык, знание алгоритмов сортировки не помешают.
Можно сделать так. Хранение элементов произвожу в динамическом массиве.
program Sort;
uses Crt;
type atype=array[0..0] of integer;
var
x,y,i,tmp1,tmp2: integer;
Massiv: ^atype;
z: pointer;

{Функция для получения элемента из динамического массива}
function GetElement(pl: integer): integer;
begin
Massiv:=z; {Переходим на начало массива}
inc(Massiv,pl); {Устанавливаем позицию на нужный элемент массива}
GetElement:=Massiv^[0]; {Читаем массив}
end;

{Функция для установки значения в динамическом массиве}
procedure SetElement(pl,dt: integer);
begin
Massiv:=z; {Переходим на начало массива}
inc(Massiv,pl); {Устанавливаем позицию на нужный элемент}
Massiv^[0]:=dt; {Сохраняем элемент массива}
end;

{Основная часть программы}
begin
ClrScr; {Очищаем экран}
WriteLn('Введите колличество чисел');
ReadLn(x); {Вводим с клавиатуры кол-во чисел в массиве}
GetMem(Massiv,x*SizeOf(integer)); {Выделяем память под динамический массив}
z:=Massiv; {Сохраняем указатель на начало массива}
for y:=1 to x do {организуем цикл для ввода X элементов массива}
begin
inc(Massiv); {Переходим на следующий элемент массива}
ClrScr;{очищаем экран}
Write('Введите ',y,' число: ');
ReadLn(Massiv^[0]); {Вводим i-ый элемент массива с клавиатуры}
end;

{Вот это основная часть программы. Применён самый простой вид сортировки - пузырьковая. Всё что идёт до этого - организация ввода данных}
for i:=1 to x-1 do {Начало первого цикла}
begin
for y:=i+1 to x do {Начало второго цикла}
begin
if GetElement(i)>GetElement(y) then {проверяем больше ли соседние элементы массива, если больше то меняем местами}
begin
tmp1:=GetElement(i); {Сохраняем элемент массива}
tmp2:=GetElement(y);
SetElement(i,tmp2);{Меняем местами}
SetElement(y,tmp1);
end;
end;{Конец 2-ого цикла}
end;{Конец 1-ого цикла}
ClrScr;{Очищаем экран}
for i:=1 to x do Write(GetElement(i),' '); {Выводим посортированные элементы массива}
Readkey;{Ждем нажатие любой клавиши}
end.
изучай 1С, а не паскаль, паскаль щас не нужен в жизни а 1С на нем строиться все!!!!

Похожие вопросы