Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet.doc
Скачиваний:
6
Добавлен:
22.02.2015
Размер:
160.26 Кб
Скачать

Лабораторная работа № 4. Одномерные массивы

Задание 1. В алгоритме вычисления суммы и количества положительных элементов заполните пустые места.

Блок-схема:

Задание 2. Составьте блок-схему к следующей программе:

Program Example7;

Uses crt;

Var a: array[1..100] of integer;

i, n, max: integer;

Begin

Clrscr;

Write(‘n=’);

Readln(n);

for i:=1 to n do Begin

Write(‘a[’,i,’]=’);

Readln(a[i]);

End;

max:=a[1];

for i:=2 to n do if a[i]>max then max:=a[i];

Writeln(‘max=’,max);

End.

Блок-схема:

Задание 3. Составьте программу, которая находит максимальный и минимальный элементы в одномерном массиве и их порядковые номера.

Листинг программы:

program z43;

Uses crt;

var n,i,max,min,nmax,nmin: integer; a: array[1..100] of integer;

begin

write('n=');

readln(n);

for i:=1 to n do

begin

write('a[',i,']=');

readln(a[i])

end;

max:=a[1]; nmax:=1;

min:=a[1]; nmin:=1;

for i:=2 to n do

begin

if a[i]>max then begin max:=a[i]; nmax:=i end;

if a[i]<min then begin min:=a[i]; nmin:=i end;

end;

writeln('max=',max,' nmax=',nmax);

writeln('min=',min,' nmin=',nmin);

readkey

end.

Протокол выполнения программы:

n=5

a[1]=6

a[2]=2

a[3]=9

a[4]=3

a[5]=7

max=9 nmax=3

min=2 nmin=2

Задача 4. Составьте программу, в которой меняются местами максимальный и минимальный элементы.

Листинг программы:

program z44;

Uses crt;

var n,i,max,min,nmax,nmin: integer; a: array[1..100] of integer;

begin

write('n=');

readln(n);

for i:=1 to n do

begin

write('a[',i,']=');

readln(a[i])

end;

max:=a[1]; nmax:=1;

min:=a[1]; nmin:=1;

for i:=2 to n do

begin

if a[i]>max then begin max:=a[i]; nmax:=i end;

if a[i]<min then begin min:=a[i]; nmin:=i end;

end;

writeln('max=',max,' nmax=',nmax);

writeln('min=',min,' nmin=',nmin);

for i:=1 to n do

begin

if i=nmin then a[i]:=max;

if i=nmax then a[i]:=min;

end;

for i:=1 to n do

write(a[i]:5);

readkey

end.

Протокол выполнения программы:

n=5

a[1]=3

a[2]=8

a[3]=1

a[4]=6

a[5]=9

max=9 nmax=5

min=1 nmin=3

3 8 9 6 1

Задание 5. Установите правильный порядок команд в программе, и определите, что в ней вычисляется.

Листинг программы:

Program Example8;

Uses crt;

Var a,b: array[1..100] of integer;

i,n,k: integer;

Begin

Write('n=');

Readln(n);

for i:=1 to n do Begin

Write('a[',i,']=');

Readln(a[i]);

End;

k:=0;

for i:=1 to n do

if a[i]<0 then Begin

k:=k+1;

b[k]:=i;

End;

for i:=1 to k do Write(b[i]:4);

Readkey

End.

Протокол выполнения программы:

n=5

a[1]=3

a[2]=-7

a[3]=1

a[4]=-2

a[5]=6

  1. 4

Программа находит отрицательные числа в одномерном массиве и записывает их порядковые номера в другой массив.

Задание 6. Определите, что выполняется в программе.

Листинг программы:

Program Example9;

Uses crt;

Var a: array[1..100] of integer;

i,j,n,m: integer;

Begin

Clrscr;

Write('n='); Readln(n);

for i:=1 to n do Begin

Write('a[',i,']=');

Readln(a[i]);

End;

for j:=1 to n-1 do

for i:=1 to n-j do Begin

if a[i]<a[i+1] then Begin

m:=a[i];

a[i]:=a[i+1];

a[i+1]:=m

End;

End;

for i:=1 to n do Write(a[i]:4);

Readkey

End.

Протокол выполнения программы:

n=5

a[1]=7

a[2]=3

a[3]=6

a[4]=1

a[5]=8

8 7 6 3 1

Программа сортирует элементы одномерного массива по убыванию.

Задание 7. Составьте программу, которая преобразует одномерный массив таким образом, чтобы сначала шли отрицательные, затем положительные элементы.

Листинг программы:

Program z47;

Uses crt;

Var a: array[1..100] of integer;

i,j,n,m: integer;

Begin

Clrscr;

Write('n='); Readln(n);

for i:=1 to n do Begin

Write('a[',i,']=');

Readln(a[i]);

End;

for j:=1 to n-1 do

for i:=1 to n-j do Begin

if a[i]>a[i+1] then Begin

m:=a[i];

a[i]:=a[i+1];

a[i+1]:=m

End;

End;

for i:=1 to n do Write(a[i]:4);

Readkey

End.

Протокол выполнения программы:

n=5

a[1]=7

a[2]=3

a[3]=6

a[4]=1

a[5]=8

8 7 6 3 1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]