Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 7

Записать алгоритм, меняющий последовательно местами значения элементов X(k) и Y(k) , не используя промежуточных переменных

27.02.2012, 21:28. Показов 2053. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. не сочтите за труд помогите пожалуйста разобраться с задачей:
Дан массив X(100) и Y(100). Записать алгоритм, меняющий последовательно местами значения элементов X(k) и Y(k) для этих таблиц, для k=1,2…100, не используя промежуточных переменных. Прогу надо написать на Pascal-е у меня мозг вскипает не могу разобраться что куда и как. Помогите пожалуйста. Очень срочно!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.02.2012, 21:28
Ответы с готовыми решениями:

Записать алгоритм, меняющий последовательно местами значения элементов С++
Дан массив X(100) и Y(100). Записать алгоритм, меняющий последовательно местами значения элементов X(k) и Y(k) для этих таблиц, для...

Поменять местами значения целых переменных х и у не используя дополнительных переменных
Знаю, что это очень простая задача, но никак не могу сделать, пожалуйста помогите!!! Поменять местами значения целых переменных х и у не...

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

8
Почетный модератор
 Аватар для Puporev
64316 / 47612 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
27.02.2012, 21:41
Pascal
1
2
3
4
5
6
for i:=1 to n do
 begin
   y[i]:=x[i]+y[i];
   x[i]:=y[i]-x[i];
   y[i]:=y[i]-x[i];
 end;
Добавлено через 2 минуты
Или так.
Pascal
1
2
3
x[i] := x[i] xor y[i];
y[i] := x[i] xor y[i];
x[i] := x[i] xor y[i];
0
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 7
27.02.2012, 21:56  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Pascal
1
2
3
4
5
6
for i:=1 to n do
 begin
   y[i]:=x[i]+y[i];
   x[i]:=y[i]-x[i];
   y[i]:=y[i]-x[i];
 end;
Добавлено через 2 минуты
Или так.
Pascal
1
2
3
x[i] := x[i] xor y[i];
y[i] := x[i] xor y[i];
x[i] := x[i] xor y[i];
Т.е. меняем столбцы и строки местами чтоли? я ни как въехать не могу?!
0
Почетный модератор
 Аватар для Puporev
64316 / 47612 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
27.02.2012, 21:58
Написано же в условии, меняем значения элементов массивов X,Y.
В массиве Х будут элементы массива Y и наоборот.
1
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 7
27.02.2012, 22:09  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Написано же в условии, меняем значения элементов массивов X,Y.
В массиве Х будут элементы массива Y и наоборот.
Едрить, калатить, так это 2а разных массива получается. Я-то понял что это один двумерный массив где х это допустим строки а у - столбцы.

Значит сначало write (x(100));
read (x(100);
соответственно и у
затем цикл замены с выводом на экран.
????
0
Почетный модератор
 Аватар для Puporev
64316 / 47612 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
27.02.2012, 22:25
Естественно, создаешь 2 массива, выводишь их, потом обмениваешь и снова выводишь.
1
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 7
28.02.2012, 22:58  [ТС]
посмотрите, пожалуйста листиинг проги, не компилирует ссылается на end, может свежим взглядом будет проще
program masXiY

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Var 
X: array [1..100] of integer;
k : byte ; {переменная k вводится как индекс массива}
Begin
randomize;
For k :=1 to 100 do
X[k]:= random (1000); { k -му элементу массива присваивается "случайное" целое число в диапазоне от 0 до 1000}
Write (X[k], ' '); {вывод массива осуществляется в строку, после каждого элемента печатается пробел}
end.
readln;
Y: array [1..100] of integer;
k: byte; {переменная k вводится как индекс массива}
Begin
randomize;
For k :=1 to 100 do
Y[k]:= random (1000); { k -му элементу массива присваивается "случайное" целое число в диапазоне от 0 до 1000}
Write (Y[k], ' '); {вывод массива осуществляется в строку, после каждого элемента печатается пробел}
end;
readln;
begin
for k:=1 to 100 do
 begin
   y[k]:=x[k]+y[k];
   x[k]:=y[k]-x[k];
   y[k]:=y[k]-x[k];
 end;
Write ( x [ k ],' '); {вывод массива осуществляется в строку, после каждого элемента печатается пробел}
readln;
Write ( y [ k ],' '); {вывод массива осуществляется в строку, после каждого элемента печатается пробел}
readln;
end;
 
end.
0
 Аватар для [WRG]
53 / 53 / 37
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
28.02.2012, 23:31
батенька, переменные объявляются в соответствующем разделе, а не посреди программы как это делаете вы.
после первого же end'а у вас стоит точка, следовательно все что за этой точкой компилятор просто отбрасывает.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
program masXiY;
 
 Var
 X,Y: array [1..100] of integer;
 k : byte ; {переменная k вводится как индекс массива}
 Begin
   randomize;
   writeln('Массив X: ');
   For k :=1 to 100 do
     begin
       X[k]:= random (1000); { k -му элементу массива присваивается "случайное" целое число в диапазоне от 0 до 1000}
       Write (X[k], ' '); {вывод массива осуществляется в строку, после каждого элемента печатается пробел}
     end;
   writeln;
   writeln;
   writeln('Массив Y: ');
   For k :=1 to 100 do
     begin
       Y[k]:= random (1000); { k -му элементу массива присваивается "случайное" целое число в диапазоне от 0 до 1000}
       Write (Y[k], ' '); {вывод массива осуществляется в строку, после каждого элемента печатается пробел}
     end;
   for k:=1 to 100 do
     begin
       y[k]:=x[k]+y[k];
       x[k]:=y[k]-x[k];
       y[k]:=y[k]-x[k];
     end;
   writeln;
   writeln('---------------------Новые массивы-----------------');
   writeln('Массив X: ');
   for k:=1 to 100 do
     Write (x[k],' '); {вывод массива осуществляется в строку, после каждого элемента печатается пробел}
   writeln;
   writeln;
   writeln('Массив Y: ');
   for k:=1 to 100 do
     Write (y[k],' '); {вывод массива осуществляется в строку, после каждого элемента печатается пробел}
 readln;
 end
привыкай красиво форматировать код, тебе же потом легче читать будет
0
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 7
28.02.2012, 23:48  [ТС]
Пасибки, будем учиться и исправляться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.02.2012, 23:48
Помогаю со студенческими работами здесь

Поменять местами значения целых переменных А и В, не используя дополнительные переменные
Задача 9. Поменять местами значения целых пере¬менных А и В, не используя дополнительные переменные. Задача 39. Во введенной строке...

Поменять местами значения целых переменных x и y, не используя дополнительные переменные
Поменять местами значения целых переменных x и y, не используя дополнительные переменные.

Поменять местами значения целых переменных х и у, не используя дополнительные переменные
Поменять местами значения целых переменных х и у, не используя дополнительные переменные. Сделать в Windows Form Application помогите...

Поменять местами значения целых переменных х и у, не используя дополнительные переменные
Ребят, срочно нужна помощь. Нужно сделать программу в windows forms. Нужно использовать 2 textbox и 1 button. Чтобы при нажатии на button...

Поменять местами значения двух переменных, используя один указатель
Это вообще реально? С двумя указателями вот так, с вероятностью ошибки т. к. засылаем на неизвестный адрес. #include...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru