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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2009, 14:34   #1
ene21
Пользователь
 
Регистрация: 02.09.2009
Сообщений: 11
По умолчанию Одномерный массив, паскаль.

Подскажите почему не работает програмка. Собственно условие в тексте. Идея выполнения такая. Берем одну две переменных, пробегаем по массиву, находим первый ноль - присваеваем первой переменной. Пробегаем от него опять по массиву до след. нуля и присваеваем его второй переменной, а потом выводим все что между ними.

Код:
program unit_6;
uses crt;
var
a:array [1..10] of integer;
i,n:integer;
nl1,nl2:integer;
begin
clrscr;
writeln('программа формирует новый массив, содержащий элементы');
writeln('исходного массива, расположенные между первым и вторым');
writeln('нулевыми элементами');
writeln;
writeln('Зададим максимальное число элементов исходного массива');
writeln;
repeat
write('максимальное число элементов равно  - ');
read(n);
 if (n<=1) or (n>10) then
  begin
   writeln('Ошибка. Число не более 10');
  end;
until (n>1) and (n<=10);
writeln('Заполним элементами массив');
writeln;
 for i:=1 to n do
  begin
   write('вводим''[',i,']''элемент массива, равный - ');
   read(a[i]);
  end;
 writeln;
 writeln('исходный массив');
 writeln;
  for i:=1 to n do
   write(a[i],' ');
  writeln;
  nl1:=0;
  nl2:=0;
   for i:=1 to n do
    begin
    if (a[i]=0) then
     begin
      nl1:=a[i];
     end;
    end;
      for i:=nl1+1 to n do
      begin
       if (a[i]=0) then
        begin
         nl2:=a[i];
        end;
        end;
       writeln('готовый массив');
       writeln;
        for i:=nl1 to nl2 do
         write(a[i],' ');
repeat
until keypressed;
end.

Последний раз редактировалось Stilet; 02.10.2009 в 15:30.
ene21 вне форума Ответить с цитированием
Старый 02.10.2009, 14:39   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,554
По умолчанию

Тут:
Код:
nl1:=a[i];
Надо присваивать не значение элемента массива, а его индекс.

А ещё, как только нашли нулевой элемент, надо прервать цикл, для чего есть команда break.
Arigato вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
паскаль!одномерный массив игорек фролоff Помощь студентам 1 30.05.2009 18:28
Одномерный и двумерный массив [Паскаль] Ximer Помощь студентам 6 15.05.2009 16:15
Паскаль. Одномерный массив deceiver Помощь студентам 7 21.03.2009 15:12
ПАСКАЛЬ, одномерный массив (Kate) Помощь студентам 2 23.11.2008 15:06
Паскаль.Сформировать одномерный массив А из элементов матрицы, кратных трём ICEART Помощь студентам 2 03.10.2007 17:29