Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2013, 21:35   #1
Andrew5674
Пользователь
 
Регистрация: 16.04.2013
Сообщений: 19
По умолчанию Массивы. Pascal

Задание 1
Объявить массив размерностью N.
Заполнить элементы массива.
Распечатать значения элементов массива.
Вывести значения в обратном порядке.
Вывести значения элементов с четными индексами

Пожалуйста помогите!
Andrew5674 вне форума Ответить с цитированием
Старый 30.05.2013, 21:43   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Что именно вызывает затруднения?
s-andriano вне форума Ответить с цитированием
Старый 30.05.2013, 21:55   #3
Andrew5674
Пользователь
 
Регистрация: 16.04.2013
Сообщений: 19
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Что именно вызывает затруднения?
Вывести значения элементов с четными индексами
Andrew5674 вне форума Ответить с цитированием
Старый 30.05.2013, 22:04   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

А в чем может быть проблема? Не знаете как определить четно ли число? Или как вывести не знаете? А может Вы о развилках не слышали?

Ну раз проблема только с этим, то ждем-с остальные решенные части, только после них (возможно) будут предприняты некоторые телодвижения со стороны форумчан..
Poma][a вне форума Ответить с цитированием
Старый 30.05.2013, 22:11   #5
Andrew5674
Пользователь
 
Регистрация: 16.04.2013
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
А в чем может быть проблема? Не знаете как определить четно ли число? Или как вывести не знаете? А может Вы о развилках не слышали?

Ну раз проблема только с этим, то ждем-с остальные решенные части, только после них (возможно) будут предприняты некоторые телодвижения со стороны форумчан..
Код:
uses crt;
const nmax=100;
type mas=array[1..nmax] of real;
procedure Revers(var m:mas;n:byte);
var i:byte;
    x:real;
begin
for i:=1 to n div 2 do
 begin
  x:=m[i];
  m[i]:=m[n-i+1];
  m[n-i+1]:=x;
 end;
writeln('Массив в обратном порядке:');
for i:=1 to n do
write(m[i]:0:2,' ');
readln
end;
var a:mas;
    n,i:byte;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=10*random;
  write(a[i]:0:2,' ');
 end;
writeln;
writeln;
Revers(a,n);
end.
Andrew5674 вне форума Ответить с цитированием
Старый 30.05.2013, 22:16   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
i:=2; while i<=n do begin
  write(a[i]:0:2,' ');
  inc(i,2);
 end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.05.2013, 22:22   #7
Andrew5674
Пользователь
 
Регистрация: 16.04.2013
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
i:=2; while i<=n do begin
  write(a[i]:0:2,' ');
  inc(i,2);
 end;
В каком месте программы это нужно вставить?
Andrew5674 вне форума Ответить с цитированием
Старый 31.05.2013, 07:40   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
i:=2; while i<=n do begin
  write(a[i]:0:2,' ');
  inc(i,2);
 end;
В случае, когда число шагов заранее известно, целесообразнее применять цикл for:
Код:
for i := 2 to n div 2 do
  write(a[i*2]:0:2,' ');
Andrew5674, вместо
Код:
procedure Revers(var m:mas;n:byte);
var i:byte;
    x:real;
begin
for i:=1 to n div 2 do
 begin
  x:=m[i];
  m[i]:=m[n-i+1];
  m[n-i+1]:=x;
 end;
writeln('Массив в обратном порядке:');
for i:=1 to n do
write(m[i]:0:2,' ');
readln
end;
лучше поступить так:
Код:
procedure Revers(var m:mas;n:byte);
var i:byte;
begin
  writeln('Массив в обратном порядке:');
  for i:=n downto 1 do
    write(m[i]:0:2,' ');
end;
Заодно не будет проблем на последнем шаге:
Вас ведь просят вывести в обратном порядке, а не перевернуть сам массив. И по условию подразумевается, что выводить четные нужно в исходном порядке, а не в обратном. А если количество элементов нечетно, то вообще будут выведены не те элементы, что нужно.

Последний раз редактировалось s-andriano; 31.05.2013 в 07:49.
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal: Массивы, подпрограммы, текст на языке Pascal WarriorCow Помощь студентам 4 22.02.2012 15:28
Pascal Массивы GamBitFRK Помощь студентам 2 22.12.2011 00:00
Массивы (pascal) Стасссс Помощь студентам 9 20.02.2010 17:14
Pascal: массивы Juventus91 Помощь студентам 2 06.09.2009 14:21
Pascal/Массивы ромка) Паскаль, Turbo Pascal, PascalABC.NET 6 14.06.2008 18:29