Помощь - Поиск - Пользователи - Календарь
Полная версия: вектор
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Гость
добрый день
вот задачка ест Дано 100 целых чисел. Распечатать их в обратном порядке по 6 чисел в строке. я то набрал
const n=99;
var  
  vect : array [0..n] of integer;
  i: longint;

begin
  randomize;
  for i:=0 to n do
    vect
:=random(30);

  while i>=0 do begin
    writeln(vect[i] :5, vect[i-1] :5, vect[i-2] :5, vect[i-3] :5, vect[i-4] :5, vect[i-5] :5);
    i:=i-6;
  end;

  writeln(i);
  readln;
  read;
end.


но есть проблемка.. при [i]n mod 6 <>0

заранее благодарен.
compiler
неужели я не зарегистрировался?..
я могу писать с такими ошибками?..

еще n mod 6 <>0 читать (n+1) mod 6 <>0,
а vect :=random(30); , как vect[i] := random(30);...

volvo
var
  v: array[1 .. 20] of integer;
  i, j :integer;

begin
  for i := 1 to 20 do v[i] := i;

  j := 6; { Сколько чисел будет в строке }
  for i := 20 downto 1 do begin
    dec(j); write(v[i]:4); { при печати каждого числа уменьшаем счетчик чисел, 
                             которые осталось допечатать на этой строке }

    if j = 0 then begin { если осталось 0, то есть, напечатаны 6 чисел }
      j := 6; writeln; { то переустанавливаем счетчик опять на 6, и переводим строку }
    end
  end;
end.

Так?
Tan
Цитата
vect:=random(30);
Так как ты работаешь с одномерным массивом то необходимо указывать на элемент вектора, то есть например vect[i] := random(30);
В моём понимании это так :
uses crt;
const n=99;
var
  vect : array [0..n] of integer;
  i: longint;
  amount : integer;
begin
  Clrscr;
  randomize;
  for i:= 0 to n do vect[i]:=i;
  i := n;
 amount := 0;
 while i >= 0 do
 begin
   if amount mod 6 = 0 then writeln;
   write (vect[i]:3);
   i := i - 1;
   amount := amount + 1;
 end;
   readkey;
end.
compiler
Цитата(Tan @ 25.05.2007 18:30) *
Так как ты работаешь с одномерным массивом то необходимо указывать на элемент вектора, то есть например vect[i] := random(30)
это я где-то посеял при переходе между кодировками или при форматировании, спасибо что обратил внемание, ето будет добавленно во второй пост.

приступлю к разбору предложеных вариантов..
Tan
Безусловно вариант volvo оптимальней и проще (на мой взгляд). Просто я старался придерживаться изначального кода автора темы.
compiler
a можна комментарии... буду очень благодарен...
Tan
uses crt;
const n=99;
var
  vect : array [0..n] of integer;
  i: longint;
  amount : integer; {количество элементов}
begin
  Clrscr;
  randomize;
  for i:= 0 to n do vect[i]:=i; {заполняем массив числами от 0 до 99}
  i := n;
 amount := 0; {изначально количество выведенных равно 0}
 while i >= 0 do
 begin
   if amount mod 6 = 0 then writeln; {если количество выведенных = 6? то переход на след строку}
   write (vect[i]:3); {пишем соответствуюший элемент}
   i := i - 1; {отнимает 1 от количества элементов}
   amount := amount + 1; {количество выведенных на 1 больше}
 end;
   readkey;
end.
compiler
одно решение(Tan-а) теперь ясно...
volvo
Комментарии к моей программе тоже добавлены...
compiler
всем спасибо... теперь ясно (главное было понять сам механизм)...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.