Автор | 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) |
---|