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

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

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

 
 Ответить  Открыть новую тему 
> Помогите с задачей с циклом For i:=N downto 1 do, вроде легкая задачка)
Lutan
сообщение 16.01.2008 19:00
Сообщение #1


Гость






Элементы заданного массива B(N) переписать в новый массив A(N) в обратном порядке
 К началу страницы 
+ Ответить 
klem4
сообщение 16.01.2008 19:07
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Твоих попыток что-то не видно ... с чем проблемы ? С вводом массива ? Алгоритм практически весь в заголовке твоей темы написан.

Массивы. Матрицы. Типичные задачи.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 16.01.2008 19:13
Сообщение #3


Гость






ну т.е.
сначала раписал массив как B(n) как For i:=1 to N do
потом A(n) как For i:=N downto 1 do B[i]:=A[N-i+1]
но что-т не получается задача)
 К началу страницы 
+ Ответить 
klem4
сообщение 16.01.2008 19:20
Сообщение #4


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


вводишь массив A, а потом
for i := n downto 1 do
b[i] := a[n - i + 1];


все верно ... показывай весь код


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 16.01.2008 19:32
Сообщение #5


Гость






Ничего не понял... Что вводится, а что надо заполнить? Вводится B, заполняется A? Тогда
for i := n downto 1 do
a[i] := b[n - i + 1];

 К началу страницы 
+ Ответить 
Гость
сообщение 16.01.2008 19:33
Сообщение #6


Гость







type mas=array [1..20] of real;
var
A, B: mas;
i,N: integer;
begin
write('Vvedite N');
readln(N);
for i:=1 to N do begin
Write('A[',i,']=');
readln(A[i]);
end;
for i:=N to 1 do B[i]:=A[N-i+1];
writeln;
writeln(A[i],'');
readln
end.

 К началу страницы 
+ Ответить 
Гость
сообщение 16.01.2008 23:41
Сообщение #7


Гость






посидел над программкой.
вот что в итоге получилось:

var
I, N: integer;
A,B:array [1..50] of integer;
begin
Write('Vvedite kol-vo 4isel v massive, N=');
Readln(N);
for i:=1 to n do
begin
write('Vvedite A[',i,']=');
readln(A[i]);
end;
for i:=n downto 1 do A[N-i+1]:=B[i];
write(B[i],' ');
readln;
end.

но ответ выводит не тот, который нужен. выводит всего 0, а не массив в обратном порядке. если же рассматривать задачу с одним массивом, то всё отлично работает:
var
I, N: integer;
A:array [1..50] of integer;
begin
Write('Vvedite kol-vo 4isel v massive, N=');
Readln(N);
for i:=1 to n do
begin
write('Vvedite A[',i,']=');
readln(A[i]);
end;
for i:=n downto 1 do
write(A[i],' ');
readln;
end.



кто-нибудь может помочь?)) плз)
 К началу страницы 
+ Ответить 
Айра
сообщение 17.01.2008 0:21
Сообщение #8


Профи
****

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

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


Цитата
но ответ выводит не тот, который нужен. выводит всего 0

Естесственно, смотри:

readln(A[i]); //ты заполняешь массив А, хотя по заданию надо В..
end;
for i:=n downto 1 do A[N-i+1]:=B[i]; //а тут ты ему же присваиваешь значения из массива В,
//который пока что состоит из нулей
write(B[i],' '); //и выводишь ты в не цикла (begin\end вроде еще не отменяли)))


Должно быть так:
var
i, n: integer;
A,B:array [1..50] of integer;
begin
Write('Vvedite kol-vo 4isel v massive, N=');
Readln(n);
for i:=1 to n do
begin
write('Vvedite B[',i,']=');
readln(B[i]); //заполняешь массив _В_
end;
for i:=n downto 1 do
begin
A[n-i+1]:=B[i];
write(A[n-i+1],' '); //и выводить нужно с таким индексом, иначе, при A[i] ты выводишь
// элементы, которые еще не заполнены, то бишь нули
end;
readln;
end.


Сообщение отредактировано: Айра - 17.01.2008 0:28
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 17.01.2008 10:51
Сообщение #9


Гость






оо)
огромное спасибо)
 К началу страницы 
+ Ответить 
Гость
сообщение 26.01.2008 23:47
Сообщение #10


Гость






Цитата(Lutan @ 16.01.2008 19:00) *

Элементы заданного массива B(N) переписать в новый массив A(N) в обратном порядке

Я решил эту задачу так решил...вроде работало...посмотри....

program Demo;
uses
crt;
var
a,b:array [1..10] of integer;
i:integer;
begin
clrscr;
writeln('a[i]>');
for i:=1 to 10 do
readln(a[i]);
for i:=10 downto 1 do
begin
b[i]:=a[10-i+1];
writeln('b[i]',b[i]);
end;
readln;
end.


 К началу страницы 
+ Ответить 
Гость
сообщение 26.01.2008 23:49
Сообщение #11


Гость






[quote name='Гость' date='26.01.2008 23:47' post='119317']
Я решил эту задачу так решил...вроде работало...посмотри....

program Demo;
uses
crt;
var
a,b:array [1..10] of integer;
i:integer;
begin
clrscr;
writeln('a[i]>');
for i:=1 to 10 do
readln(a[i]);
for i:=10 downto 1 do
begin
b[i]:=a[i];
writeln('b[i]',b[i]);
end;
readln;
end.


 К началу страницы 
+ Ответить 
Yevgeny
сообщение 27.01.2008 0:12
Сообщение #12


The matrix has me!!!
**

Группа: Пользователи
Сообщений: 74
Пол: Мужской
Реальное имя: Евгений

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


[quote][quote name='Гость' date='26.01.2008 23:47' post='119317']
Я решил эту задачу так решил...вроде работало...посмотри....

program Demo;
uses
crt;
var
a,b:array [1..10] of integer;
i:integer;
begin
clrscr;
writeln('a[i]>');
for i:=1 to 10 do
readln(a[i]);
for i:=10 downto 1 do
begin
b[i]:=a[i];
writeln('b[i]',b[i]);
end;
readln;
end.
[/quote]

Бред, бред, бред... blum.gif


--------------------
"Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 27.01.2008 11:41
Сообщение #13


Профи
****

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

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


for i:=10 downto 1 do
begin
b[i]:=a[10-i+1]; //присваивание правильное
writeln('b[i]',b[i]); //а вывод нет.. у тебя массив В выводится с конца, а тогда похоже,
//что заполнен он не правильно
end;


for i:=10 downto 1 do
begin
b[i]:=a[i]; //а здесь ты заполняешь его неправильно.. он получается такой же как А
writeln('b[i]',b[i]); //а на выводе "обманываешься"))
end;

сделай в обоих вариантах вывод массива В "вне" цикла с присваиванием и посмотри, где правильно, а где нет..
и еще.. если тебе нужно видеть номер выводимого элемента, а не красивую буковку i smile.gif, то надо делать так
writeln('b[',i,']',b[i]); //тогда и ошибки увидишь


Сообщение отредактировано: Айра - 27.01.2008 11:43
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 27.01.2008 14:26
Сообщение #14


Гость






А вот теперь точно правильно...Спасибо за комментарии..я понял свои ошибки...

uses
crt;
var
a,b:array [1..10] of byte;
i:integer;
begin
clrscr;
write('b[i]>');
for i:=1 to 10 do
readln(b[i]);
for i:=10 downto 1 do
begin
a[10-i+1]:=b[i];
end;
for i:=1 to 10 do
writeln(a[i]);
readln;
end.

 К началу страницы 
+ Ответить 

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

 



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