IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача, Вывод массива вещественных чисел
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 31
Пол: Мужской

Репутация: -  0  +


Программа: вводится массив. нужно циклически сдвинуть его на 2 позиции влево.
Проблема: через random вещественные числа вводятся как-то непонятно(как сделать так, чтобы массив сначала выводился как есть в строку, а потом сдвинутый на другой строке?) Хелп

program pila;
uses crt;
const
n=10;
var
x:array[1..n] of real;
i:integer;
begin
clrscr;
randomize;
for i:=1 to n do begin
x[i]:=random(100)-50;
write(x[i]:6:2);
end;
writeln;
for i:=1 to n-2 do begin
x[i]:=x[i+2];
write(x[i]:6:2);
end;
readkey;
end.



Проблема в этой строке:

x[i]:=random(100)-50;
write(x[i]:6:2);



P.S. Массив обязательно вещественный(может его не через random задавать? тогда как сделать так чтобы элементы печатались в одну строку,а не на следующей?)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Цитата
вводится массив. нужно циклически сдвинуть его на 2 позиции влево.

Ты задачу не понял. Нужно не напечатать, а сдвинуть элементы массива.
Было
1 2 3 4 5 6
Стало
5 6 1 2 3 4
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 31
Пол: Мужской

Репутация: -  0  +


Цитата(Ozzя @ 8.12.2007 12:38) *

Ты задачу не понял. Нужно не напечатать, а сдвинуть элементы массива.
Было
1 2 3 4 5 6
Стало
5 6 1 2 3 4

Нет
Было
1 2 3 4 5 6
Стало
3 4 5 6

Именно так, я у препода спрашивал
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


А влево lol.gif
Виноват.
Тогда так
Было
1 2 3 4 5 6
Стало
3 4 5 6 1 2

Циклически означает, что элементы, выходящие за пределы границ, передвигаются в начало (конец) последовательности.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 31
Пол: Мужской

Репутация: -  0  +


А как тогда так сделать, как ты говоришь?Как код будет выглядеть?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Циклический сдвиг
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 31
Пол: Мужской

Репутация: -  0  +



program gremmi;
uses crt;
const
n=10;
m=2;
var
x:array[1..n] of integer;
y:array[1..n] of integer;
i:integer;
begin
clrscr;
randomize;
for i:=1 to n do begin
x[i]:=random(100);
write(x[i],' ');
end;
writeln;
for i:=1 to m do
y[i]:=x[n-m+i];
for i:=n-m downto 1 do
x[i+m]:=x[i];
for i:=1 to m do
x[i]:=y[i];
for i:=1 to n do
write(x[i],' ');
readln;
end.



Вот примерно так, только двигает не на 2 влево, а вправо.Как сделать влево?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 3:49
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name