Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Программирование типичных задач при работе с массивами.




Цель работы

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

2. Вывода элементов одномерного и двумерного маcсивов.

3. Изучение одного из видов сортировки одномерного массива.

Пример первого задания.

Дан массив целых чисел А (4, 5). Переставить четвертый и пятый столбец местами.

Program change_;

Var

a:array[1..4,1..5] of integer;

i,n:byte;

buf:integer;

BEGIN

Writeln(Введите элементы массива А (4*5)’);

Randomize;

For i:=1 to 4 do

For n:=1 to 5 do

a[I,n]:= integer(random(100))-50;

writeln(‘исходный массив А до перестановки’);

For i:=1 to 4 do

begin

For n:=1 to 5 do

Write(a[I,n]:4);

Writeln

End;

For i:=1 to 4 do

Begin

Buf:=a[I,4];

a[I,4]:= a[I,5];

a[I,5]:= Buf

End;

writeln(‘исходный массив А после перестановки’);

For i:=1 to 4 do

begin

For n:=1 to 5 do

Write(a[I,n]:4);

Writeln

End

END.

Пример второго задания.

Ввести n чисел. Отсортировать числа по возрастанию.

Program Sогt _;

type

size=l..100:

mas=array[size] of' integer;

var

arr_: mas;

i,n,k: size;

Buf: integer;

BEGIN

Write(‘введите количество сортируемых элементов массива ’);

Readln(n);

Writeln(‘Введите элементы массива АRR_’);

Randomize;

For i:=1 to n do

Arr_[I]:= integer(random(100))-50;

writeln(‘исходный массив до перестановки’);

For i:=1 to n do

Write(arr_[i]:4);

Writeln;

For i:=1 to n-1 do

For k:=i+1 to n do

If arr_[i]> arr_[k] then

begin

buf:= arr_[i];

arr_[i]:= arr_[k];

arr_[k]:=buf

End;

writeln(‘исходный массив после перестановки’);

For i:=1 to n do

Write(a[i]:4);

Writeln;

END.

 

Лабораторная работа №4.

Процедуры и функции – элементы структуризации программ.

Цель работы

1. Использование подпрограмм (процедур и функций) для ввода/вывода векторов и матриц.

2. Использование подпрограмм (процедур и функций) для вставки и удаления элементов массива.

Пример первого задания.

Удалить из массива последний (в том случае, если их несколько) максимальный элемент.

Для решения задачи необходимо:

· найти номер максимального элемента к;

· сдвинуть все элементы, начиная с к+1-го на один элемент влево;

· последнему элементу присвоить значение 0.

 

{$R+}

Program My;

Const

MaxN=10;la=-10;ha=21; {Размер массива и интервал значений}

Type

MyArray=Array[1..MaxN] Of Integer;

Var

A:MyArray;

k:Integer;

Procedure Init(t,v,w:Integer; Var X:MyArray);{Процедура формирования значений элементов массива}

Var

I:Integer;

Begin

Randomize;

For i:=1 To t Do

X[i]:=v+Integer(Random(w));

End;

Procedure Print(t:Integer;X:MyArray);{Вывод t первых элементов массива X}

Var

i:Integer;

Begin

For i:=l To t Do

Write(X[i]:5);

WriteLn;

End;

Function Max(t:Integer;X:MyArray):Integer;

{Поиск номера последнего максимального элемента}

Var

i,mx:Integer;

Begin

mx:=1;

For i: =2 To t Do

If X[i]>=X[Mx] Then Mx:=i;

Max:=Mx;

End;

Procedure Sz (t,q:Integer;Var X:MyArray);{Сдвиг элементов массива влево на одну позицию, начиная с элемента с номером q+1}

Var

i:Integer;

Begin

For i:=q To t-1 Do

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

X[t]:=0;

End;

Begin

n:=MaxN;

Init(n,la,ha,A);

WriteLn ('Исходный массив ');

Print(n,A);

k:=Max(n,A);

Sz(n,k,A);

WriteLn(‘Массив после удаления элемента ');

Print(n-1,A);

ReadLn;

END.

Пример второго задания.

Даны 3матрицы (5*4,4*5,5*5), содержащие целые компоненты. Требуется в каждой матрице определить минимальный по модулю элемент. Распечатать ту, в которой находится больший из минимальных по модулю элемент. Считать, что такой элемент один.

{$R+}

Const

MaxN=5; МахМ=5;

Type

TMyArray=Array[l..MaxN,l..MaxM] Of Integer;

Var

A,B,C:TMyArray;

Res:array[1..3] of Integer;

M,n,max:Integer;

Procedure Init(t,v:Integer; Var X:TMyArray);{Процедура формирования значений элементов массива}

Var

I,j:Integer;

Begin

Randomize;

For i:=l To t Do

For j:=1 To v Do

X[I,j]:=Integer(Random(50))-20;

End;

For i:=l To t Do

Procedure Print(t,v:Integer;X:TMyArray);{Вывод элементов массива }

Var

I,j:Integer;

Begin

For i:=l To t Do

Begin

For j:=1 To v Do

Write(X[I,j]:5);

WriteLn;

End;

End;

Function Min(t,v:Integer;X:TmyArray):Integer;{ Функция нахождения минимального по модулю элемента}

Var

i,j:Integer;

Begin

Min:=X[1,1]:

For i:=l To t Do

For j:=1 To v Do

If abs(X[I,j])<abs(min) then

min:=X[I,j];

End;

Begin{ 0сновная программа }

Init(5,4,A);

Init(4,5,B);

Init(5,5,C);

Writeln(‘Матрица А’); Print(5,4,A);

Writeln(‘Матрица B’); Print(4,5,B);

Writeln(‘Матрица C’); Print(5,5,C);

Res[1]:=Min(5,4,A);

Res[2]:=Min(4,5,B);

Res[3]:=Min(5,5,C);

Max:=Res[1];

For n:=2 to 3 do

If Res[n]>max then

begin

Max:=res[n];

M:=n

End;

Writeln(‘Матрица содержащая максимальный из минимальных по модулю’);

Case m of

1: Print(5,4,A);

2: Print(4,5,B);

3: Print(5,5,C);

End;

END.

Лабораторная работа №5





Поделиться с друзьями:


Дата добавления: 2016-11-20; Мы поможем в написании ваших работ!; просмотров: 470 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если вы думаете, что на что-то способны, вы правы; если думаете, что у вас ничего не получится - вы тоже правы. © Генри Форд
==> читать все изречения...

2222 - | 2163 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.