Автор работы: Пользователь скрыл имя, 26 Января 2011 в 21:26, курсовая работа
Тип данных Массив позволяет одному идентификатору задать несколько значений, которые отличаются порядковым номером. Номер элемента массива указывается после идентификатора в квадратных скобках {M[5] - пятый элемент массива М}. При описании массива указывается диапазон номеров элементов массива и тип, к которому относится каждый его элемент. Массивы могут быть одно-, двух- и многомерными.
Введение
1. Виды массивов
1.1. Одномерные массивы
1.2. Примеры задач
1.3. Двумерные массивы
1.4. Примеры задач
2. Сортировка массивов
2.1Метод простых обменов (Пузырьковая сортировка)
2.2. Сортировка простым выбором
2.3 Сортировка простым включением (Метод вставки и сдвига)
3. Параметры-массивы и параметры-строки
Список литературы
uses crt;
var
a:array [1..50] of integer;
b:array [1..50] of integer;
k,i,m,j,n,r,l:integer;
begin
clrscr;
write('Введите количество строк');
readln(n);
write('Введите количество столбцов');
readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,']={b[',j,']
readln(a[i]);
end;
for i:=1 to n-1 do
for k:=i+1 to n do
{for j:=1 to m do}
if a[k]>a[i] then
begin
r:=a[i];
a[i]:=a[k];
a[k]:=r;
end;
writeln('Отсортированый массив:');
for i:=1 to n do
writeln(a[i]:4);
readln;
end.
4.
Дана квадратная матрица. Транспонировать
её. Посчитать сумму всех нечётных элементов
транспонированной матрицы.
program zadacha_4;
uses crt;
var
a:array [1..5,1..5] of integer;
S,i,j,n,c:integer;
begin
clrscr;
write ('введите кол-во строк и столбцов ');
readln (n);
for i:=1 to n do
for j:=1 to n do
begin
write ('a[',i,',',j,']=');
readln (a[i,j]);
end;
for i:=1 to n do
for j:=i+1 to n do
begin
c:=a[i,j];
a[i,j]:=a[j,i];
a[j,i]:=c;
end;
S:=0;
for j:=1 to n do
for i:=1 to n do
begin
if a[j,i] mod 2 <>0 then
begin
S:=S+a[j,i];
end;
end;
writeln ('S=',S);
readln;
end.
5. Дан двумерный массив. Посчитать сумму
его двух столбцов, вывести большую сумму.
program zadacha_5
uses crt;
var
a:array[1..3,1..3] of integer;
i,j,m,n,s,s1,p,p1,max,p3:
begin
clrscr;
write('введите количество строк');
readln(n);
write('введите количество столбцов');
readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
begin
write('введите номер столбца');
readln(p);
for i:=1 to n do
for j:=1 to m do
if j=p then s:=s+a[i,p];
write('s=',s);
readln;
end;
s1:=0;
begin
write('введите номер другого столбца');
readln(p1);
for i:=1 to n do
for j:=1 to m do
if j=p1 then s1:=s1+a[i,p1];
write ('s1=', s1);
readln;
end;
begin
max:=s;
if s < s1 then
begin
max:=s1;
write('максимальная сумма',max);
readln;
write('вывести на экран номер столбца большей суммы', p3);
readln(p3);
end;
end;
end.
end.
6.
Заполнить матрицу по образцу:
0
0
0
0
program zadacha_6;
uses crt;
var
a:array [1..50,1..50] of integer;
n:integer;
i,j,k:integer;
begin
clrscr;
write ('Введите количество строк и столбцов в матрице');
readln (n);
k:=0;
for i:=1 to n do
for j:=1 to n do
if i=j then
begin
a[i,j]:=k;
k:=k+1;
end
else
begin
a[i,j]:=0;
end;
for i:=1 to n do
for j:=1 to n do
begin
writeln('a[',i,',',j,']='
readln;
end;
readln; end.
7. Дана квадратная матрица порядка N. В
матрице вычислить среднее арифметическое
положительных элементов, стоящих на главной
диагонали
program zadacha_7;
uses crt;
Var
a:array[1..50,1..50] of integer;{массив}
i,j:integer;
s,n,k:integer;
sr:real;
begin
clrscr;
write('введите кол-во строк');
readln(n);
write('введите кол-во столбцов');
readln(n);
write ('введите кол-во чисел');
readln(k);
for i:=1 to n do
for j:=1 to n do
begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
s:=0;
begin
for i:=1 to n do
for j:=1 to n do
if a[i,j] > 0 then
s:=s+a[i,j];
sr:=s/n;
end;
write('sr=',sr);
readln;
end.
8.
Найти сумму всех элементов квадратной
матрицы, расположенных по главной диагонали
и выше ее.
program zadacha_8;
uses crt;
var
a: array [1..30,1..30] of integer;
i,j,s,n: integer;
begin
clrscr;
writeln ('введите количество строк и столбцов: ');
readln (n);
for i:=1 to n do
for j:=1 to n do
begin
write('a[',i,',',j,']=');
readln (a[i,j]);
end;
for i:=1 to n do
for j:=i+1 to n do
begin
if j>=i then
begin
s:=s+a[i,j];
end;
end;
writeln('s=',s);
readln;
end.
9.
Дана вещественная матрица размерности
n*m. Удалить k столбец матрицы.
program zadacha_9;
uses crt;
var
a: array [1..100,1..100] of real;
b: array [1..100,1..100] of real;
i,j: integer; {переменные счётчики}
n,m: integer; {количество строк и столбцов в массиве}
k: integer; {№ строки которую необходимо удалить}
begin
clrscr;
write ('Введите количество строк в массиве');
readln (n);
write ('введите количество столбцов в массиве');
readln (m);
write ('Введите № строки которую надо удалить');
readln (k);
randomize; {ввод массива случайных чисел}
for i:=1 to n do
for j:=1 to m do
begin
a[i,j]:=random(100);
end;
for i:=1 to n do
for j:=1 to m do
begin
writeln ('a[',i,',',j,']=',a[i,j]);
end;
writeln ('Новый массив');
for i:=1 to n do
for j:=1 to m do