Turbo Pascal

dreamer

Member
кто может посмотрите задачи, где то ошибки не могу понять где,

В одномерном целочисленном масиве заполненым случайными числами реализовать цикличные перестановки на заданое кол-во шагов( ввод с клавиатуры), массив вывести строкой
Код:
program mas4;
uses crt;
var
a:array[1..10] of integer;
i,m,l,n:byte;
begin
randomize;
for i:=1 to 10 do
 begin
    a[i]:=random(10);
    write(a[i],' ');
  end;
 write('к-во шагов');
 readln(n);
 for l:=1 to n do
[COLOR="Red"]    begin
    m:=a[10];
    a[10]:=a[1];
    a[1]:=m;
    end;[/COLOR]
for i:=1 to 10 do
write(a[i],' ');
end.
судя по всему ошибка где то в перестановках,но где(найти сама не могу.
Код:
 m:=a[10];
    a[10]:=a[1];
    a[1]:=m;
Переставляет только первый и последний элементы, я так понимаю тебе нужна циклическая перестановка? Для этого нужно еще сдвигать все элементы на одну позицию.
 

Пух

كنت بلهاء
Модератор
Код:
uses crt;
var
a:array[1..10] of integer;
i,j,n,t:integer;
begin
clrscr;
randomize;
for i:=1 to 10 do
 begin
    a[i]:=random(20)-7;
    write(a[i],' ');
  end;
 writeln('к-во шагов');
 readln(n);
 for i:=1 to n do
    begin
       t:=a[10];
        for j:=10 downto 2 do
           a[j]:=a[j-1];
         a[1]:=t;
     end;     
for i:=1 to 10 do
write(a[i],' ');
readkey;
end.
как вариант...
келбас задачки не меняет))
 

Маришенька

Life is different colours
Спасибо большое за помощ))) с одной я разобралась
кстати если как вариант, тогда
Код:
   for j:=10 downto 2 do
           a[j]:=a[j-1];
         a[j-1]:=t;
вроде так правильней.

вторая задача, и после всех исправлений не работает, но все же всем спасибо за помощ
 

critick

Философ
вторая задача, и после всех исправлений не работает, но все же всем спасибо за помощ
Канечно не работает, если её даже скомпилировать не удасться
Вот правильный вариант(правда без проверки варианта, если введённого числа нет в массиве)
Код:
program mas7;
var
a:array[1..10] of integer;
i,n:byte;
begin
writeln('Введите эл. массива');
for i:=1 to 10 do
begin
write('a[',i,']= ');
read(a[i]);
end;
for i:=1 to 10 do
write(a[i],' ');writeln ;
write('Введите число для поиска');
read(n);
i:=1;
while a[i]<>n do
i:=i+1;
write('Первое вхождение ',n,' на ',i,' месте'); {здесь надо вывести номер искомого элем. и его индекс}
end.
 

xZ_

Хьёзь
Код:
while a[i]<>n do
i:=i+1;
writе('Первое вхождение ',n,' на ',i,' месте');
для проверки есть ли число данный урывок заменить на :
Код:
while (i<=10 and a[i]<>n) do
i:=i+1;
if (i>10) then write('Данного числа нет');
else write('Первое вхождение ',n,' на ',i,' месте');
Совсем немного дописать..
 

akick

letter to god
всем привет, нужна помощь в решение такой задачи в Паскале: пользователь вводит текст с пробелами и нужно чтобы программа текст скопировала и написала до 1 пробела
Это очень сложная задача и требует более детального ТЗ.
 

inter.net

Халява,сэр!!!
Такие функции как x:=whereX и gotoXY применяются на дельфи, аналог на Паскале, как?
 

KoLoB

KoLoB.cz
Это очень сложная задача и требует более детального ТЗ.
А что тут думать?
Разбираем строку в массив. Идем по массиву, копируя символы пока не встретим пробел.

Потом выводим получившийся массив. Все.

Другое дело - что молодежь вообще думать не хочет :Р
 
Зверху