Другие языки программирования и технологии
Помогите с паскалем
помогите пожалуйста написать 2 проги 1) В одномерном массиве, состоящем из n целых элементов, вычислить сумму модулей всех элементов, расположенных после первого элемента, равного нулю. Преобразовать массив так, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй - элементы, стоявшие в четных позициях. Вывести на экран исходный и преобразованный массивы, а также результаты расчета. 2) Дана вещественная матрица A (m,n). Составьте программу для подсчета количество “особых” элементов массива A, считая его элемент особым, если он больше суммы остальных элементов столбца. заранее спасибо)))
1)
var
n, i, k, s : integer;
a:array [ 1..100 ] of integer;
b,c: array[ 1..50 ] of integer;
begin
write(' n= ');
readln ( n );
randomize;
writeln (' massiv A ');
for i := 1 to n do
begin
a [ i ]:= random (10)-5;
write ( a [ i ] : 3,' ');
end;
writeln;
k : = n;
i : = 1;
while (i < = n) do
begin
if a [ i ]=0 then
begin
k : = i + 1; i : = n;
end;
i := i +1;
end;
s : =0;
if k < n then
begin
for i := k to n do
s:= s + abs(a[ i ]);
end;
k := n div 2;
writeln ('massiv b');
for i := 1 to k do
begin
b[ i ]:= a[ 2*i - 1];
write (b [ i ] :3,' ');
end;
writeln;
writeln (' massiv c ');
for i :=1 to k do
begin
c [ i ]:= a[ 2*i ];
write( c[ i ] : 3,' ');
end;
writeln;
writeln (' s= ', s :5);
readln;
end.
var
n, i, k, s : integer;
a:array [ 1..100 ] of integer;
b,c: array[ 1..50 ] of integer;
begin
write(' n= ');
readln ( n );
randomize;
writeln (' massiv A ');
for i := 1 to n do
begin
a [ i ]:= random (10)-5;
write ( a [ i ] : 3,' ');
end;
writeln;
k : = n;
i : = 1;
while (i < = n) do
begin
if a [ i ]=0 then
begin
k : = i + 1; i : = n;
end;
i := i +1;
end;
s : =0;
if k < n then
begin
for i := k to n do
s:= s + abs(a[ i ]);
end;
k := n div 2;
writeln ('massiv b');
for i := 1 to k do
begin
b[ i ]:= a[ 2*i - 1];
write (b [ i ] :3,' ');
end;
writeln;
writeln (' massiv c ');
for i :=1 to k do
begin
c [ i ]:= a[ 2*i ];
write( c[ i ] : 3,' ');
end;
writeln;
writeln (' s= ', s :5);
readln;
end.
2) var Count: word = 0;
i,j,sum: integer;
...
for j := 1 to n do begin
sum := 0; for i := 1 to m do inc(sum,A[i,j]);
for i := 1 to m do if 2*A[i,j] > sum then inc(Count);
end;
1) var Sum: cardinal = 0;
flag: boolean = false;
i: integer;
B: ^(тип массива) ;
...
for i := 1 to n do begin
write(A,' ');
if A = 0 then flag := true;
if flag then inc(Sum,abs(A));
end;
write('Sum resulted ',Sum);
new(B);
for i := 1 to n do
if i mod 2 = 0 then B^[(n+i) div 2] := A else B^[i div 2 + 1] := A;
A := B^; Dispose(B);
for i := 1 to n do write(A, ' ');
Решение 1), скорее всего, не лучшее -- не обошлись без дополнительного массива. 2) сойдёт.
P. S. Идиотский HTML, исправляет код как захочет.
i,j,sum: integer;
...
for j := 1 to n do begin
sum := 0; for i := 1 to m do inc(sum,A[i,j]);
for i := 1 to m do if 2*A[i,j] > sum then inc(Count);
end;
1) var Sum: cardinal = 0;
flag: boolean = false;
i: integer;
B: ^(тип массива) ;
...
for i := 1 to n do begin
write(A,' ');
if A = 0 then flag := true;
if flag then inc(Sum,abs(A));
end;
write('Sum resulted ',Sum);
new(B);
for i := 1 to n do
if i mod 2 = 0 then B^[(n+i) div 2] := A else B^[i div 2 + 1] := A;
A := B^; Dispose(B);
for i := 1 to n do write(A, ' ');
Решение 1), скорее всего, не лучшее -- не обошлись без дополнительного массива. 2) сойдёт.
P. S. Идиотский HTML, исправляет код как захочет.
Похожие вопросы
- Помогите с паскалем
- Ааааа....помогите с Паскалем (Pascal)!!!!Срочно!!!!
- Помогите с паскалем пожалуйста!!!!
- помогите с паскалем!!! ужас а не задание!!
- Помогите с Паскалем
- Помогите с паскалем. Помогите написать программу переводящую из 10-ой в 16-ую систему счисления на паскале
- Помогите с паскалем!
- Ребят помогите пожалуйста. Паскаль, Paskal
- Помогите на паскале умоляю
- Помогите по паскалю