Другие языки программирования и технологии
Помогите начертить блок-схему.
Дан одномерный массив А, размерностью n<=30 (i=1,2....n).Найти сумму элементов, возвести ее в (n-1) степень.Сформировать новый массив В, умножив каждый элемент исходного массива А на число, получившееся при возведении суммы в степень (n-1).Найти минимальный элемент массива В и поменять его местами с первым элементом.
Понятия не имею как эти блок схемы рисуются. Вот схематичный код, схему по нему сам нарисуешь:
int A[30];
int B[30];
int sum = 0;
int min = 0;
int tmp = 0;
for (int i = 0; A[ i ]; i++)
{
sum += A[ i ];
}
sum = pow(sum, -1);
for (int i = 0; A[ i ]; i++)
{
B[ i ] = A[ i ] * sum;
if (B[ i ] < B[ min ])
{
min = i;
}
}
tmp = B[ 0 ];
B[ 0 ] = B [ min ];
B[ min ] = tmp;
int A[30];
int B[30];
int sum = 0;
int min = 0;
int tmp = 0;
for (int i = 0; A[ i ]; i++)
{
sum += A[ i ];
}
sum = pow(sum, -1);
for (int i = 0; A[ i ]; i++)
{
B[ i ] = A[ i ] * sum;
if (B[ i ] < B[ min ])
{
min = i;
}
}
tmp = B[ 0 ];
B[ 0 ] = B [ min ];
B[ min ] = tmp;
Если вам еще актуально выкладываю:
label L;
var
i,j,n:integer;
k,S,P,M:real;{S-summa, P-stepen', M-minimal'nyi element massiva B}
A,B,B2:array[1..30] of real;
begin
{Vvod dannykh}
L:
repeat
begin
writeln('Vvedite n<=30 i nazhmite Enter: ');
readln(n);
end;
until n<=30;
if n<=0 then goto L;
for i:=1 to n do
begin
writeln('Vvedite ',i,'-i element massiva i nazhmite Enter');
Readln(A);
end;
{Reshenie}
for i:=1 to n do S:=S+A;{s4itaem summu elementov massiva A}
P:=1;
if n=1 then {s4itaem S v stepeni (n-1)}
begin
P:=1;
end
else
begin
for i:=1 to n-1 do P:=P*S;
end;
for i:=1 to n do {umnozhaem elementy A na P i polu4aem massiv B}
begin
B:=A*P;
B2:=B;
end;
M:=B[1];
for i:=2 to n do
if M>B then
begin
M:=B;
j:=i
end;
k:=B[1];
B2[1]:=B[j];{menyaem mestami elementy}
B2[j]:=k;
{Vyvod rezul'tatov}
writeln('Massiv A:');
for i:=1 to n do write(A:5:0);
writeln;
writeln('Summa elementov massiva A =',S:5:0,' S v stepeni (n-1)=',P:5:0);
writeln('Massiv B:');
for i:=1 to n do writeln(B:6:0);
writeln('Minimalnyi element massiva B= ',M:20:0);
writeln('Izmenennyi massiv B:');
for i:=1 to n do writeln(B2:20:0);
readln;
end.
label L;
var
i,j,n:integer;
k,S,P,M:real;{S-summa, P-stepen', M-minimal'nyi element massiva B}
A,B,B2:array[1..30] of real;
begin
{Vvod dannykh}
L:
repeat
begin
writeln('Vvedite n<=30 i nazhmite Enter: ');
readln(n);
end;
until n<=30;
if n<=0 then goto L;
for i:=1 to n do
begin
writeln('Vvedite ',i,'-i element massiva i nazhmite Enter');
Readln(A);
end;
{Reshenie}
for i:=1 to n do S:=S+A;{s4itaem summu elementov massiva A}
P:=1;
if n=1 then {s4itaem S v stepeni (n-1)}
begin
P:=1;
end
else
begin
for i:=1 to n-1 do P:=P*S;
end;
for i:=1 to n do {umnozhaem elementy A na P i polu4aem massiv B}
begin
B:=A*P;
B2:=B;
end;
M:=B[1];
for i:=2 to n do
if M>B then
begin
M:=B;
j:=i
end;
k:=B[1];
B2[1]:=B[j];{menyaem mestami elementy}
B2[j]:=k;
{Vyvod rezul'tatov}
writeln('Massiv A:');
for i:=1 to n do write(A:5:0);
writeln;
writeln('Summa elementov massiva A =',S:5:0,' S v stepeni (n-1)=',P:5:0);
writeln('Massiv B:');
for i:=1 to n do writeln(B:6:0);
writeln('Minimalnyi element massiva B= ',M:20:0);
writeln('Izmenennyi massiv B:');
for i:=1 to n do writeln(B2:20:0);
readln;
end.
Имхо нереально.
Нао в С нарпе?
Нао в С нарпе?
Похожие вопросы
- Помогите начертить блок-схему
- мне нужно начертить блок схему алгоритма Вижинера или хоть что-то про этот алгоритм узнать
- Помогите составить блок-схему для Turbo Basic
- Помогите составить блок схему. Данны целые числа n, k (n>=k>=0). Вычислить n(n-1)*(n-2)... (n-k-1)/k!
- Помогите пожалуйста составить программу и блок-схему (какой-либо один из трех вариантов)
- Помогите с составление блок-схемы. Заранее спасибо.
- Проверьте пожалуйста блок-схему к задаче на Pascal
- Нужна программа для рисования блок-схем алгоритмов
- Преобразовать программу С++ в Блок схему.
- Не идет программирование, даже эти блок-схемы. В чем причина? А желание освоить есть!