Форум программистов, компьютерный форум, киберфорум
Наши страницы

Turbo Pascal

Войти
Регистрация
Восстановить пароль
 
Petro29
8 / 8 / 0
Регистрация: 30.04.2016
Сообщений: 230
#1

Программа перестановки переменных местами заданных способом присваивания - Turbo Pascal

24.09.2017, 11:33. Просмотров 82. Ответов 2
Метки нет (Все метки)

Программа перестановки переменных местами
заданных способом присваивания.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
uses Crt;
Var a, b, P: integer;
begin
ClrScr;
    a:= 7;   b:= 10;
write('   ', a , '       ' , b );
    writeln;
    P:= a;  
    a:= b;
     b:= P;
  write('   ' , a , '      ' b);
  readln
end.
На выходе имеем:
Pascal
1
2
  7       10
            10       7
Здесь всё в порядке.
А вот в элементарном массиве из двух элементов перестановка не получается. Почему?
Вот эта программа:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
uses Crt;
Var a: array{1..2] of integer;
           i, P: integer;
begin
ClrScr;
write(' Исходный массив:');
      writeln;
   for i:= 1 to 2 do begin
      a[i]:= -50 + Random(101);
       write(a[i]:4);
    end;
{Перестановка эл-ов массива}
     for i:= 1 to 2 do begin
           P:= a[1];
           a[1]:= a[2];
            a[2]:= P;
         write(a[i]:4);
       end;
   readln
end.
На выходе имеем:
Pascal
1
2
            -50       -47
            -47       -47
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2017, 11:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа перестановки переменных местами заданных способом присваивания (Turbo Pascal):

Ввод и вывод данных, оператор присваивания. Поменять местами содержимое переменных А и В - Turbo Pascal
поменять местами содержимое переменных А и В и вывести новые значения А иВ

Написать программу, для операторов присваивания, которые меняют местами значения переменных x и y - Turbo Pascal
6.Написать программу, для операторов присваивания, которые меняют местами значения переменных x и y.

Напечатать все перестановки заданных n чисел - Pascal
Объясните пожалуйста, как работает эта программа? В частности, процедура rec? Условие: напечатать все перестановки заданных n чисел. ...

В предложенной программе подчеркните все операторы присваивания и восстановите описания типов переменных - Pascal
привет. нужна помощь с задачкой на Паскале: В предложенной программе подчеркните все операторы присваивания и восстановите описания...

Вывести все возможные перестановки N заданных цифр, формируя при этом последовательность из K цифр - Pascal
Дана задача: Вывести все возможные перестановки N заданных цифр формируя при этом последовательность из K цифр. Начиная с заданной...

Составить программу для перестановки местами в линейной таблице меньшего и большего элементов - Turbo Pascal
Помогите пожалуйста написать программу. Заранее спасибо. Условие: Составить программу для перестановки местами в линейной...

2
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
3601 / 2298 / 1196
Регистрация: 22.11.2013
Сообщений: 6,114
24.09.2017, 12:05 #2
Цитата Сообщение от Petro29 Посмотреть сообщение
Почему?
Вы четное число раз (дважды) поменяли первый элемент со вторым. Разве что-то должно было измениться в результате?

Добавлено через 2 минуты
Pascal
13
14
  t:=a[1]; a[1]:=a[2]; a[2]:=t;
  for i:=1 to 2 do Write(a[i]:4); WriteLn;
0
JuriiMW
Эксперт Pascal/Delphi
1563 / 844 / 699
Регистрация: 10.12.2014
Сообщений: 2,997
25.09.2017, 07:31 #3
Может bormant немного непонятно объяснил.
Попробую объяснить я:

В цикле строки 14…19 вы делаете обмен указанных элементов массива и вывод значений массива.
К примеру, пусть значения элементов массива будут 1 и 2.
Тогда, перед началом цикла состояние массива:
Код
a: 1 2
Начинается цикл и в строках 15…17 происходит обмен a[1]«—»a[2].
И как результат:
Код
a: 2 1
А в строке 18 программа выводит значение a[1] = 2.
Следующий шаг цикла снова приводит к обмену a[1]«—»a[2].
Т.е.
Код
a: 1 2
Но теперь программа должна вывести a[2] которое в данном состоянии массива равна опять 2.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2017, 07:31
Привет! Вот еще темы с ответами:

Для заданных с клавиатуры значений переменных вычислить - Pascal
Для заданных с клавиатуры значений переменных вычислить Я здесь незнаю как записать произведение

Для заданных с клавиатуры значений переменных x и n вычислить значение выражения - Pascal
Помогите с решением задачи. Для заданных с клавиатуры значений переменных x и n вычислить

Для заданных с клавиатуры значений переменных x и n вычислить значение выражения - Pascal
Помогите с решением задачи. Для заданных с клавиатуры значений переменных x и n вычислить Z = 2*4*6*8* ... *20.

Вычислить значение выражения при всех конкретно заданных значениях переменных - Turbo Pascal
B задание "а" выделить постоянную часть и вычислить ее в константном выражении до выполнения программы; вычислить значение выражения при...


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

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

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