![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Студент*21в. |
![]() ![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Всем привет!
Дана программка, которая выполняет сдвиг элементов массива на одну поз. вправо program sdvig; как сделать так, чтобы первый элемент массива не равнялся нулю, а наследовал значения последнего элемента введенного с клавиатуры? |
![]() ![]() |
TarasBer |
![]()
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
tmp := x[n]; -------------------- |
Студент*21в. |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Спасибо! А "tmp" это новая переменная? Тогда ее наверно надо указать в разделе описания переменных?
|
TarasBer |
![]()
Сообщение
#4
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Очевидно, да.
-------------------- |
Студент*21в. |
![]()
Сообщение
#5
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
понятно) я решил так:
program sdvig; ну наверно это одно и то же) А вот хотелось бы как-нибудь без дополнительных переменных( |
TarasBer |
![]()
Сообщение
#6
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
> А вот хотелось бы как-нибудь без дополнительных переменных(
Можно, но бессмысленно, будет больше операций и меньше логичности. Для двух переменных целого типа обмен без доп. переменной делается так: Код x := x xor y; y := x xor y; x := x xor y; Вариант 2 (для переменных целого и вещественного типа, для вещественного возможна потеря точности): Код x := x + y; y := x - y; x := x - y; Но эти способы плохи тем, что неправильно работают, если переменные x и y расположены по одному адресу. Это существенно, когда их пытаются запихать в подпрограмму с передачей параметров по ссылке. Ещё можно перекинуть через регистры. Для n переменных - обменять x[n] и x[n-1], потом обменять x[n-1] и x[n-2] итд... -------------------- |
Студент*21в. |
![]()
Сообщение
#7
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Спасибо! Буду вникать.
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 10:37 |