Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Wassago
localhost
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
#1

Масивы "начало"

22.10.2009, 23:17. Просмотров 379. Ответов 6
Метки нет (Все метки)

Программа которая сортирует элементы в порядку возрастания:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses crt;
const n=4;
 a:array[1..n] of integer=(7,3,5,8);
var
 i,j,c:integer;
 
begin
ClrScr;
 
 for j:=1 to n-1 do
 for i:=1 to n-j do
  if a[i] > a[i+1] then
  begin
   c:=a[i];  a[i]:=a[i+1];  a[i+1]:=c;
    end;
 for i:=1 to n do
  WriteLn(a[i]);
 end.
Этот фрагмент :
Pascal
1
if a[i] > a[i+1] then
a[i] = 735737
a[i+1] = 358353

Почему?Как выполняется такое действие: i+1 ?
Объясните пожалуйста!

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2009, 23:17
Ответы с готовыми решениями:

Написать программу проверки правильности написания сочетаний "жи", "ши", "ча", "ща", "чу", "щу". Исправить ошибки
дан текст.написать программу проверки правильности написания сочетаний "жи",...

Решение заданий типа "Array","Matrix","String","File","Text"""
большая просьба помочь решить где-то около 35-40 (из 100) задач (мне не...

Переставить в нем все буквы "а" в начало, а буквы "я" – в конец.
Дан некоторый текст. Переставить в нем все буквы "а" в начало, а буквы "я" – в...

После каждого символа "О" вставлять пробел и подсчитывать количество букв "А" стоящих между буквами "К" и "Л"
После каждого символа "О" вставлять пробел и подсчитывать количество букв "А"...

Шахматы: охарактеризовать положение белых с помощью слов: "мат", "шах", "пат", "обыкновенная позиция"
у белых на доске остался только король , у черных - король, слон, конь....

6
Puporev
Модератор
54217 / 41850 / 28922
Регистрация: 18.05.2008
Сообщений: 98,517
22.10.2009, 23:20 #2
Что у Вас за мешанина из сортировок, понять нельзя. Напишите так
Pascal
1
2
3
4
5
6
for i:=1 to n-1 do
for j:=i+1 to n do
  if a[i] > a[j] then
  begin
   c:=a[i];  a[i]:=a[j];  a[j]:=c;
    end;
0
Wassago
localhost
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
22.10.2009, 23:23  [ТС] #3
Преподаватель так написал,вот и стараюсь понять
0
Puporev
Модератор
54217 / 41850 / 28922
Регистрация: 18.05.2008
Сообщений: 98,517
22.10.2009, 23:34 #4
У меня все нормально выдает 3 5 7 8

Добавлено через 1 минуту
a[i] = 735737
a[i+1] = 358353
А это что за числа? Ведь a[i],a[i+1] могут принимать значения 3 5 7 8
0
Wassago
localhost
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
22.10.2009, 23:39  [ТС] #5
Да,ваш вариант много лучше,но я стараюсь понять как оно работает.Если вам не трудно объясните пожалуйста:
Pascal
1
2
for i:=1 to n-1 do
for j:=i+1 to n do
почему именно так.

Добавлено через 2 минуты
Цитата Сообщение от Puporev Посмотреть сообщение
a[i] = 735737
a[i+1] = 358353
Это если:

Pascal
1
2
3
4
for j:=1 to n-1 do
 for i:=1 to n-j do
 
   WriteLn(a[i],' ',a[i+1]);
0
Puporev
Модератор
54217 / 41850 / 28922
Регистрация: 18.05.2008
Сообщений: 98,517
22.10.2009, 23:46 #6
Сравниваем поочередно элементы с первого до предпоследнего
for i:=1 to n-1 do
с элементами которые впереди и ищем первый меньше данного
for j:=i+1 to n do
, находим, меняем местами, переходим к следующему.
for j:=i+1 to n do
потому что сзади уже отсортированные элементы
Ваш массив
7,3,5,8
1.сравниваем первый элемент, меняем 7 и 3 3, 7, 5, 8
2. второй меняем 7 и 5 3, 5, 7, 8
больше обменов нет.
1
Wassago
localhost
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
22.10.2009, 23:53  [ТС] #7
ОоО!!Спасибо большое,я уже понял!Туплю просто...
0
22.10.2009, 23:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2009, 23:53

В заданной последовательности литер, состоящей из букв латинского алфавита и оканчивающейся точкой, определите общее число вхождений букв "a","e", "c", "h".
Немогу написать программу. В заданной последовательности литер, состоящей из...

Перестановка "-"элементов в массиве в начало
Дан массив M, нужно переместить первые k элементов этого массива в начало. То...

Процедуры. Нужно написать программу "Визитка", выводящую в начало распечатки результатов данные об авторе программы.
Нужно написать программу "Визитка", выводящую в начало распечатки результатов...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru