Структуры языка программированиия Pascal



Интегрированная среда Паскаль АВС. Настройки среды. Меню системы. Трансляция и запуск программ. Составление программ обработки массивов.

 

Цель работы:

Ознакомиться с приемами работы в интегрированной среде Паскаля АВС, с разделами меню, режимами настроек меню, с окнами редактирования, справки, отладки.

 

Порядок выполнения задания

 

1. Установить на рабочем столе ярлык для вызова среды.

2.  Запустить оболочку, ознакомиться с пунктами главного меню.

3.  Изучить элементы окон редактирования: полосы прокрутки, строка статуса и др.

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

5. Освоить ввод данных с клавиатуры с помощью оператора READ и вывод информации на экран с помощью оператора WRITE (WRITELN).

6. Написать программу построения массива целых чисел (посредством датчика RANDOM), расположенных в заданном интервале (A, B).

7. Подключить к программе консольный модуль CRT, применить его функции для очистки экрана, для ввода символов с клавиатуры.

8. Написать операторы, переставляющие элементы массива в обратном порядке (за основу программы взять приведенный ниже образец выполнения задания).

9. Модифицировать построенную программу для выделения из полученного массива массивов отрицательных и положительных чисел.

 

Образец выполнения задания:

 

Program massiv ;

Uses CRT;

Const

n=10;

Var

M: array[1..n] of integer;

i, j :integer;

A,B: integer;

begin

clrscr ;{очистка экрана}

randomize ; {установка датчика случайных чисел в исходное состояние со случайным начальным значением}

WRITELN ('задайте через пробел целые числа: границы интервала A , B ');

read ( A , B );

{формируем массив и печатаем в два столбика вместе с номерами }

for i:=1 to n do

begin

WRITE(i:4);

M[i]:=A+RANDOM(B-A);

WRITELN ( M [ i ]:6);

end ;

{Перестановка элементов массива}

{Рассмотреть случаи четного и нечетного n }

for i :=1 to n div 2 do {цикл до середины массива}

begin

j:=M[i];

M[i]:=M[n-i+1]; { понять смысл индексов !!!}

M[n-i+1]:=j;

end;

for i:=1 to n do

WRITELN(i:4,M[i]:8);

readln;

 


Практическая работа 2

Структуры языка программированиия Pascal

Основные структуры. Одномерные и двумерные массивы. Сортировка.

Цель работы:

Ознакомиться с алгоритмами: сортировки по убыванию и возрастанию (для числовых элементов массива) и аналогичных алгоритмов сортировки в алфавитном порядке (для текстовых данных), с алгоритмами поиска элемента в упорядоченном массиве (метод бинарного поиска), с алгоритмами обработки двумерных массивов.

 

Порядок выполнения задания

 

1. На основе учебной программы линейной сортировки массива целых чисел по убыванию построить программы сортировки массива целых чисел по возрастанию, массива строк в алфавитном порядке.

2. Рассмотреть алгоритм сортировки методом «пузырька». Модифицировать программу для реализации этого метода.

3. Изучить метод быстрой сортировки (метод Хоара) на примере программы Quick_sort (в папке заданий для работы № 2.

4. Написать программу вычисления максимальных по строке элементов двумерного массива, используя для этого в качестве заготовки учебную программу “dim2” и программу линейной сортировки, в которой определены тип данных и функция num_max_elem, вычисляющая в одномерном массиве позицию максимального элемента (номер строки и номер столбца).

Программа линейной сортировки массива по убыванию:

 

program sortlin;

uses CRT;

 const

N=10;

B:array[1..N] of integer=(19,2,60,33,3,6,9,52,23,44);

type

chisla=array [1..n] of integer;

var

a:chisla;

i:integer;

k:integer;

{=============================================}

procedure pseudo(m: integer; a: chisla);{ псевдографика }

{процедура выводит на экран псевдографическое изображение массива чисел в виде строчек из a [ i ] символов как условных величин числа}

var

i,k,j:integer;

begin

 for i:=1 to m do

begin

  for j:=1 to 2 do

begin

   writeln;

   for k:=1 to a[i] do

   write('W');

end;

writeln(a[i]:3);

end;

readln;

end;

{=============================================}

procedure lin_sort(N:integer;var mass:chisla);

var

k,j:integer;

numer:integer;

function num_max_elem( num:integer):integer;

var

k:integer;

maxel:integer;

begin

maxel:=mass[num];

for k:=num+1 to N do

if mass[k]>maxel then

begin

    maxel:=mass[k];

    num:=k;

end;

num_max_elem:=num;

end;

procedure swap(var x,y:integer);

var

  z:integer;

  begin

z:=x;x:=y;y:=z;

end;

begin

for i:=1 to N-1 do

begin

numer:=num_max_elem(i);

if numer<>i then swap(mass[i],mass[numer]);

pseudo(N,mass);

{readln;}

end;

end;

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

begin

a:=chisla(B);

pseudo(n,a);

lin_sort(n,a);

{ readln;}

end.

 

Заготовка программы обработки двумерного массива.

 

Program dim2;

Uses CRT;

const

N=10;M=12;

type

chisla=array [1..n] of integer;

var

Mass 2: array [1.. M ] of chisla ;{двумерный массив как массив строчек}

Num : chisla ;{массив номеров максимальных по строкам}

{здесь объявить переменные, необходимые для работы программы}

function num_max_elem( num:integer; mass: chisla): integer;

var

k:integer;

maxel:integer;

begin

maxel:=mass[1];

num:=1;

for k:=num+1 to N do

if mass[k]>maxel then

begin

    maxel:=mass[k];

    num:=k;

end;

num_max_elem:=num;

end;

begin

  clrscr;{ очистка экрана }

randomize ; {установка датчика в исходное состояние}

WRITELN ('задайте через пробел целые числа: границы интервала A , B ');

read ( A , B );

{формируем массив и печатаем в виде таблицы по строкам }

for i:=1 to m do

begin

for k:=1 to n do

begin

     M[I,k]:=A+RANDOM(B-A);

     WRITELN(M[I,k]:6);

end; writeln;

num [ k ]:= num _ max _ elem (1, M [ I ]);{в качестве параметра отдаем строку массива}

end ;

{полученный массив номеров максимальных элементов по строкам передаем в процедуру и вычисляем номер максимального элемента в нем}

{эти операторы и оператор печати результата: номер строки и номер столбца написать самостоятельно}

end .


Практическая работа 3


Дата добавления: 2018-10-27; просмотров: 300; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!