дан одномерный массив . Упорядочить массив удалив нули со сдвигом влево ненулевых элементов.
10-11 класс
|
const n=10;
var a:array [1..n] of integer;
i,j,k,l:integer;
begin
{создание и вывод массива}
for i:=1 to n do
begin
a[i]:=random(21)-10;
write (a[i],' ');
end;
writeln;
{сортировка массива}
for j:=1 to n do
for i:=1 to n-1 do
if a[i]>a[i+1] then
begin
k:=a[i];
a[i]:=a[i+1];
a[i+1]:=k;
end;
{Удаление нулей}
k:=0;
while k<>n do
begin
k:=k+1;
if a[k]=0 then
begin
l:=l+1;
for i:=k to n-1 do
a[i]:=a[i+1];
end;
end;
{Вывод массива}
for i:=1 to n-l do
write (a[i],' ');
end.
a[i]:=random(21)-10- как это действие понимать?
что такое "random" ?
Вам не объясняли?? Странно, это же напрямую связано с массивами. Ну это паскаль сам берет случайное число. В этом примере random(21)-10 значит, что выбирается случайное число из диапазона [-10;10]. Указывать диапазон, например [х;у], нужно по формуле Random (у-х+1)+х
Другие вопросы из категории
Указание: Заполнить двумерный числовой массив И(8,8) случайными целыми числами в интервале [-60,60].Написать единую программу для всех задач,ответ каждой задачи выводить с новой строки.
Задача 1: Найдите среднее арифметическое отрицательных элементов 3 строки.
Задача 2: Обнулите элементы,имеющие четное значение и стоящие на побочной диагонали.
Задача 3: Создайте новый одномерный массив из элементов,имеющих значение больше -5.
Задача 4: Определите максимальный элемент массива в первом столбике.
Задача 5: Вычислить сумму элементов в каждой строке массива.
понятнее:
пользователь ввел число А и интервал чисел, из этих чисел вывести на экран кратные числу А.
Читайте также
{ Уплотнить линейный массив удалив нули и сдвинув влево остальные элм.}
uses crt
var m,i,k:longint a:array[1..100]of longint
begin
clrscr
write('введите кол-во элм таблицы: ')redln(k)
for i=1 to k do
begin
write('a[',i,']=')redln(a[i])
end
m=0
for i=1 to k do
if a[i]=0 then inc(m)
elsey a[i-m]=a[i]k=k-m
for i=1 to k do write(a[i],' ')redln
end.
расположенных между максимальным и минимальным элементами.
Дан одномерный массив, состоящий из вещественных элементов. Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
ну или исправьте мое пжл
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.
случайным образом числами из промежутка [-40, 30]. Массив данных хранится в
файле. Удалить из него все элементы, которые состоят из одинаковых цифр.
Результат записать в другой файл.
элементов.Найти колличество четных положительных элементов.
3)Дан массив из 6 элементов.Найти произвдение положительных из них.
нечетных местах , сменить знак на противоположный ,иначе выдать соответствующее сообщение.
2.Дан массив X(N,M) . Среди четных столбцов массива найти сумму положительных элементов
3.Найти произведение элементов каждого столбца массива принадлежащих промежутку [2,6] . Из полученных значений сформировать одномерный массив.