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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2012, 21:27   #1
Камаванай
Новичок
Джуниор
 
Регистрация: 03.06.2012
Сообщений: 5
Печаль Работа с числовыми и символьными массивами.

Информатики толком не было целый год. Уволилось два препода. Теперь ведет зав. кафедрой. Дрючит. Но вошла в положение и дала две лабораторки. Первую написал с горем на попалам на поератор if, а вот с массивами полный каюк Помогите пожалуйста


Имеется одномерный массив А, состоящий из N произвольных чисел (А(N)), среди которых есть положительные отрицательные и равные нулю. Напечатать только те числа из массива, которые образуют растущую последовательность.
Камаванай вне форума Ответить с цитированием
Старый 03.06.2012, 21:43   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

вроде так
Код:
i:=1;
while i<n do begin
while (a[i]<a[i+1]) and (i<=n) do
begin
Writeln(a[i]);
inc(i);
end;
inc(i);
end;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 03.06.2012, 23:10   #3
Камаванай
Новичок
Джуниор
 
Регистрация: 03.06.2012
Сообщений: 5
По умолчанию

Спасибо большое, что ответили! но я настолько нуб, что после слова Program по массивам я вообще не имею понятия, что писать
Камаванай вне форума Ответить с цитированием
Старый 03.06.2012, 23:40   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

предлагаю так
Если последовательностей несколько
Код:
uses
  crt;
var
  a: array of integer;
  count: integer;
  i: integer;
begin
  clrscr;
  WriteLn('Count of number:');
  ReadLn(count);
  SetLength(a, count);
  Writeln('OutPut:');
  Write(a[0], ' ');
  for i := 1 to (count-1) do
    if a[i] > a[i-1] then Write(a[i], ' ')
    else begin
      WriteLn;
      Write(a[i], ' ');
    end;
  WriteLn;
  ReadKEy;  
end.
пример
Код:
ввели
1 2 3 4 5 1 2 5 4 1 2
выведет
1 2 3 4 5
1 2 5
4
1 2
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 04.06.2012, 00:12   #5
Камаванай
Новичок
Джуниор
 
Регистрация: 03.06.2012
Сообщений: 5
По умолчанию

Спасибо большое! Выручили! Мир стал чуточку добрее
Камаванай вне форума Ответить с цитированием
Старый 04.06.2012, 21:21   #6
Камаванай
Новичок
Джуниор
 
Регистрация: 03.06.2012
Сообщений: 5
По умолчанию

Аааа, полный каюк Пришел написал, не работает и ладно бы только это! информатичка сказала, что вообще не знает такие команды типа count. Достопочтенные, прошу пожалуйста написать прогу по паскалю.
Камаванай вне форума Ответить с цитированием
Старый 04.06.2012, 21:28   #7
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

А где Вы увидели такую команду?
s-andriano вне форума Ответить с цитированием
Старый 04.06.2012, 21:29   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Во-первых, вы должны были разобраться в написанном и убедить преподавателя, что count, не команда, а переменная.
Во-вторых, Hacker19_90 упорно использует динамические массивы, которых нет в Турбо Паскале. Соответственно, программа не работает.
В-третьих, исправленный вариант:
Код:
uses
  crt;

const
  n = 100;

var
  a: array[1..n] of integer;
  count: integer;
  i: integer;

begin
  clrscr;
  WriteLn('Count of number:');
  repeat
    ReadLn(count);
  until (count <= n) and (count > 0);
  for i := 1 to count do
  begin
    write('a[', i, ']: ');
    readln(a[i]);
  end;
  Writeln('Output:');
  Write(a[1], ' ');
  for i := 2 to count do
    if a[i] > a[i - 1] then Write(a[i], ' ')
    else begin
      WriteLn;
      Write(a[i], ' ');
    end;
  WriteLn;
  ReadKEy;  
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 04.06.2012 в 21:31.
BDA вне форума Ответить с цитированием
Старый 05.06.2012, 21:23   #9
Камаванай
Новичок
Джуниор
 
Регистрация: 03.06.2012
Сообщений: 5
По умолчанию

Мне тут написали попроще и понятнее для моего уровня знаний, вот: http://cs405031.userapi.com/v4050316...pmonqtRc-A.jpg (этот вариант уже проверен)
Честно говоря я многое из того, что вы написали вижу впервые. Помогите пожалуйста нарисовать блок-схему к ней.
Камаванай вне форума Ответить с цитированием
Старый 05.06.2012, 21:35   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Да, предложенный выше вариант сложнее приведенного вами, но не намного.
Для рисования блок-схем отлично подойдет FCEditor (есть на рутрекере).

Кстати, ваш вариант (на фото) мне не понравился. Он будет очень странно работать на таких входных данных:
4 7 3 6 1 2
Напечатает программа следующее:
4 3 1
Да еще и вылезет за пределы массива.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с символьными массивами на С Valdemar4ik Общие вопросы C/C++ 3 22.02.2012 15:39
Работа с символьными строками drinkyahoo C++ Builder 3 22.01.2012 01:42
работа символьными данными Сайын Помощь студентам 7 05.05.2011 08:19
Работа с числовыми и символьными массивами sssnake13 Паскаль, Turbo Pascal, PascalABC.NET 7 22.04.2010 11:06
Pascal.работа с символьными массивами и строками Иришка1989 Помощь студентам 3 19.01.2010 01:05