Об игре
Новости
Войти
Регистрация
Рейтинг
Форум
0:34
2327
 online
Требуется авторизация
Вы не авторизованы
   Форумы-->Форум для внеигровых тем-->

АвторPascal, работа с массивом
решил на всякий пожарный освежить свои знания по информатике перед экзаменом. Оказалось, не зря. Задача простая донельзя - дана последовательность из n элементов. Необходимо вывести эту последовательность в обратном порядке. В input.txt даны две строки: в первой - число n, натуральное, <=10^3; во второй - n элементов, целые, <=|10^3|. Вот программа:

Var n,i:integer;
a:array [1..10] of integer;

Begin
Assign(input,'input.txt');
Reset(input);
Assign(output,'output.txt');
Rewrite(output);
Read(n);
For i:=1 to n do
Read(a[i]);
For i:=n downto 1 do
Write(a[i],' ');
Close(input);
Close(output);
End.

Вроде, всё нормально, но не получается перевернуть последовательность из 12 и более элементов. Я думаю, виноват array со своим [1..10]. Можно как-нибудь сделать, чтобы больший предел массива зависел от n?
о_0 ни фига себе ты спросил я сейчас только поступаю, и считал что с информатикой у меня все нормально...а тут..)))*ушел читать "Pascal для чайников")))))
Но я то же думаю что виноват array со своим [1..10]....предлагать выходы не буду так как не знаю, есть только предположение и то вряд ли верное)))
для REWesker:
мб я забыл паскаль, но где ты напсиал, что n <=10^3
или я чето непонял оО
для Я_не_нюб:
это сразу условие. То есть, никто 1001 элемент тебе вводить в файл не будет.

ЗЫ да, можно написать аррай(1..1000), но такого условия может и не быть, кто знает.
a:array of integer;

После считывания n
Setlength (a, n)
a:array of integer;
компилятор ругается на отсутствие скобок после array.
Вариант первый, школьный, дуболомный индус-стайл:
Раз число n, натуральное, <=10^3, то объявляешь a:array [1..1000] of integer; остальное без изменений.
Вариант второй, для умных: идёшь в гугль и читаешь про динамические массивы.
для REWesker:
компилятор ругается на отсутствие скобок после array.
поставь пустые мб оО
Write(a[i],' '); зачем двое запятых сверху?
для Я_очень_добрый:
это пробел
для Я_очень_добрый:
это не запятые, а одинарные кавычки, не лезь в работающий фрагмент кода, он нужен чтоб элементы массива показывать через пробел.
1)Зачем здесь динамические массивы? Человеку и это пойдет, не нужно путать)
2)№9, это пробел!(кстати, не знаю как там у вас, а после последнего числа выводит тоже пробел, на районной олимпиаде у нас такие решения валились бывало)
для Я_не_нюб:
угу, error in type

для username42:
Зачем здесь динамические массивы? Человеку и это пойдет, не нужно путать)
человеку это не пойдёт, иначе бы человек не спрашивал.

лазяя по гуглу с лёгкой подачи Громозеки наткнулся на следующее:
"В версии Delphi 4 впервые введены так называемые динамические массивы."
Я хз как паскаль может соотноситься с дельфи, но у меня версия паскаля 7.0, в школе аналогично. Введены там эти динамические массивы или придётся индусским методом писать?
для username42:
Любопытно, а что на районной олимпиаде посчитали бы менее красивым:
Это:
For i:=n downto 1 do
Write(a[i],' ');
Или это:
For i:=n downto 2 do
Write(a[i],' ');
Writeln(a[1]);
для REWesker:
Паскаль с делфи соотносится очевиднейшим образом: в среде делфи все программы пишутся на языке паскаль.
Так что да, в паскале эти самые динамические массивы введены.
на районной олимпиаде код компилируют и проверяют на тестах. Автоматически. Я не знаю как в России экзамен проводится, но чекеры не смотрят на красоту, а вот на пробел могут обидеться
в среде делфи все программы пишутся на языке паскаль
о_О спасибо за просвещение =) А то нам только и дают что задачи. А где применяется молчат как партизаны

Всё! Разобрался, слава богу.

Всем спасибо =)

на районной олимпиаде код компилируют и проверяют на тестах. Автоматически. Я не знаю как в России экзамен проводится, но чекеры не смотрят на красоту, а вот на пробел могут обидеться
кривые чекеры значит. Можно подать заявку с просьбой проверки через readln.
тема закрыта by REWesker (2010-05-21 18:34:07)
К списку тем
2007-2025, онлайн игры HeroesWM