Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
35 / 35 / 3
Регистрация: 26.02.2013
Сообщений: 176
1

Процедура сортировки массива из двух элементов

11.11.2013, 15:58. Показов 837. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не получается, выдает ошибку
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2013, 15:58
Ответы с готовыми решениями:

Процедура сортировки массива
Необходимо создать процедуру сортировки одномерного массива по возрастанию,входные данные...

Процедура сортировки (Возврашение массива)
Использую код uses crt; var a:array of longint; t:text; i,j,n:longint; procedure sort...

Процедура сортировки строк двумерного массива
Напишите, пожалуйста, процедуру (Не обязательно всю программу) сортировки строки двумерного массива...

Процедура сортировки столбцов двумерного массива
Напишите, пожалуйста, процедуру сортировки столбцов в двумерном массиве по возрастанию.

16
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.11.2013, 16:09 2
Цитата Сообщение от datafile4 Посмотреть сообщение
Не получается, выдает ошибку
Покажи код.
0
35 / 35 / 3
Регистрация: 26.02.2013
Сообщений: 176
11.11.2013, 16:11  [ТС] 3
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure sort(a:array of integer;var r:array of integer);
var
   i:byte;
   t:integer;
begin
  if a[1]> a[2] then 
begin
  t:=a[1];
  a[1]:=a[2];
  a[2]:=t;
end;
for i:=1 to 2 do
r[i]:=a[i];
end;
0
1646 / 1075 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
11.11.2013, 16:11 4
Pascal
1
2
3
4
5
6
If M[1]<M[2] then
Begin
  M[2]:=M[2]+M[1];
  M[1]:=M[2]-M[1];
  M[2]:=M[2]-M[1];
End;
0
35 / 35 / 3
Регистрация: 26.02.2013
Сообщений: 176
11.11.2013, 16:12  [ТС] 5
На шаге if a[1]> a[2] выдает ошибку проверки диапозона
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.11.2013, 16:14 6
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
type mas=array[1..2] of integer;
procedure sort(var a:mas);
var
   i:byte;
   t:integer;
begin
if a[1]> a[2] then
 begin
  t:=a[1];
  a[1]:=a[2];
  a[2]:=t;
end;
end;
1
1646 / 1075 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
11.11.2013, 16:15 7
Цитата Сообщение от datafile4 Посмотреть сообщение
На шаге if a[1]> a[2] выдает ошибку проверки диапозона
А если попробовать описать массивы как a : Array[1..2] of Integer; ?
0
35 / 35 / 3
Регистрация: 26.02.2013
Сообщений: 176
11.11.2013, 16:17  [ТС] 8
Цитата Сообщение от APALoff Посмотреть сообщение
А если попробовать описать массивы как a : Array[1..2] of Integer; ?
Так не описывают. Проверьте сами.
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.11.2013, 16:18 9
Написал же я как нужно в Турбо Паскале, чего еще гадать.
1
1646 / 1075 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
11.11.2013, 16:18 10
Цитата Сообщение от datafile4 Посмотреть сообщение
Так не описывают. Проверьте сами.
Зрастиприехали...
Посмотри пост выше моего - там Puporev именно так и описал.
0
35 / 35 / 3
Регистрация: 26.02.2013
Сообщений: 176
11.11.2013, 16:22  [ТС] 11
Зрастиприехали...
Посмотри пост выше моего - там Puporev именно так и описал.
Puporev описал массив как тип.( Что , кстати, сработало, спасибо). Я описывал, как вы сказали, не получается.
0
1646 / 1075 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
11.11.2013, 16:44 12
Цитата Сообщение от datafile4 Посмотреть сообщение
Puporev описал массив как тип.( Что , кстати, сработало, спасибо). Я описывал, как вы сказали, не получается.
Я не приводил полный код, а только идею. Конечно описание типов и переменных различаются синтаксически, но смысл остается в правилах описания, т.е. диапазоном на 2 элемента, а не на все множество integer.
Мой вариант тоже сработал бы, если описать массив в основном теле, а в процедуре обращаться к нему как глобальным переменным.
0
35 / 35 / 3
Регистрация: 26.02.2013
Сообщений: 176
11.11.2013, 16:47  [ТС] 13
Я не приводил полный код, а только идею. Конечно описание типов и переменных различаются синтаксически, но смысл остается в правилах описания, т.е. диапазоном на 2 элемента, а не на все множество integer.
Мой вариант тоже сработал бы, если описать массив в основном теле, а в процедуре обращаться к нему как глобальным переменным.
Я сначала так и сделал. Не сработало. Почему, не могу понять, но ни в Турбо, ни во Фри не работало.
0
1646 / 1075 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
11.11.2013, 16:49 14
Цитата Сообщение от datafile4 Посмотреть сообщение
Я сначала так и сделал. Не сработало. Почему, не могу понять, но ни в Турбо, ни во Фри не работало.
Примерно так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Var  a,r : Array[1..2] of Integer;
 
procedure sort;
var
   i:byte;
   t:integer;
begin
  if a[1]> a[2] then 
begin
  t:=a[1];
  a[1]:=a[2];
  a[2]:=t;
end;
for i:=1 to 2 do
r[i]:=a[i];
end;
 
Begin
{...}
End.
0
35 / 35 / 3
Регистрация: 26.02.2013
Сообщений: 176
11.11.2013, 16:51  [ТС] 15
Я сделал точно так-же. Не работало. Выдавало ошибку.
0
522 / 398 / 213
Регистрация: 28.07.2011
Сообщений: 2,212
11.11.2013, 16:58 16
вы в процедуру передавали массив..
без типа так делать нельзя
0
1646 / 1075 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
11.11.2013, 17:00 17
Цитата Сообщение от datafile4 Посмотреть сообщение
Я сделал точно так-же. Не работало. Выдавало ошибку.
Видимо не точно так же.
Может как раз потому что:
вы в процедуру передавали массив..
без типа так делать нельзя
0
11.11.2013, 17:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2013, 17:00
Помогаю со студенческими работами здесь

Процедура сортировки одномерного массива. Ошибка в инструкции на операторе IF . else
Есть процедура, которая должна сортировать одномерные массив по возрастанию модулей элементов....

Универсальная процедура для перестановки значений двух элементов матрицы
Я написал, но он повторяется, т.е. вот: procedure SwapEx(var x,y:extended); ...

Процедура должна определить сумму четных элементов одномерного массива с n целых элементов
Процедура должна определить сумму четных элементов одномерного массива с n целых элементов

Найти min элемент одномерного массива описав процедуры ввода элементов массива, процедура нахождения min элемента массива.
Можете глянуть две задачки на pascale ? 1)Определить сумму элементов, массива целых чисел...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru