Помогите написать программы по программированию (Pascal ABC). Обязательно решать с...

0 голосов
25 просмотров

Помогите написать программы по программированию (Pascal ABC). Обязательно решать с использованием процедур.
Задача 1. Написать программу, которая циклически сдвигает массив вправо или влево на указанное число позиций. Сдвиг должен быть кольцевым.
Задача 2. Написать программу перевода числа x из x_{10} в x_{n}. Запрос числа х, основания n и вывод результата в основной программе, а перевод в процедуре.


Информатика (212 баллов) | 25 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

1)//Вправо
Const
 n=10;

type
 ty=array[1..n] of integer;

var
 ar:ty;
 i,k:integer;

 procedure push(var ar:ty);
var
 i,c:integer;
begin
 c:=ar[n];
 for i:=n downto 2 do
 ar[i]:=ar[i-1];
 ar[1]:=c;
end;

 begin
 randomize;
 writeln('Enter K:');
 readln(k);
 writeln('First array:');
  for i:=1 to n do
   begin;
    ar[i]:=random(10);
    write(ar[i]:4);
   end;
  for i:=1 to k do
  push(ar);
 writeln;
 writeln('Final array:');
  for i:=1 to n do
   write(ar[i]:4);
end.
2)
var
 a,i,b,r,n:integer;
 s,se:string;

procedure preob(var a,b,n:integer; var se:string);
 begin
  repeat
   b:=a mod n;
   a:=a div n;
   str(b,se);
   s+=se;
  until (a<=n-1);<br> end;

begin
readln(a);
readln(n);
preob(a,b,n,se);
str(a,se);
s+=se;
for i:=1 to length(s) div 2 do
begin;
se:=s[i];
s[i]:=s[length(s)-i+1];
s[length(s)-i+1]:=se[1];
end;
val(s,r,a);
write(r);
end.

(38.6k баллов)
0

Сейчас поправлю второе...

0

А что за раздел type?

0

Тип. Это нужно чтобы передать процедуре массив, хотя динамические массивы можно передавать и как array of [тип], но это не наш случай.