Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Petro29
8 / 8 / 3
Регистрация: 30.04.2016
Сообщений: 303
#1

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

24.09.2017, 11:33. Просмотров 108. Ответов 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):

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

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

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

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

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

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

2
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
3755 / 2452 / 2034
Регистрация: 22.11.2013
Сообщений: 6,821
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
1912 / 1020 / 1543
Регистрация: 10.12.2014
Сообщений: 3,774
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
Привет! Вот еще темы с решениями:

Для заданных с клавиатуры значений переменных X и N вычислить
Y = n! = 1. 2 . 3 ... n Пожалуйста помогите, уже не первый час голову ломаю,...

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

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

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


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

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

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