Автор: помогите 21.05.2004 21:06
Здравствуйте,скажите,пожалуйста вы не можите мне помочь решить несколько задач
по турбо паскалю-тема массивы,хотя бы что-нибудь!!! Плиз!!!
1 Задан массив из n целых чисел, найти раность между максимальным и минимальным.
2 В массиве из разных целых чисел отсортировать элементы в интервале от
минималього до максимального:если минимум раньше максимума ,то по
возрастанию,если наоборот-по убыванию.
3 Дан массив из целых чисел,поместить отрицательные числа
влево,положительные-вправо.
4 В двумерном массиве определить максимальное значение.
5 В двумерном массиве определить координаты максимального значения.
6 В двумерном массиве поменять местами максимальное и минимальное.
7 В двумерном массиве поменять местами строки содержищие максимальное и
минимальное.
7 Сформировать случайным образом двумерный массив n на m,отсортитовать главную
диагональ.
Очень надеюсь на вашу помощь!!!
Если можите пишите на daria_vorobieva@mail.ru
Даша
Автор: killerfriz 21.05.2004 21:41
первая выглядит так
Код
uses crt;
Const n=20;
Var
mass:array [1..n] of integer;
max,min,i:integer;
begin
for i:=1 to n do
mass[i]:=random(200);
max:=mass[1];
for i:=1 to n do
if mass[i]>max then
max:=mass[i];
min:=mass[1];
for i:=1 to n do
if mass[i]<min then
min:=mass[i];
max:=max-min;
writeln(' Разность=',max);
readkey;
end.
Автор: killerfriz 21.05.2004 22:13
а вторая так
Код
Uses Crt;
Type mas=array [1..20] of integer;
Var
mass:mas;
max,min,i,n:integer;
{===================================Процедуры=======================}
procedure Sort1 (q:integer; var c:mas);
var
I:integer;
m :integer;
p:integer;
temp:integer;
begin
M:=q-1;
P:=1;
While p<>0 do
Begin
p:=0;
for i:=1 to m do
begin
if c[i]<c[i+1] then
begin
temp:=c[i];
c[i]:=c[i+1];
c[i+1]:=temp;
p:=I;
end;
end;
m:=p-1;
end;
end;
procedure Sort2 (q:integer; var c:mas);
var I,m,p:integer;
temp:integer;
begin
M:=q-1;
P:=1;
While p<>0 do
Begin
p:=0;
for i:=1 to m do
begin
if c[i]>c[i+1] then
begin
temp:=c[i];
c[i]:=c[i+1];
c[i+1]:=temp;
p:=I;
end;
end;
m:=p-1;
end;
end;
begin
n:=20;
for i:=1 to n do
mass[i]:=random(200);
max:=mass[1];
for i:=1 to n do
if mass[i]>max then
max:=i;
min:=mass[1];
for i:=1 to n do
if mass[i]<min then
min:=i;
if max>min then
Sort2 (n,mass)
else
Sort1 (n,mass);
Writeln(' ');
for i:=1 to n do
Writeln(mass[i]);
readkey;
end.
Может быть кто и компактнее сможет..... <_<
Автор: vovsik 21.05.2004 22:29
В третьей можно просто также отсортировать массив по возрастанию
Автор: killerfriz 21.05.2004 23:03
Цитата
В третьей можно просто также отсортировать массив по возрастанию
Можно и так-же но чтобы массив состоял не только из положительных но и отрицательных надо при заполнение массива за место
Код
mass[i]:=random(200);
написать к примеру
Код
mass[i]:=random(300)-random(300);
А на четвертую у меня так вышло
Код
Uses Crt;
const n=20;
m=20;
Type mas=array [1..n,1..m] of integer;
Var
mass:mas;
max,i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
mass[i,j]:=random(300)-random(300);
max:=mass[1,1];
for i:=1 to n do
for j:=1 to n do
if mass[i,j]>max then
max:=mass[i,j];
Writeln('Ответ-',max);
readkey;
end.
Автор: killerfriz 21.05.2004 23:09
Пятая очень похожа на 4 вот код
Код
Uses Crt;
const n=20;
m=20;
Type mas=array [1..n,1..m] of integer;
Var
mass:mas;
max,i,j,x,y:integer;
begin
for i:=1 to n do
for j:=1 to n do
mass[i,j]:=random(300)-random(300);
max:=mass[1,1];
for i:=1 to n do
for j:=1 to n do
if mass[i,j]>max then
begin
max:=mass[i,j];
x:=i;
y:=j;
end;
Writeln('Строка-',x,' Столбец-',y);
readkey;
end.