Сожмите одномерный массив, удалив предшествующие минимальному элементу.
10-11 класс
|
Паскаль.
uses crt;
var a:array [1..100] of real;
i,j,n,min:integer;
begin
clrscr;
write('..'); read(n);
for i:=1 to n do
begin
a[i]:=random(100);
write(a[i],' ');
end;
min:=1;
writeln;
for i:=1 to n do
if a[i]<a[min] then min:=i;
for i:=min to n do
begin
inc(j);
a[j]:=a[i];
end;
for i:=1 to j do
write(a[i],' ');
end.
создаём массив
выделяем переменную которая посчитает количество элементов в массиве (например а)
находим минимальное значение в массиве
(сохраняем порядковый номер элемента в памяти ) выделяя под него переменную (например b)
создаём ещё один одномерный массив с количеством элементов (a - b)
копируем все элементы первого массива от b до a во второй массив
заменяем первоначальный массив вторым а затем удаляем не нужную информацию .
Другие вопросы из категории
форме. Запись образует:
Выберите
один из 4 вариантов ответа:
1) поле в
таблице
2) строку
в таблице
3) имя
поля
4) ячейку
минимальное количество операций умножения при вычислении знвчения выражения 2*а+3*а^11+5*а^7 равно
Читайте также
расположенных между максимальным и минимальным элементами.
Дан одномерный массив, состоящий из вещественных элементов. Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
ну или исправьте мое пжл
program fgf;
var mas:array[1..100] of real;
max,min:real;
i,n,c,b:shortint;
p:real;
f1,g:text;
begin;
assign (f1, 'input.txt');
reset (f1);
readln (f1, n);
for i:=1 to N do read (mas[i]);
max:=mas[i];
for i:=2 to N do begin
if mas[i]>max then begin
max:=mas[i];
c:=i;
end;
end;
min:=mas[1];
for i:=2 to N do begin
if mas[i]<min then begin
max:=mas[i];
b:=i;
end;
end;
close(f1);
assign (g, 'output.txt');
rewrite (g);
p:=1;
if b<c then I:=b+1 and c-1
else for I:=c+1 to b-1 do p:=p*mas[i];
if (n<3) or (b+1=c) or (c+1=b) then writeln(g,'0.00') else write(p:3:3) ;
close (g);
end.
все элементы этого массива на квадрат минимального элемента данного вектора, а если А[1]<0, то умножить все элементы на квадрат максимального элемента вектора. Полученный массив распечатать. Значение К вводится пользователем.
тке полученных компонентов массива. Исходными данными являются одномерный массив, элементы которого задаются с помощью датчика случайных чисел от -50 до +50 и целое положительное число К
элементов стоящих слева и справа от минимального элемента массива.
Разделить на найденное произведение минимум и максимум. Изменённый
массив вывести.
Вот начало:
program ABC;
const Nmass=100;
var A:array[1..Nmass] of integer;
N,i,k,max,min: byte;
buf:integer;
begin
cls;
//ручной ввод массива
writeLn('Введите число элементов в массиве A');
readLn(N);
writeLn('Вводим элементы массива A:');
for i:=1 to N do
begin
write('A[',i,']=');
readLn(A[i]);
end;
//вывод массива до измененния
writeLn('Исходный массив A:');
for i:=1 to N do
write(A[i]:5);
writeLn;