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

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

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

 
 Ответить  Открыть новую тему 
> Задача, Вывод массива вещественных чисел
TORETO
сообщение 8.12.2007 12:34
Сообщение #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 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 8.12.2007 12:38
Сообщение #2


Гуру
*****

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

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


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

Ты задачу не понял. Нужно не напечатать, а сдвинуть элементы массива.
Было
1 2 3 4 5 6
Стало
5 6 1 2 3 4
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TORETO
сообщение 8.12.2007 13:01
Сообщение #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 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 8.12.2007 13:10
Сообщение #4


Гуру
*****

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

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


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

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


Новичок
*

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

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


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


Гуру
*****

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

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


Циклический сдвиг
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TORETO
сообщение 11.12.2007 18:04
Сообщение #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

 



- Текстовая версия 20.07.2025 14:20
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"