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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2008, 14:47   #1
Horknee
Пользователь
 
Регистрация: 21.09.2008
Сообщений: 70
По умолчанию Помогите, пожалуйста, реализовать.

В общем дан массив, состоящий из n членов. Надо удалить из этого массива те члены, порядковые номера которых кратны 4. Я пытался сделать вот так:
begin
for i:=1 to n do
begin
if (i mod 4)<>0 then
begin
dop[j]:=a[i];
j:=j+1;
end
else
begin
dop[j]:=a[i+1];
j:=j+1;
end.
Здесь dop это допольнительный массив, куда я скидываю члены.
Но когда я выполняю этот код-у меня получаеться так, например:
был массив 6 2 8 1 9 3
стал массив 6 2 8 9 9 3
а должен стать 6 2 8 9 3
Horknee вне форума Ответить с цитированием
Старый 26.10.2008, 15:04   #2
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

else лишний.
Вот что у меня получилось:

Код:
uses crt;
const n=20;
var
  i,j: integer;
  a,dop: array[1..n]of integer;
begin
  clrscr;
  j:=1;
  randomize;
  for i:=1 to n do
  begin
    a[i]:=random(50);
    write(a[i],' ');
  end;
  writeln();
  for i:=1 to n do
    if (i mod 4)<>0 then
    begin
      dop[j]:=a[i];
      j:=j+1;
    end;
  for i:=1 to j-1 do
    write(dop[i],' ');
  readln();
end.
Kostia вне форума Ответить с цитированием
Старый 26.10.2008, 15:43   #3
Horknee
Пользователь
 
Регистрация: 21.09.2008
Сообщений: 70
По умолчанию

Поясните пожалуйста строчки. Что значит clrscr; и
a[i]:=random(50);
??
Horknee вне форума Ответить с цитированием
Старый 26.10.2008, 15:54   #4
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

clrscr - очищает окно вывода
Randomize - генерирует таблицу случайных чисел
Random(x) - возвращает случайное целое в диапазоне от 0 до x-1
Kostia вне форума Ответить с цитированием
Старый 26.10.2008, 16:09   #5
Horknee
Пользователь
 
Регистрация: 21.09.2008
Сообщений: 70
По умолчанию

Спасибо. Поясните еще пожалуйста, как программа убирает члены, порядковые номера которых кратны 4?
for i:=1 to n do
if (i mod 4)<>0 then
begin
dop[j]:=a[i];
j:=j+1;
Вот эту часть кода я понял, здесь, как и у меня...а если условие выполняеться то что делает программа?
Еще в моей программе я сам задаю количество членов массива и сам прописываю значения каждого.

Последний раз редактировалось Horknee; 26.10.2008 в 16:13.
Horknee вне форума Ответить с цитированием
Старый 26.10.2008, 16:16   #6
Horknee
Пользователь
 
Регистрация: 21.09.2008
Сообщений: 70
По умолчанию

Вот, чтобы может проще было все задание и вся моя программа.
Задание:
Даны натуральное n, целые числа a1, …, an. Оставить без изменения данную последовательность, если она упорядочена по неубыванию или не возрастанию; в противном случае удалить из последовательности те члены, порядковые номера которых кратны четырем, сохранив прежним порядок оставленных членов.

Код программы:

program 1;
const m=65634;
var a:array[1..m] of integer;
dop:array[1..m] of integer;
i,j:integer;
n:integer;
k,b:integer;
f:integer;
begin
write('vvedite n=');
readln(n);
for i:=1 to n do
begin
write('a[',i,']= ');
readln(a[i]);
end;
j:=1;
k:=0;
b:=0;
f:=0;
for i:=1 to n-1 do
begin
if a[i]<=a[i+1] then k:=1 else k:=0;
if a[i]>=a[i+1] then b:=1 else b:=0;
end;
if (b=1) and (k=1) then
begin
for i:=1 to n do
writeln(a[i]);
end
else
begin
for i:=1 to n do
if (i mod 4)<>0 then
begin
dop[i]:=a[i];
j:=j+1;
end;
end;
for i:=1 to j-1 do
write(dop[i],'');
readln();
end.
Horknee вне форума Ответить с цитированием
Старый 26.10.2008, 16:21   #7
Horknee
Пользователь
 
Регистрация: 21.09.2008
Сообщений: 70
По умолчанию

Все, разобрался, все работает. спасибо!
Horknee вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите реализовать плейлист IGREK Общие вопросы Delphi 2 04.06.2008 09:08
Помогите реализовать ReacXX Общие вопросы Delphi 3 26.05.2008 08:56
Помогите реализовать VenMaster Общие вопросы Delphi 8 24.04.2008 23:45