ВУЗ:
Составители:
Рубрика:
13
writeln (′сумма цифр целого числа ′,i:6,′ = ′,S:4);
writeln (′количество цифр в числе= ′, K:4);
end; end.
Пример
2:
Из массива а получить массив b путем циклического сдвига
элементов массива вправо на одну позицию.
В виде процедур можно оформлять ввод и вывод массивов. В этом
случае массивы следует передавать по ссылке, тогда если изменяется
формальный массив, то изменяется и фактический массив. Кроме того,
передача массива по ссылке требует меньше памяти.
При
использовании массива в качестве формального параметра
процедуры или функции его тип должен быть описан в разделе TYPE.
program massiv;
coust n=20;
type mas=array [1..n] of real;
var a,b:mass;
procedure masread (var x:mas); {процедура ввода}
var i:integer;
begin
writeln(′введите ′, n ,′ чисел′);
for i:=1 to n do read (x[i]);
end;
procedure maswrite(var x:mas); {процедура печати массива}
var i:integer;
begin
for i:=1 to n do write (x[i]:8:3);
writeln;
end;
procedure rechtshift (var x:mas); {сдвиг влево на 1 позицию}
var i:integer; c:real;
begin
c:=x[n];
for i:=n downto 2 do x[i]:=x[i-1];
x[1]:=c;
end;
begin (*основная программа*)
masread(a); {ввод массива а}
b:=a; {содержимое массива копируется в массив b}
writeln(′массив перед сдвигом вправо′);
maswrite(b); {печать массива b}
rechtshift(b); {сдвиг массива b}
14
maswrite(b); {массив после сдвига
вправо}
end.
Пример
3:
Даны три массива целого типа: массив А, состоящий из 20 элементов,
В - из 15, С - из 10. Определить, в каком массиве больше нулевых элементов.
Подсчёт нулевых элементов оформить в виде процедуры.
Если фактическим параметром при различных вызовах процедур и
функций являются массивы с разными размерностями, то тип массива нужно
описывать по максимальной размерности и
дополнительно передавать в
подпрограмму количество элементов обрабатываемого массива.
type mas=array [1..20] of integer;
var A, B, C:mass;
ka, kb, kc:byte; {ka, kb, kc – количество нулевых
элементов в массивах А, В, С}
Procedure COL(var A:mass; n:byte; var k:byte);
var i:byte;
begin
writeln (′ввод ′, n,′ элементов′); k:=0;
for i:=1 to n do
begin
read (A[i]); if A[i]=0 then k:=k+1
end; end;
begin {основная программа}
COL (A,20,ka);
writeln (′в массиве А ′, ka,′ нулевых элементов′);
COL (B,15,kb);
writeln (′в массиве В ′, kb,′ нулевых элементов′);
COL (C,10,kc);
writeln (′в массиве
С ′,kc,′ нулевых элементов′);
if(ka=kb) and (kb=kc) then begin
writeln (′одинаковое число нулевых элементов′);
exit end;
if (ka>=kb) and (ka>=kc) then
writeln (′в массиве А нулей больше′);
if (kb>=ka) and (kb>=kc) then
writeln (′в массиве В нулей больше′);
if (kc>=ka) and (kc>=kb) then
writeln (′в массиве С нулевых элементов больше′); end.
writeln (′сумма цифр целого числа ′,i:6,′ = ′,S:4); maswrite(b); {массив после сдвига вправо} writeln (′количество цифр в числе= ′, K:4); end; end. end. Пример 2: Пример 3: Из массива а получить массив b путем циклического сдвига Даны три массива целого типа: массив А, состоящий из 20 элементов, элементов массива вправо на одну позицию. В - из 15, С - из 10. Определить, в каком массиве больше нулевых элементов. В виде процедур можно оформлять ввод и вывод массивов. В этом Подсчёт нулевых элементов оформить в виде процедуры. случае массивы следует передавать по ссылке, тогда если изменяется Если фактическим параметром при различных вызовах процедур и формальный массив, то изменяется и фактический массив. Кроме того, функций являются массивы с разными размерностями, то тип массива нужно передача массива по ссылке требует меньше памяти. описывать по максимальной размерности и дополнительно передавать в При использовании массива в качестве формального параметра подпрограмму количество элементов обрабатываемого массива. процедуры или функции его тип должен быть описан в разделе TYPE. program massiv; type mas=array [1..20] of integer; coust n=20; var A, B, C:mass; type mas=array [1..n] of real; ka, kb, kc:byte; {ka, kb, kc количество нулевых var a,b:mass; элементов в массивах А, В, С} procedure masread (var x:mas); {процедура ввода} var i:integer; Procedure COL(var A:mass; n:byte; var k:byte); begin var i:byte; writeln(′введите ′, n ,′ чисел′); begin for i:=1 to n do read (x[i]); writeln (′ввод ′, n,′ элементов′); k:=0; end; for i:=1 to n do procedure maswrite(var x:mas); {процедура печати массива} begin var i:integer; read (A[i]); if A[i]=0 then k:=k+1 begin end; end; for i:=1 to n do write (x[i]:8:3); begin {основная программа} writeln; COL (A,20,ka); end; writeln (′в массиве А ′, ka,′ нулевых элементов′); procedure rechtshift (var x:mas); {сдвиг влево на 1 позицию} COL (B,15,kb); var i:integer; c:real; writeln (′в массиве В ′, kb,′ нулевых элементов′); begin COL (C,10,kc); c:=x[n]; writeln (′в массиве С ′,kc,′ нулевых элементов′); for i:=n downto 2 do x[i]:=x[i-1]; if(ka=kb) and (kb=kc) then begin x[1]:=c; writeln (′одинаковое число нулевых элементов′); end; exit end; begin (*основная программа*) if (ka>=kb) and (ka>=kc) then masread(a); {ввод массива а} writeln (′в массиве А нулей больше′); b:=a; {содержимое массива копируется в массив b} if (kb>=ka) and (kb>=kc) then writeln(′массив перед сдвигом вправо′); writeln (′в массиве В нулей больше′); maswrite(b); {печать массива b} if (kc>=ka) and (kc>=kb) then rechtshift(b); {сдвиг массива b} writeln (′в массиве С нулевых элементов больше′); end. 13 14
Страницы
- « первая
- ‹ предыдущая
- …
- 5
- 6
- 7
- 8
- 9
- …
- следующая ›
- последняя »